Compare commits

..

1992 Commits

Author SHA1 Message Date
Xiao Xufeng
f5c3654a1c change(version): Update version to 5.4.2 2025-06-20 14:35:04 +08:00
Jiang Jiang Jian
f0f2980d05 Merge branch 'bugfix/http_client_test_failure_v5.4' into 'release/v5.4'
fix: update root certificate for postman-echo endpoint (v5.4)

See merge request espressif/esp-idf!39847
2025-06-20 14:18:29 +08:00
morris
fe5927aee6 Merge branch 'ci/readme_remove_c61_fix_ci' into 'release/v5.4'
ci(esp32c61): remove c61 support from readme on 5.4

See merge request espressif/esp-idf!39892
2025-06-18 11:30:52 +08:00
morris
ee76b46195 fix(onewire): enable internal pull-up resistor by default
In case there's no pull-up resistor on the external device
2025-06-17 15:09:40 +08:00
wanckl
ea03622621 ci(esp32c61): remove c61 support from readme on 5.4 2025-06-17 15:09:40 +08:00
Jiang Jiang Jian
75f9cc646d Merge branch 'fix/update_dfs_compensate_table_v5.4' into 'release/v5.4'
fix(esp_hw_support): update esp32 dfs table to make the timing drift always negative (v5.4)

See merge request espressif/esp-idf!39839
2025-06-16 20:42:34 +08:00
wuzhenghui
2519605acb change(bt): increase BTDM_MODEM_WAKE_UP_DELAY 2025-06-13 20:37:35 +08:00
wuzhenghui
626123bbeb change(esp_timer): make esp_timer timming drift always be negative 2025-06-13 20:37:30 +08:00
Mahavir Jain
96eb236610 fix: update root certificate for postman-echo endpoint
The certificate chain for postman-echo endpoint has switched to
Let's Encrypt root CA
2025-06-13 11:05:38 +05:30
wuzhenghui
5b64757042 fix(esp_hw_support): config lact in critical 2025-06-13 12:06:18 +08:00
Jiang Jiang Jian
46909c5048 Merge branch 'bugfix/add_missing_deinit_call_v5.4' into 'release/v5.4'
fix(nimble): Add invocation for mempool_deinit (v5.4)

See merge request espressif/esp-idf!39671
2025-06-10 19:23:27 +08:00
morris
e03d8d7ee9 Merge branch 'test/c61_disable_build_test_v5.4' into 'release/v5.4'
test(ci): disable c61 build test on 5.4

See merge request espressif/esp-idf!39630
2025-06-09 17:23:33 +08:00
Island
b3d3a82daa Merge branch 'fix/ble_log_spi_out_timer_delete_v5.4' into 'release/v5.4'
fix(ble): set timer handle to null after deletion (v5.4)

See merge request espressif/esp-idf!39559
2025-06-06 14:19:27 +08:00
Rahul Tank
401f0a7cae fix(nimble): Add invocation for mempool_deinit 2025-06-04 17:02:41 +05:30
wanckl
66c8539368 test(ci): disable c61 build test on 5.4 2025-06-03 20:09:05 +08:00
Zhou Xiao
c3c7164dc5 fix(ble): set timer handle to null after deletion
(cherry picked from commit 1614e71eb6)

Co-authored-by: Zhou Xiao <zhouxiao@espressif.com>
2025-05-30 19:53:39 +08:00
Jiang Jiang Jian
28980b62c9 Merge branch 'bugfix/add_more_checks_when_receiving_espnow_v5.4' into 'release/v5.4'
fix(wifi): Added more check when receiving espnow data (v5.4)

See merge request espressif/esp-idf!39518
2025-05-30 00:35:27 +08:00
sibeibei
b369c44beb fix(wifi): rx bcn failed when sta off channel under modem state 2025-05-29 20:46:16 +08:00
zhangyanjiao
d4dafbdc35 fix(wifi): Added more check when receiving espnow data 2025-05-29 20:46:16 +08:00
Jiang Jiang Jian
306f101a2b Merge branch 'fix/incorrect_setting_of_sco_packet_type_mask_v5.4' into 'release/v5.4'
fix(bt): fixed incorrect mask was used to exclude sco packets (backport v5.4)

See merge request espressif/esp-idf!39500
2025-05-29 16:19:08 +08:00
Jiang Jiang Jian
8497af9b77 Merge branch 'bugfix/scan_stop_when_conenct_v5.4' into 'release/v5.4'
fix(esp_wifi): Fix locking in incorrect state when stop_scan is called after connect

See merge request espressif/esp-idf!39481
2025-05-29 16:18:35 +08:00
Shreyas Sheth
5fb9c3a849 fix(esp_wifi): Fix locking in incorrect state when stop_scan is called after connect 2025-05-29 12:53:42 +05:30
Jiang Jiang Jian
d5a43edfbc Merge branch 'feature/add_uart_io_deinit_process_v5.4' into 'release/v5.4'
fix(uart): eliminate garbled data on TX/RX line in sleep (v5.4)

See merge request espressif/esp-idf!39263
2025-05-29 13:50:38 +08:00
Jiang Jiang Jian
b901c89f95 Merge branch 'feat/impl_bt_coex_timer_event_v5.4' into 'release/v5.4'
feat(coex): implement BT coex timer event (Backport v5.4)

See merge request espressif/esp-idf!39437
2025-05-29 13:50:16 +08:00
Jiang Jiang Jian
104f57db68 Merge branch 'bugfix/fix_sta_connection_info_error_on_c5_c6_v5.4' into 'release/v5.4'
fix(wifi): fix the issue that sta connection info loss lr info on C5/C6 (v5.4)

See merge request espressif/esp-idf!39439
2025-05-29 11:33:19 +08:00
gongyantao
ac5b71e415 fix(bt): fixed incorrect mask was used to exclude sco packets 2025-05-29 09:55:41 +08:00
zhangyanjiao
49ac962c51 fix(wifi): fix the issue that sta connection info loss lr info on C5/C6 2025-05-28 19:09:34 +08:00
Jiang Jiang Jian
c8b1951189 Merge branch 'fix/rrm_config_set_v5.4' into 'release/v5.4'
Set rrm config condition in case RRM monitoring is enabled

See merge request espressif/esp-idf!39431
2025-05-28 17:56:45 +08:00
Jiang Jiang Jian
f906de4eb6 Merge branch 'bugfix/incorrect_sae_pk_flag_v5.4' into 'release/v5.4'
Disable SAE-PK indication in Assoc Request when not configured (Backport v5.4)

See merge request espressif/esp-idf!39075
2025-05-28 17:56:27 +08:00
Jiang Jiang Jian
7cc3e9c957 Merge branch 'bugfix/supplicant_analyzer_fixes_v5.4' into 'release/v5.4'
Bugfix/supplicant analyzer fixes (v5.4)

See merge request espressif/esp-idf!39455
2025-05-28 14:29:59 +08:00
Jiang Jiang Jian
ebcbbb94fe Merge branch 'bugfix/fix_few_nimble_issues_10052025_v5.4' into 'release/v5.4'
fix(nimble): fix few issues 10052025(v5.4)

See merge request espressif/esp-idf!39014
2025-05-28 14:24:57 +08:00
Jiang Jiang Jian
70ff14e4fa Merge branch 'bugfix/fix_some_external_coexist_issues_v5.4' into 'release/v5.4'
fix(coex): fix some external coexist issue(Backport v5.4)

See merge request espressif/esp-idf!39435
2025-05-28 14:24:53 +08:00
Jiang Jiang Jian
a68299e69f Merge branch 'fix/bootloader_reserved_area_alignment_v5.4' into 'release/v5.4'
fix(esp_system): fix RTC reserved area alignment in the linker script (backport v5.4)

See merge request espressif/esp-idf!39253
2025-05-28 14:24:20 +08:00
akshat
bcd91ec882 bugfix(wifi): Fix incorrect SAE-PK advertisement in assoc request 2025-05-28 14:23:56 +08:00
Jiang Jiang Jian
df50dda690 Merge branch 'bugfix/wps_pbc_overlap_uuid_v5.4' into 'release/v5.4'
fix(wpa_supplicant): Ensure pbc_overlap event is posted correctly (Backport v5.4)

See merge request espressif/esp-idf!39056
2025-05-28 14:22:27 +08:00
Jiang Jiang Jian
fe9669d4fb Merge branch 'ci/fix-custom-oocd-setting_v5.4' into 'release/v5.4'
ci: select OpenOCD binary based on runner (v5.4)

See merge request espressif/esp-idf!39377
2025-05-28 14:20:39 +08:00
Island
9b329bb893 Merge branch 'feat/reduce_bin_size_and_iram_for_ble_rom_code_v5.4' into 'release/v5.4'
feat(ble/controller): Reduce bin size and IRAM for BLE rom code on ESP32-C3 and ESP32-S3 (v5.4)

See merge request espressif/esp-idf!39452
2025-05-28 11:19:00 +08:00
Island
282c1d6576 Merge branch 'bugfix/fix_send_delete_link_key_cmd_1_v5.4' into 'release/v5.4'
Bugfix/fix send delete link key cmd 1 (v5.4)

See merge request espressif/esp-idf!39445
2025-05-28 10:58:37 +08:00
Island
f3e781b8a2 Merge branch 'fix/ble_mesh_micellaneous_update_v5.4' into 'release/v5.4'
Fix/ble mesh micellaneous update v5.4

See merge request espressif/esp-idf!39460
2025-05-28 10:58:14 +08:00
luoxu
6305482abb feat(ble_mesh): update lib to bbb57d10f9 2025-05-27 20:57:18 +08:00
luoxu
549cecbe6e feat(ble_mesh): Change the type of rpl size from uint8 to uint16 2025-05-27 20:57:18 +08:00
luoxu
355e56ba55 fix(ble_mesh): update ble 50 macro on unsupported version 2025-05-27 20:57:18 +08:00
luoxu
736eda2189 fix(ble_mesh): fixed issue where private beacon used incorrect adv type 2025-05-27 20:57:18 +08:00
luoxu
85fcf36fb0 fix(ble_mesh): fixed some issues with ble50 2025-05-27 20:57:18 +08:00
luoxu
822385a92e feat(ble_mesh): Remote Provisioning Server UUID Matchs Supported 2025-05-27 20:57:18 +08:00
luoxu
228470339f fix(ble_mesh): Remote Provisioning Client/Server bugs fixed 2025-05-27 20:57:18 +08:00
Kapil Gupta
2348bc3ff9 ci(esp_wifi): Extend eloop test to verify wifi deinit properly 2025-05-27 13:43:03 +05:30
Kapil Gupta
6d97c71d91 fix(esp_wifi): Fixed some concurrency issues in eloop deinit 2025-05-27 13:42:55 +05:30
Kapil Gupta
3e810f5936 fix(esp_wifi): Add eloop blocking call API for public APIs 2025-05-27 13:42:41 +05:30
Kapil Gupta
221f641eb8 fix(esp_wifi): Fixed static analyzer issues 2025-05-27 13:39:08 +05:30
Kapil Gupta
4514aa8e11 fix(esp_wifi): Disble IP renew skip by default 2025-05-27 13:37:23 +05:30
Zhi Wei Jian
33df4408d7 feat(ble/controller): Reduce bin size and IRAM for BLE rom code
(cherry picked from commit 1d739291ca)

Co-authored-by: zhiweijian <zhiweijian@espressif.com>
2025-05-27 16:03:34 +08:00
Zhang Hai Peng
3ebab4f681 fix(ble/bluedroid): Fixed clear BLE device recored
(cherry picked from commit 21391a45fd)

Co-authored-by: zhanghaipeng <zhanghaipeng@espressif.com>
2025-05-27 15:13:54 +08:00
Zhang Hai Peng
3b6faa8514 fix(ble/bluedroid): Fixed issue with deleting link key when classic Bluetooth is not used
(cherry picked from commit 7c16bce827)

Co-authored-by: zhanghaipeng <zhanghaipeng@espressif.com>
2025-05-27 15:13:51 +08:00
linruihao
b50ce3c7ac feat(coex): implement BT coex timer event 2025-05-27 15:00:12 +08:00
Jiang Jiang Jian
6f5c9d4a4c Merge branch 'change/exclude_cve-2023-53154_v5.4' into 'release/v5.4'
change: adds CVE-2023-53154 to cJSON sbom exclude list (v5.4)

See merge request espressif/esp-idf!39416
2025-05-27 14:43:37 +08:00
muhaidong
279dc78e38 fix(coex): fix some external coexist issue 2025-05-27 14:36:28 +08:00
Song Ruo Jing
a46990ff5e fix(uart): fix nmea0183 example wrong knots to m/s unit conversion
Closes https://github.com/espressif/esp-idf/issues/15695
2025-05-27 14:15:33 +08:00
Song Ruo Jing
ec373b51b8 fix(uart): correct C3/S3 module enable porcedure to avoid undesired line noise 2025-05-27 14:15:33 +08:00
Song Ruo Jing
3b3ae85bbe fix(sleep): uart suspend/flush should also check if port is enabled on esp32 2025-05-27 14:15:33 +08:00
Song Ruo Jing
16fced715f docs(uart): improve set/get baud rate API docs
Closes https://github.com/espressif/esp-idf/issues/15449
2025-05-27 14:15:33 +08:00
Song Ruo Jing
1084a1e14c fix(uart): fixed coverity ininitialized scalar variable in uart_tcgetattr 2025-05-27 14:15:33 +08:00
Song Ruo Jing
253c69da08 fix(dedic_gpio): fix calloc to heap_caps_calloc 2025-05-27 14:15:33 +08:00
Song Ruo Jing
bb52e53ede fix(uart): eliminate garbled data on UART TX/RX line in sleep 2025-05-27 14:15:33 +08:00
Song Ruo Jing
60f5828a4a feat(uart): add pin release process to uart driver 2025-05-27 14:15:29 +08:00
Rahul Tank
78214d16ee fix(nimble): Add changes for coverity reported issue 2025-05-27 11:08:25 +05:30
Rahul Tank
66c12d4efe fix(nimble): Add support for minimilistic builds 2025-05-27 11:07:33 +05:30
Rahul Tank
89c26078da fix(nimble): Extend support for allow connect during scan for more chips 2025-05-27 11:06:12 +05:30
Rahul Tank
c36adf0947 fix(nimble): Add configurable option to select ext adv v2 command 2025-05-27 11:04:54 +05:30
Astha Verma
6e4a2619ee fix(nimble): Added api's for fetching gatt cache info and discover included service 2025-05-27 11:03:20 +05:30
tarun.kumar
11334e1afd fix(wifi) : Set rrm config condition in case RRM monitoring is enabled 2025-05-27 10:53:07 +05:30
Jiang Jiang Jian
606ba21345 Merge branch 'feat/ble_log_spi_out_dev_phase_3_v5.4' into 'release/v5.4'
Feat/ble log spi out dev phase 3 (v5.4)

See merge request espressif/esp-idf!39355
2025-05-27 11:32:51 +08:00
Omar Chebib
fd7cfe0b04 fix(esp_system): fix RTC reserved area alignment in the linker script
Make sure the size of the RTC reserved area complies with the alignment requirement.

Closes https://github.com/espressif/esp-idf/issues/13082
2025-05-27 11:20:07 +08:00
Jiang Jiang Jian
76b003c8d6 Merge branch 'bugfix/fix_ble_scan_no_adv_report_when_connected_v5.4' into 'release/v5.4'
Fixed missing ADV reports after bonding and connection on ESP32-C3 and ESP32-S3 (v5.4)

See merge request espressif/esp-idf!39275
2025-05-27 11:15:50 +08:00
Jiang Jiang Jian
3c118a4a10 Merge branch 'bugfix/handle_flow_control_flag_v5.4' into 'release/v5.4'
fix(nimble): Add chip dependancy flag for Flow control feature (v5.4)

See merge request espressif/esp-idf!39294
2025-05-27 11:15:32 +08:00
Jiang Jiang Jian
89edea04e1 Merge branch 'bugfix/esp32s2_memprot_clear_v5.4' into 'release/v5.4'
fix(esp_hw_support): clear the memory protection interrupt status on boot (backport v5.4)

See merge request espressif/esp-idf!38052
2025-05-27 11:14:39 +08:00
Jiang Jiang Jian
871aeae6ad Merge branch 'fix/lp_periph_use_int_raw_v5.4' into 'release/v5.4'
change(lp-core): Update LP I2C and LP UART drivers to use raw interrupt status (v5.4)

See merge request espressif/esp-idf!39249
2025-05-27 11:11:29 +08:00
Jiang Jiang Jian
9d6a4e6962 Merge branch 'docs/fix_p4_usb_jtag_pins_v5.4' into 'release/v5.4'
docs(jtag): fix esp32p4 usb jtag pins (v5.4)

See merge request espressif/esp-idf!39157
2025-05-27 11:02:02 +08:00
Jiang Jiang Jian
82eba308c8 Merge branch 'docs/autocolor_multiline_v5.4' into 'release/v5.4'
docs(tools/idf-monitor): Add note about autocoloring limitation on multiline logs (v5.4)

See merge request espressif/esp-idf!39147
2025-05-27 11:01:24 +08:00
Jiang Jiang Jian
0ba1b04ebb Merge branch 'bugfix/fix_some_ble_bugs_0422_v5.4' into 'release/v5.4'
Bugfix/fix some ble bugs 0422 (v5.4)

See merge request espressif/esp-idf!39072
2025-05-27 10:58:54 +08:00
Jiang Jiang Jian
5c11f71fbc Merge branch 'backport/backport_some_changes_250512_v5.4' into 'release/v5.4'
fix(wifi): fix some wifi bugs(backport v5.4)

See merge request espressif/esp-idf!39400
2025-05-27 10:52:57 +08:00
Jiang Jiang Jian
87c18b1a46 Merge branch 'feat/socket_count_checks_v5.4' into 'release/v5.4'
feat(network/lwip): Add checks for maximum socket count (v5.4)

See merge request espressif/esp-idf!38865
2025-05-27 10:32:30 +08:00
Jiang Jiang Jian
fc5b878c65 Merge branch 'fix/remove-unnecessary-select_v5.4' into 'release/v5.4'
fix(esp_system): Remove unnecessary select from esp_system/Kconfig (v5.4)

See merge request espressif/esp-idf!37520
2025-05-26 19:52:26 +08:00
Jiang Jiang Jian
c8848f4147 Merge branch 'fix/slot0_requires_all_pins_in_1bit_mode_issue_v5.4' into 'release/v5.4'
sd: fixed all pins need to be set when using slot0 on esp32p4 issue (v5.4)

See merge request espressif/esp-idf!39306
2025-05-26 19:48:59 +08:00
Jiang Jiang Jian
aed8bdc8dd Merge branch 'update/v5.4_esp-idf-doc-env-v5.4_ubuntu_24.04' into 'release/v5.4'
Update esp-idf-doc-env-v5.4 image

See merge request espressif/esp-idf!38955
2025-05-26 19:48:14 +08:00
Jiang Jiang Jian
b53f520ebc Merge branch 'fix/fix_esp_timer_accuracy_when_do_dfs_v5.4' into 'release/v5.4'
fix(esp_hw_support): improve esp timer accuracy on DFS for esp32 & esp32s2 (v5.4)

See merge request espressif/esp-idf!39340
2025-05-26 19:46:58 +08:00
Jiang Jiang Jian
ee04629723 Merge branch 'feat/some_xip_psram_related_optimisations_and_fixes_v5.4' into 'release/v5.4'
feat(esp_psram): Add some wasted XIP PSRAM memory in heap and PSRAM protection (v5.4)

See merge request espressif/esp-idf!38872
2025-05-26 19:46:08 +08:00
Jiang Jiang Jian
9a36e3fea9 Merge branch 'contrib/github_pr_15059_v5.4' into 'release/v5.4'
feat(https): Get TLS errors from http client (GitHub PR) (v5.4)

See merge request espressif/esp-idf!39142
2025-05-26 19:45:50 +08:00
Jiang Jiang Jian
afa7b83ed7 Merge branch 'bugfix/gpio_dump_io_config_v5.4' into 'release/v5.4'
fix(gpio): fix pu, pd, drv value incorrect from gpio_dump_io_configuration on esp32 (v5.4)

See merge request espressif/esp-idf!37778
2025-05-26 19:45:25 +08:00
Jiang Jiang Jian
b999d102d1 Merge branch 'feat/calibrate_bus_latency_v5.4' into 'release/v5.4'
Feat/calibrate bus latency v5.4

See merge request espressif/esp-idf!39131
2025-05-26 19:44:51 +08:00
Jiang Jiang Jian
cf0c42936b Merge branch 'fix/fix_esp32p4_stuck_in_pd_ana_v5.4' into 'release/v5.4'
fix(esp_hw_support): fix esp32p4 may get stuck when entering deepsleep (v5.4)

See merge request espressif/esp-idf!39282
2025-05-26 19:44:17 +08:00
Jiang Jiang Jian
c61c31e884 Merge branch 'ci/enable_gcov_test_v5.4' into 'release/v5.4'
ci: enable gcov example for all chips (v5.4)

See merge request espressif/esp-idf!39164
2025-05-26 19:42:51 +08:00
Jiang Jiang Jian
84174f6ffc Merge branch 'feat/apptrace-crc16_v5.4' into 'release/v5.4'
Store CRC16 checksum value in the PERFMON1 reg (v5.4)

See merge request espressif/esp-idf!39209
2025-05-26 19:42:34 +08:00
Jiang Jiang Jian
28c4303059 Merge branch 'refactor/add_dfs_init_auto_test_v5.4' into 'release/v5.4'
fix(mcpwm): the wrong pm lock type on esp32 and esp32s3 (v5.4)

See merge request espressif/esp-idf!39193
2025-05-26 19:41:09 +08:00
Jiang Jiang Jian
f8be92085d Merge branch 'fix/gattc_proc_comparison_v5.4' into 'release/v5.4'
fix(nimble): Fix proc rx entry comparison (v5.4)

See merge request espressif/esp-idf!39187
2025-05-26 19:40:47 +08:00
Jiang Jiang Jian
e5145a9352 Merge branch 'refactor/usb_dwc_buff_delay_on_p4_backport_v5.4' into 'release/v5.4'
refactor(hcd_dwc): Apply ls_via_fs_hub delay for all targets (backport to v5.4)

See merge request espressif/esp-idf!39149
2025-05-26 19:40:06 +08:00
Jiang Jiang Jian
6837ed3974 Merge branch 'fix/usbjtag_after_tinyusb_backport_v5.4' into 'release/v5.4'
fix(usb/phy): Fix ability to switch back to USB/JTAG after uninstalling TinyUSB (backport to v5.4)

See merge request espressif/esp-idf!39126
2025-05-26 19:39:25 +08:00
Jiang Jiang Jian
b29391408b Merge branch 'feature/parttable_tool_use_only_ascii_for_names_v5.4' into 'release/v5.4'
fix(partition_table): Ignore UTF-8 BOM bytes in csv file (v5.4)

See merge request espressif/esp-idf!39180
2025-05-26 19:38:42 +08:00
Jiang Jiang Jian
12143d6587 Merge branch 'contrib/github_pr_15942_v5.4' into 'release/v5.4'
fix(esp_hw_support): Fix compile error on esp_cpu_int_has_handler on ESP32-P4 (GitHub PR) (v5.4)

See merge request espressif/esp-idf!39118
2025-05-26 19:38:22 +08:00
Jiang Jiang Jian
c51c27e879 Merge branch 'fix/fix_usb_hs_phy_leakage_on_deepsleep_v5.4' into 'release/v5.4'
fix(esp_hw_support): Fix deepsleep leakage after initializing USB HS phy (v5.4)

See merge request espressif/esp-idf!39168
2025-05-26 19:36:29 +08:00
Jiang Jiang Jian
10bf6f8b0d Merge branch 'feat/usb_host_move_dma_cap_mem_to_psram_p4_backport_v5.4' into 'release/v5.4'
feat(usb_host): Move DMA capable memory to external ram on P4 (backport v5.4)

See merge request espressif/esp-idf!39078
2025-05-26 19:35:12 +08:00
Jiang Jiang Jian
e84c28eff8 Merge branch 'freertos_sysview_deadlock_fix_v5.4' into 'release/v5.4'
fix(app_trace): prevent deadlock on sysview start (v5.4)

See merge request espressif/esp-idf!39137
2025-05-26 19:34:22 +08:00
Jiang Jiang Jian
9bb2fd0a83 Merge branch 'fix/cache_support_duing_pure_ram_app_v5.4' into 'release/v5.4'
fix(esp_mm): Move cache-related sources out of pure RAM app check (v5.4)

See merge request espressif/esp-idf!39063
2025-05-26 19:33:28 +08:00
Jiang Jiang Jian
43d3dd7b9c Merge branch 'bugfix/secure_ota_no_secure_boot_v5.4' into 'release/v5.4'
fix: secure OTA without secure boot issue for MMU page size configurable SoCs (v5.4)

See merge request espressif/esp-idf!39124
2025-05-26 19:30:53 +08:00
Jiang Jiang Jian
b4cacfe9ae Merge branch 'fix/fix_usj_pad_leakage_v5.4' into 'release/v5.4'
fix(esp_hw_support): always disable USJ pad in sleep to supress leakage (v5.4)

See merge request espressif/esp-idf!39106
2025-05-26 19:29:39 +08:00
akshat
4cc09f2436 fix(wpa_supplicant): Disconnect from previous AP while initiating WPS 2025-05-26 19:27:46 +08:00
akshat
4d8b266c08 fix(wpa_supplicant): Detect PBC overlap even when UUID is null 2025-05-26 19:27:46 +08:00
akshat
255c34ba9f fix(wpa_supplicant): Ensure pbc_overlap event is posted correctly
Preserves the pbc_overlap flag to allow proper event posting.
This ensures that pbc overlap detection functions as expected.
2025-05-26 19:27:46 +08:00
Jiang Jiang Jian
022805670d Merge branch 'bugfix/enable_additional_lp_io_wakeup_v5.4' into 'release/v5.4'
fix(lp_io): enable setting edge type wakeup sources for targets that support this (v5.4)

See merge request espressif/esp-idf!36010
2025-05-26 19:26:28 +08:00
Tomáš Rohlínek
0a9105a406 feat(network/lwip): Add checks for maximum socket count 2025-05-26 19:23:31 +08:00
Ashish Sharma
14a41c29c9 feat(cjson): update to latest upstream 2025-05-26 17:39:50 +08:00
Ashish Sharma
02a0db1dc4 change: adds CVE-2023-53154 to cJSON sbom exclude list 2025-05-26 17:31:11 +08:00
Zhou Xiao
a13ddd5c85 change(ble): make falling edge when disabling ts sync 2025-05-26 15:35:18 +08:00
yinqingzhao
bdc1f1b172 fix(wifi): fix some wifi bugs 2025-05-26 14:48:53 +08:00
Zhou Xiao
e2742ca1f7 fix(ble): fixed spi log init failure return value for ESP32 2025-05-26 10:47:14 +08:00
Zhou Xiao
d6cbc45350 fix(ble): fixed ts sync sleep support trigger 2025-05-23 19:13:00 +08:00
Zhou Xiao
279777aec8 fix(ble): fixed printf va list cross function pass failure 2025-05-23 12:29:46 +08:00
Samuel Obuch
6ee607b00f ci: select OpenOCD binary based on runner 2025-05-23 00:41:15 +02:00
Zhou Xiao
10ec6c6f27 fix(ble): fixed upper layer trans append failure bug
(cherry picked from commit 1e6bc70837)

Co-authored-by: Zhou Xiao <zhouxiao@espressif.com>
2025-05-22 16:55:09 +08:00
Zhou Xiao
772fa9b2c7 feat(ble): support ts sync for sleep app
(cherry picked from commit e10460ce14)

Co-authored-by: Zhou Xiao <zhouxiao@espressif.com>
2025-05-22 16:55:07 +08:00
Zhou Xiao
1bde1985ff feat(ble): support controller raw log print out
(cherry picked from commit ed09e97c66)

Co-authored-by: Zhou Xiao <zhouxiao@espressif.com>
2025-05-22 16:55:05 +08:00
Zhou Xiao
1ddc2a69c1 feat(ble): refactored loss report module and represent frame using struct
(cherry picked from commit 9800d715a5)

Co-authored-by: Zhou Xiao <zhouxiao@espressif.com>
2025-05-22 16:55:02 +08:00
Zhou Xiao
eb73902c9c feat(ble): support le audio log buffer separation
(cherry picked from commit cd3aa6527c)

Co-authored-by: Zhou Xiao <zhouxiao@espressif.com>
2025-05-22 16:55:00 +08:00
Zhou Xiao
7298a27121 feat(ble): optimized printf functions code size and speed
(cherry picked from commit e4be25ba63)

Co-authored-by: Zhou Xiao <zhouxiao@espressif.com>
2025-05-22 16:54:57 +08:00
Zhou Xiao
c690670f65 feat(ble): refactored flush module and provided public flush api
(cherry picked from commit 70792443c7)

Co-authored-by: Zhou Xiao <zhouxiao@espressif.com>
2025-05-22 16:54:55 +08:00
Zhou Xiao
1cc5a41322 feat(ble): refactored ll isr buffer append and buffer flush using event handler
(cherry picked from commit bba90309e7)

Co-authored-by: Zhou Xiao <zhouxiao@espressif.com>
2025-05-22 16:54:52 +08:00
Zhou Xiao
4f1e4cc83b feat(ble): provided dynamic spi enable/disable api
(cherry picked from commit 3568f19fef)

Co-authored-by: Zhou Xiao <zhouxiao@espressif.com>
2025-05-22 16:54:50 +08:00
Zhou Xiao
bfdc8f3924 feat(ble): support hci log buffer separation
(cherry picked from commit 16a3b2c71b)

Co-authored-by: Zhou Xiao <zhouxiao@espressif.com>
2025-05-22 16:54:47 +08:00
Zhou Xiao
25cd0ef51a feat(ble): optimized macros readability
(cherry picked from commit f8699785e9)

Co-authored-by: Zhou Xiao <zhouxiao@espressif.com>
2025-05-22 16:54:45 +08:00
wuzhenghui
3fa79684cd ci(esp_timer): add UT case for esp_timer period alarm with DFS 2025-05-22 15:18:22 +08:00
wuzhenghui
b5da8a52c6 feat(esp_hw_support): compensate the error introduced to LACT during APB frequency switching 2025-05-22 15:18:21 +08:00
wuzhenghui
db6aedef25 fix(esp_hw_support): update systimer step immediately when XTAL changes on esp32s2 2025-05-22 15:18:21 +08:00
wuzhenghui
78e9c47580 fix(esp_hw_support): update LACT clock prescale immediately when APB changes on esp32 2025-05-22 15:18:16 +08:00
armando
6e3d0e5384 fix(sd): fixed menuconfig multi pin definitions issue 2025-05-21 11:11:33 +08:00
armando
d6b5320bf6 fix(sd): fixed slot0 requires all pins to be set when using 1bit iomux mode on p4 2025-05-21 11:11:28 +08:00
Rahul Tank
58f1f092e9 fix(nimble): Add chip dependancy flag for Flow control feature 2025-05-20 18:10:26 +05:30
wuzhenghui
e27321ab51 fix(esp_hw_support): fix esp32p4 may get stuck when entering deepsleep 2025-05-20 15:52:52 +08:00
Song Ruo Jing
c3e4134b0c feat(gpio): gpio_reset_pin should do IO reservation revoke
Closes https://github.com/espressif/esp-idf/issues/15598
2025-05-20 15:30:26 +08:00
Song Ruo Jing
8f231272f6 fix(gpio): fix IO output enable control
oen_sel and oen_inv_sel fields from func_out_sel_cfg register
2025-05-20 15:30:26 +08:00
Song Ruo Jing
9ed617fb17 fix(gpio): removed unnecessary step when routing input signal to a pin 2025-05-20 15:30:26 +08:00
Song Ruo Jing
f61b453a25 fix(gpio): fix 8/16-bit gpio, rtc/lp_io register access 2025-05-20 15:30:26 +08:00
Song Ruo Jing
6cffc5c994 fix(gpio): fix pu, pd, drv value incorrect from gpio_dump_io_configuration on esp32
Closes https://github.com/espressif/esp-idf/issues/14931
2025-05-20 15:30:14 +08:00
Island
734b1b1be5 Merge branch 'change/ble_update_lib_20250516_v5.4' into 'release/v5.4'
change(ble): [AUTO_MR] 20250516 - Update ESP BLE Controller Lib (v5.4)

See merge request espressif/esp-idf!39237
2025-05-20 11:41:52 +08:00
Zhang Hai Peng
abb3b2d70c fix(bt): Update bt lib for ESP32-C3 and ESP32-S3(4713205)
- Fix: Missing ADV reports after bonding and connection


(cherry picked from commit 244d4f8fa7)

Co-authored-by: zhanghaipeng <zhanghaipeng@espressif.com>
2025-05-20 11:13:32 +08:00
Zhao Wei Liang
6f99672c32 feat(ble): support creating connections during scanning process on ESP32-C5
(cherry picked from commit 9d687daf36)

Co-authored-by: zwl <zhaoweiliang@espressif.com>
2025-05-19 19:17:03 +08:00
Sudeep Mohanty
6b75576db2 change(lp-core): Update LP I2C and LP UART drivers to use raw interrupt status
This commit updates the LP I2C and LP UART drivers to use the raw
interrupt status without enabling the interrupts.
2025-05-19 10:33:21 +02:00
Zhao Wei Liang
6a9fedcab3 fix(ble): added missed printf for ll log interface
(cherry picked from commit d12e072b35)

Co-authored-by: Zhou Xiao <zhouxiao@espressif.com>
2025-05-19 12:04:21 +08:00
Zhao Wei Liang
2f92b39cc5 feat(ble): support creating connections during scanning process on ESP32-H2
(cherry picked from commit 207d85a5f7)

Co-authored-by: zwl <zhaoweiliang@espressif.com>
2025-05-19 12:04:18 +08:00
Zhao Wei Liang
efd16c699a fix(ble): fixed occasional assert issue in scan and connection scenarios on ESP32-C6
(cherry picked from commit cd6038b6cf)

Co-authored-by: zwl <zhaoweiliang@espressif.com>
2025-05-19 12:04:16 +08:00
Zhao Wei Liang
d15978a30d change(ble): [AUTO_MR] Update lib_esp32c2 to 664e4255
(cherry picked from commit 3cfd4d0166)

Co-authored-by: zwl <zhaoweiliang@espressif.com>
2025-05-19 12:04:14 +08:00
Zhao Wei Liang
60d528f7a7 change(ble): [AUTO_MR] Update lib_esp32c6 to 1304a9d0
(cherry picked from commit 69158d5064)

Co-authored-by: zwl <zhaoweiliang@espressif.com>
2025-05-19 12:04:11 +08:00
Zhao Wei Liang
8a447d44c6 change(ble): [AUTO_MR] Update lib_esp32c5 to 1304a9d0
(cherry picked from commit 27220c1b4c)

Co-authored-by: zwl <zhaoweiliang@espressif.com>
2025-05-19 12:04:09 +08:00
Zhao Wei Liang
af84660236 change(ble): [AUTO_MR] Update lib_esp32h2 to 1304a9d0
(cherry picked from commit 29f89efea6)

Co-authored-by: zwl <zhaoweiliang@espressif.com>
2025-05-19 12:04:07 +08:00
Erhan Kurubas
41ac26292f feat(apptrace): Store CRC16 checksum value of exposed block in the perfmon reg 2025-05-16 11:32:41 +02:00
Konstantin Kondrashov
809925eb60 refactor(partition_table): Refactoring of code style 2025-05-16 09:42:03 +03:00
morris
488ab842e3 fix(mcpwm): the wrong pm lock type on esp32 and esp32s3 2025-05-16 10:50:43 +08:00
Sumeet Singh
4bfd493087 fix(nimble): Fix proc rx entry comparison (v5.4) 2025-05-15 19:44:48 +05:30
Konstantin Kondrashov
41dd352149 fix(partition_table): Ignore UTF-8 BOM bytes in csv file 2025-05-15 13:35:28 +03:00
Samuel Obuch
d452abc17e ci: fix app_trace_basic rules and test 2025-05-15 11:29:27 +02:00
Samuel Obuch
3c673cbea3 ci: enable gcov example for all chips 2025-05-15 11:29:22 +02:00
wuzhenghui
1811757ad9 fix(esp_hw_support): Fix deepsleep leakage after initializing USB HS phy 2025-05-15 16:05:05 +08:00
Anton Maklakov
7ec02857f4 docs(jtag): fix esp32p4 usb jtag pins 2025-05-15 12:13:31 +07:00
renpeiying
f114a94369 docs: Update CN for idf-monitor.rst 2025-05-14 13:55:08 +02:00
Peter Dragun
bb3655d6e7 docs(tools/idf-monitor): Add note about autocoloring limitation on multiline logs
Closes https://github.com/espressif/esp-idf/issues/15793
2025-05-14 13:54:55 +02:00
Roman Leonov
2034360d96 refactor(hcd_dwc): Apply ls_via_fs_hub delay for all targets 2025-05-14 13:53:34 +02:00
nilesh.kale
10fe93f1c3 fix(esp_http_client): update code format for API
This commit update code format as per IDF standard for API
esp_http_client_get_and_clear_last_tls_error().
2025-05-14 15:25:06 +05:30
Lorenzo Consolaro
5bd8026249 feat(https): Get TLS errors from http client
update PR

update mr

Update components/esp_http_client/esp_http_client.c

Co-authored-by: Nilesh Kale <nilesh.kale@espressif.com>
2025-05-14 15:25:06 +05:30
Samuel Obuch
23773bb4dc fix(sysview): do not use freertos ticks to prevent deadlock 2025-05-14 11:22:21 +02:00
Tan Yan Quan
5e3f2e7129 feat(openthread): change border agent to kconfig option 2025-05-14 16:12:27 +08:00
Tan Yan Quan
a53f89e66c fix(openthread): handle SetTimeSyncState when ifconfig up or down 2025-05-14 16:12:17 +08:00
Tan Yan Quan
f59e0b6dc7 feat(openthread): support bus_latency for dual-chip BR solution 2025-05-14 16:12:10 +08:00
John Boiles
2557132185 fix(usb/phy): Fix ability to switch back to USB/JTAG after uninstalling TinyUSB
Fixes #15912. This is a revert of a change made in 005ae0554 that breaks the
ability to re-initalize the USB/JTAG device after uninstalling TinyUSB.

Closes https://github.com/espressif/esp-idf/issues/15912
2025-05-14 08:25:40 +02:00
Mahavir Jain
e1d41ada5c test: add secure image verification case for C6/H2 2025-05-14 10:57:09 +05:30
Mahavir Jain
09fbed0eec fix: secure OTA without secure boot issue for MMU page size configurable SoCs
For secure app verification during OTA update case, the image was
getting memory mapped twice and hence the failure in verification.

Modified from memory mapped flash read to SPI flash read approach
for the MMU page size from image header.

Regression from 07318a4987

Closes https://github.com/espressif/esp-idf/issues/15936
2025-05-14 10:55:48 +05:30
Weltenprinz
d34bdc8394 fix(esp_hw_support): Fix compile error on esp_cpu_int_has_handler on ESP32-P4
Merges https://github.com/espressif/esp-idf/pull/15942
Closes https://github.com/espressif/esp-idf/issues/15941
2025-05-13 18:20:42 +03:00
wuzhenghui
daaba0f36c fix(esp_hw_support): always disable USJ pad in sleep to supress leakage 2025-05-13 20:11:18 +08:00
peter.marcisovsky
95bd653ec1 feat(usb_host): Move DMA capable memory to external ram on P4
- DWC-OTG internal DMA can access psram on esp32p4
    - Move DMA memory buffs to psram, to save internal ram
    - HCD tests and MSC example runs in CI with psram enabled
2025-05-13 13:31:17 +02:00
Peter Macko
417fe048a1 change(ci): Update esp-idf-docs-env-v5.4 image
- Add Sphinx warnings caused by [#11323](https://github.com/doxygen/doxygen/issues/11323)
- Update esp-idf-doc-env-v5.4 to use the updated parent image (Ubuntu 24.04 and Node.js 22)
- Exclude sphinx-known-warnings.txt from pre-commit checks.
2025-05-13 11:21:58 +02:00
Zhang Hai Peng
0743b4ad6e fix(ble/bluedroid): Reduce Bluedroid host log output over SPI
(cherry picked from commit 0586d10317)

Co-authored-by: zhanghaipeng <zhanghaipeng@espressif.com>
2025-05-13 16:14:14 +08:00
Zhang Hai Peng
8a11127ddd fix(ble/bluedroid): Added value len check in esp_ble_gatts_send_indicate()
(cherry picked from commit bfa0fff2e5)

Co-authored-by: Nebojsa Cvetkovic <nebkat@gmail.com>
2025-05-13 16:14:12 +08:00
Zhang Hai Peng
e2915a60c5 fix(ble/bluedroid): Change maximum length of attribute value to 517
(cherry picked from commit df8c1f7a96)

Co-authored-by: zhanghaipeng <zhanghaipeng@espressif.com>
2025-05-13 16:14:09 +08:00
Zhang Hai Peng
901fc0c9ac docs(ble): clarify meaning of 0 value for esp_ble_gap_start_ext_scan() parameters
(cherry picked from commit ebb76933d0)

Co-authored-by: zhanghaipeng <zhanghaipeng@espressif.com>
2025-05-13 16:14:07 +08:00
Zhang Hai Peng
4f050ed635 fix(ble/bluedroid): Fixed BLE GAP appearance configuration check
(cherry picked from commit 6552854cb5)

Co-authored-by: zhanghaipeng <zhanghaipeng@espressif.com>
2025-05-13 16:14:04 +08:00
nilesh.kale
93ca084b62 fix(esp_mm): Move cache-related sources out of pure RAM app check
This change resolves build issues when compiling with
CONFIG_APP_BUILD_TYPE_PURE_RAM_APP enabled.
2025-05-13 12:57:19 +05:30
Jan Beran
fdca2c76f3 fix(esp_system): Remove unnecessary select from esp_system/Kconfig 2025-05-12 09:51:04 +02:00
Marius Vikhammer
fe75355314 Merge branch 'bugfix/heap_in_flash_v5.4' into 'release/v5.4'
fix(heap): fixed CONFIG_HEAP_PLACE_FUNCTION_INTO_FLASH not working together with CONFIG_HEAP_TLSF_USE_ROM_IMPL (v5.4)

See merge request espressif/esp-idf!38121
2025-05-12 11:50:39 +08:00
Jiang Jiang Jian
fd37cd46b2 Merge branch 'feat/nvs_pytest_add_non_ascii_string_test_v5.4' into 'release/v5.4'
feat: Add NVS generator check test for CRC of non-ASCII strings (v5.4)

See merge request espressif/esp-idf!38842
2025-05-12 10:46:10 +08:00
Jiang Jiang Jian
063d9d4307 Merge branch 'contrib/github_pr_15132_v5.4' into 'release/v5.4'
fix(newlib): usleep returning early (GitHub PR) (v5.4)

See merge request espressif/esp-idf!38708
2025-05-12 10:42:50 +08:00
morris
77ae1d2b04 Merge branch 'bugfix/fixed_mismatch_of_tx_queue_statue_v5.4' into 'release/v5.4'
fix(i2s): fixed the false buf catenate while use preload (v5.4)

See merge request espressif/esp-idf!38967
2025-05-12 10:35:14 +08:00
Marius Vikhammer
2fcebb7483 fix(lp_io): allow edge wakeup types for LP-IO on chips which support it 2025-05-12 09:48:30 +08:00
Marius Vikhammer
cccccd6da8 fix(newlib): fixed newlib malloc wrappers IRAM/flash placement
If HEAP_PLACE_FUNCTION_INTO_FLASH = y then we should also place
the newlib wrappers for the heap in to flash.
2025-05-12 09:47:08 +08:00
Marius Vikhammer
209ac93ac2 fix(heap): fixed HEAP_PLACE_FUNCTION_INTO_FLASH disabled if heap impl in ROM 2025-05-12 09:47:08 +08:00
Rahul Tank
4a927ac8d6 Merge branch 'bugfix/provide_user_option_delete_pair_v5.4' into 'release/v5.4'
fix(nimble): Added option to stack to handle repeat pairing internally (v5.4)

See merge request espressif/esp-idf!38959
2025-05-10 22:55:07 +08:00
Shu Chen
3fc7689ea1 Merge branch 'feat/ot_br_esp32p4_v5.4' into 'release/v5.4'
feat(br): support ot_br example for esp32p4 (v5.4)

See merge request espressif/esp-idf!39003
2025-05-09 19:46:49 +08:00
Jiang Jiang Jian
4f09162f42 Merge branch 'bugfix/hwlp_coproc_saving_master_v5.4' into 'release/v5.4'
fix(freertos): workaround a hardware bug related to HWLP coprocessor (backport v5.4)

See merge request espressif/esp-idf!38059
2025-05-09 19:31:06 +08:00
Jiang Jiang Jian
ed8580011c Merge branch 'fix/reduce_rtc_text_size_v5.4' into 'release/v5.4'
fix(system): linker script: free unused .rtc.text memory for esp32c3, esp32s2 (v5.4)

See merge request espressif/esp-idf!35366
2025-05-09 18:54:01 +08:00
Jiang Jiang Jian
a3b5428364 Merge branch 'docs/fix-kconfserver-link_v5.4' into 'release/v5.4'
docs: Fix link to the kconfserver documentation (v5.4)

See merge request espressif/esp-idf!38905
2025-05-09 17:58:50 +08:00
Jiang Jiang Jian
90607ee77b Merge branch 'bugfix/esp32_c6_rev0_ecdsa_build_v5.4' into 'release/v5.4'
fix: Secure boot (ECDSA) build failure for C6 rev0 target (v5.4)

See merge request espressif/esp-idf!38834
2025-05-09 17:57:55 +08:00
Jiang Jiang Jian
aa1db69a13 Merge branch 'feat/remove_const_from_voltopart_v5.4' into 'release/v5.4'
feat(fatfs/diskio): Remove const from PARTITION VolToPart (v5.4)

See merge request espressif/esp-idf!38782
2025-05-09 17:55:57 +08:00
morris
bb2c83ef20 Merge branch 'fix/rmt_race_condition_v5.4' into 'release/v5.4'
fix(rmt): fix race condition and add receive config error message (v5.4)

See merge request espressif/esp-idf!38998
2025-05-09 17:20:53 +08:00
Mahavir Jain
103db4a4ac Merge branch 'fix/async_handler_example_stack_overflow_issue_v5.4' into 'release/v5.4'
fix(esp_http_server): Async handler example stack overflow fix (v5.4)

See merge request espressif/esp-idf!38996
2025-05-09 17:12:27 +08:00
Tan Yan Quan
58f08be521 feat(openthread/br): update thread-lib for esp32p4 and OT upstream ec2b0d487
* esp-openthread: thread_zigbee/esp-openthread@80d6e2f8e
* openthread: espressif/openthread@ec2b0d487
* esp-idf: espressif/esp-idf@64d713a71
2025-05-09 07:43:49 +00:00
Tan Yan Quan
64d713a712 feat(openthread): update OT upstream to ec2b0d487 2025-05-09 14:42:15 +08:00
Tan Yan Quan
58c1339077 feat(openthread): support esp32p4 as ot_br 2025-05-09 14:40:48 +08:00
Island
8ad0d3d8f2 Merge branch 'change/ble_update_lib_20250430_v5.4' into 'release/v5.4'
change(ble): [AUTO_MR] 20250430 - Update ESP BLE Controller Lib (v5.4)

See merge request espressif/esp-idf!38974
2025-05-09 14:05:17 +08:00
Island
1b1796fb2d Merge branch 'docs/update_ble_feature_status_latest_v5.4' into 'release/v5.4'
Updated BLE feature status (v5.4)

See merge request espressif/esp-idf!38991
2025-05-09 14:02:54 +08:00
Chen Jichang
65e8047c07 fix(rmt): fix race condition and add receive config error message
Closes https://github.com/espressif/esp-idf/issues/15842
Closes https://github.com/espressif/esp-idf/issues/15836
2025-05-09 13:44:18 +08:00
hrushikesh.bhosale
ccdd373eca fix(esp_http_server): Async handler example stack overflow fix
1. In async handler example, on hitting /long URI and closing the
connection forcefully from client (example ctrl + c) cause more stack
size (almost 200 bytes) than successfull request.
2. The connection should be closed from the server as soon as the client
closes the connect (i.e. handler should return ESP_FAIL to close the
connection)
2025-05-09 10:18:13 +05:30
Mahavir Jain
daf1057209 fix: Secure boot (ECDSA) build failure for C6 rev0 target
Closes https://github.com/espressif/esp-idf/issues/15856
2025-05-09 12:03:07 +08:00
Alexey Lapshin
c06fb3b759 fix(system): linker script: free unused .rtc.text memory for esp32c3/esp32s2/esp32s3 2025-05-09 11:39:24 +08:00
Omar Chebib
827f6bca2b fix(freertos): optimize HWLP context switch by disabling it when unused 2025-05-09 11:38:33 +08:00
Omar Chebib
d973153488 fix(freertos): workaround a hardware bug related to HWLP coprocessor
This commit manually sets the HWLP context to dirty when a Task that needs it is scheduled it.
2025-05-09 11:38:33 +08:00
Omar Chebib
f3fad943fd fix(esp_hw_support): clear the memory protection interrupt status on boot
Fixes https://github.com/espressif/esp-idf/issues/15359
2025-05-09 11:37:40 +08:00
Wei Yu Han
4c62b9b8e9 Updated BLE feature status
(cherry picked from commit b6fc400d1d818094de959930c20e1583c2e22c1a)

Co-authored-by: weiyuhan <weiyuhan@espressif.com>
2025-05-09 11:36:42 +08:00
Jiang Jiang Jian
796ca12684 Merge branch 'fix/ble_mesh_trans_pending_fix_v5.4' into 'release/v5.4'
fix(ble_mesh): remove tx pending assert (v5.4)

See merge request espressif/esp-idf!38936
2025-05-09 11:35:06 +08:00
morris
d62e3c7d14 Merge branch 'contrib/github_pr_15638_v5.4' into 'release/v5.4'
fix(i2c): Fix clear bus issue in legacy i2c driver, etc. (backport v5.4)

See merge request espressif/esp-idf!38828
2025-05-09 10:38:11 +08:00
Jiang Jiang Jian
d2b2909f6a Merge branch 'bugfix/fix_modem_state_rx_bcn_failed_v5.4' into 'release/v5.4'
fix(wifi):fix modem state rx bcn failed when tbtt update, support modem state for coexist (backport v5.4)

See merge request espressif/esp-idf!38935
2025-05-09 10:15:57 +08:00
Wang Meng Yang
304acd5c4c Merge branch 'feat/add_sdkconfig_for_secure_connection_v5.4' into 'release/v5.4'
fix(bt): disable dm1 for acl-u when aes-ccm is on in peripheral(backport v5.4)

See merge request espressif/esp-idf!38975
2025-05-09 09:38:58 +08:00
morris
a2022990a4 Merge branch 'ci/remove_c5_support_from_readme' into 'release/v5.4'
ci(esp32c5): remove c5 support from readme on v5.4

See merge request espressif/esp-idf!38851
2025-05-08 18:27:24 +08:00
gongyantao
44cc3f963d fix(bt): disable dm1 for acl-u when aes-ccm is on in peripheral 2025-05-08 18:20:45 +08:00
Rahul Tank
581dbafe22 fix(nimble): Added option to stack to handle repeat pairing internally 2025-05-08 15:33:05 +05:30
Rahul Tank
5d4d3c697e Merge branch 'feat/autopts_and_ssc_fixes_v5.4' into 'release/v5.4'
feat(nimble): Added fixes related to SSC and AutoPTS testing (v5.4)

See merge request espressif/esp-idf!38796
2025-05-08 17:59:05 +08:00
Mahavir Jain
977a9182ea Merge branch 'feat/c6_v002_compatibility_v5.4' into 'release/v5.4'
hw_support: Add Kconfig option for c6 v0.2 (v5.4)

See merge request espressif/esp-idf!38942
2025-05-08 16:48:31 +08:00
Shen Wei Long
08dbf8b7ff fix(ble): update ld file on ESP32-C2
(cherry picked from commit ee6607b489)

Co-authored-by: zwl <zhaoweiliang@espressif.com>
2025-05-08 14:54:15 +08:00
Shen Wei Long
ef8873f8b8 change(ble): [AUTO_MR] Update lib_esp32c2 to 16e16586
(cherry picked from commit 26754d8e71)

Co-authored-by: Shen Weilong <shenweilong@espressif.com>
2025-05-08 14:54:13 +08:00
Shen Wei Long
fe0899f94f change(ble): [AUTO_MR] Update lib_esp32c6 to 9ecb81c8
(cherry picked from commit a477bfb140)

Co-authored-by: Shen Weilong <shenweilong@espressif.com>
2025-05-08 14:54:11 +08:00
Shen Wei Long
59b8d97e3e change(ble): [AUTO_MR] Update lib_esp32c5 to 9ecb81c8
(cherry picked from commit 852a095b59)

Co-authored-by: Shen Weilong <shenweilong@espressif.com>
2025-05-08 14:54:08 +08:00
Shen Wei Long
3da6ad8f3a change(ble): [AUTO_MR] Update lib_esp32h2 to 9ecb81c8
(cherry picked from commit a3cc91dbf0)

Co-authored-by: Shen Weilong <shenweilong@espressif.com>
2025-05-08 14:54:06 +08:00
laokaiyao
30e78a644c fix(i2s): fixed the false buf catenate while use preload
Closes https://github.com/espressif/esp-idf/issues/15775
2025-05-08 14:24:10 +08:00
Shu Chen
c5f88c452c Merge branch 'feat/mtd_parent_search_v5.4' into 'release/v5.4'
feat(openthread): enable parent search function for MTD (v5.4)

See merge request espressif/esp-idf!38820
2025-05-08 14:13:05 +08:00
Shu Chen
323af330b9 Merge branch 'fix/calibrate_csl_rx_v5.4' into 'release/v5.4'
fix(openthread): calibrate CSL parameters (v5.4)

See merge request espressif/esp-idf!38533
2025-05-08 14:11:45 +08:00
Jiang Jiang Jian
5e7a047ad7 Merge branch 'bugfix/tsens_read_abnormal_value_v5.4' into 'release/v5.4'
fix: tsens read abnormal value in esp32c2eco4 (backport v5.4)

See merge request espressif/esp-idf!38900
2025-05-08 12:40:14 +08:00
laokaiyao
4318434aa6 ci(esp32c5): remove c5 support from readme on v5.4 2025-05-08 11:08:07 +08:00
Rahul Tank
151dc0bd74 Merge branch 'bugfix/conn_with_scan_c6_h2_v5.4' into 'release/v5.4'
fix(nimble): Enable support for Connect with scan for 32/ c6/ h2 chip (v5.4)

See merge request espressif/esp-idf!38852
2025-05-08 00:28:01 +08:00
Sumeet Singh
ffaa688582 feat(nimble): Added some fixes for autopts testing 2025-05-07 16:58:36 +05:30
Island
c799865f91 Merge branch 'bugfix/fix_scan_stopped_with_high_rtc_freq_v5.4' into 'release/v5.4'
fix(ble): fix rtc freq set too high on ESP32-C2 (v5.4)

See merge request espressif/esp-idf!38931
2025-05-07 18:47:22 +08:00
Xiao Xufeng
94217c03ec feat(soc): add config option for c6 v0.2 2025-05-07 16:45:53 +08:00
Rahul Tank
b65d20d371 fix(nimble): Enable support for Connect with scan for esp32/c6/ h2 chip 2025-05-07 12:40:18 +05:30
Island
8686f29e4f Merge branch 'fix/ble_mesh_fixed_insufficient_link_close_v5.4' into 'release/v5.4'
fix(ble_mesh): fixed issue with insufficient link close transmit cnt (v5.4)

See merge request espressif/esp-idf!38898
2025-05-07 14:58:26 +08:00
luoxu
b1d1170499 fix(ble_mesh): remove tx pending assert 2025-05-07 14:55:21 +08:00
Li Shuai
7014cfc831 fix(esp_hw_support): fix modem wakeup req always high caused by pmu min slp cycle update 2025-05-07 14:25:05 +08:00
Li Shuai
d5ff59f144 change(esp_hw_support): add interface to calculate slow clock period by clock frequency 2025-05-07 14:15:20 +08:00
Rahul Tank
6af56914c8 Merge branch 'fix/optimize_nimble_throughput_example_v5.4' into 'release/v5.4'
fix(nimble): Added support of Dynamic switching between different Phy modes. (v5.4)

See merge request espressif/esp-idf!38910
2025-05-07 12:38:55 +08:00
sibeibei
444dddd87d fix(wifi):fix modem state rx bcn failed when tbtt update, support modem state for coexist 2025-05-07 11:57:55 +08:00
morris
be8d37700b Merge branch 'feature/usb_host_ext_hub_collective_backport_v5.4' into 'release/v5.4'
feat(usb_host): External Hub collective backport to v5.4

See merge request espressif/esp-idf!37266
2025-05-07 10:48:35 +08:00
morris
02a4deca7d Merge branch 'contrib/github_pr_15853_v5.4' into 'release/v5.4'
Fix for an infinite wait in spi-lcd-touch example (GitHub PR) (v5.4)

See merge request espressif/esp-idf!38899
2025-05-07 10:46:02 +08:00
Jin Chen
ffad40df88 fix(ble): fix rtc freq set too high on ESP32-C2
(cherry picked from commit 6a80deac03)

Co-authored-by: cjin <jinchen@espressif.com>
2025-05-07 10:18:38 +08:00
Roman Leonov
e329d34109 refactor(ext_port): Removed ext_hub dependency 2025-05-06 15:22:15 +02:00
Roman Leonov
f78927334f refactor(ext_port): Changed the mechanism for hub class request
Merged all Hub Class specific request to one function.
Added a callback for the External Port Driver to break the dependency from ext_hub.h
2025-05-06 15:02:03 +02:00
Roman Leonov
08fd2d8d4e feat(ext_hub): Added device error handling 2025-05-06 14:58:26 +02:00
Roman Leonov
fb6e803bfa feat(usbh): Added uid presence check in USBH device object list 2025-05-06 14:58:26 +02:00
Shreeyash
4dfa2beaf1 fix(nimble): Added support for 1m, 2m, coded phy channels and optimized throughput 2025-05-06 17:58:17 +05:30
Rahul Tank
05e67781a1 Merge branch 'bugfix/add_adv_type_parse_v5.4' into 'release/v5.4'
fix(nimble): Add API to parse adv report for given type (v5.4)

See merge request espressif/esp-idf!38789
2025-05-06 19:55:48 +08:00
Jiang Jiang Jian
beb0bcc970 Merge branch 'bugfix/wps_msg_timeout_increase_v5.4' into 'release/v5.4'
fix(esp_wifi): Increase WPS message timeout (v5.4)

See merge request espressif/esp-idf!38875
2025-05-06 16:37:56 +08:00
akshat
71fde740e1 fix(wpa_supplicant): Fix build errors when Supplicant logs are enabled 2025-05-06 12:47:33 +05:30
Kapil Gupta
0de5180d8a fix(esp_wifi): Increase WPS timeout 2025-05-06 12:46:42 +05:30
Jan Beran
d0dd9c0511 docs: Fix link to the kconfserver documentation 2025-05-06 09:15:04 +02:00
Chen Jichang
c979548bfe fix(lcd): fix test failure regression 2025-05-06 14:31:32 +08:00
Chen Jichang
0daccd7f30 fix(lcd): fix the infinite wait when lvgl timer is no ready
Merges https://github.com/espressif/esp-idf/pull/15853
2025-05-06 14:31:32 +08:00
sibeibei
e2a1b933e8 fix: tsens read abnormal value in esp32c2eco4 2025-05-06 14:20:17 +08:00
Jiang Jiang Jian
45d95b1bd8 Merge branch 'fix/fix_esp32p4_retention_cost_v5.4' into 'release/v5.4'
fix(esp_hw_support): optimize retention cost and update sleep time compensation (v5.4)

See merge request espressif/esp-idf!38744
2025-05-06 14:18:49 +08:00
Decstar77
7cef584834 fix(spi-lcd-touch-example): Fix for an infinite wait caused by UINT32_MAX 2025-05-06 14:14:14 +08:00
Jiang Jiang Jian
89a76e918e Merge branch 'docs/update_ble_feature_support_status_v5.4' into 'release/v5.4'
Docs: update ble feature support status (v5.4)

See merge request espressif/esp-idf!37091
2025-05-06 14:02:31 +08:00
morris
0448c4bda5 Merge branch 'fix/usb_host_hcd_dma_ls_via_fs_hubs_backport_v5.4' into 'release/v5.4'
fix(hcd): Added delay to slow down scatter-gather dma for ls device via fs hubs (backport v5.4)

See merge request espressif/esp-idf!38650
2025-05-06 13:41:08 +08:00
Luo Xu
df82a96f15 fix(ble_mesh): fixed issue with insufficient link close transmit cnt
(cherry picked from commit ad1073693e)

Co-authored-by: luoxu <luoxu@espressif.com>
2025-05-06 12:23:33 +08:00
Jiang Jiang Jian
6a75fd8518 Merge branch 'bugfix/fix_not_update_country_in_beacon_v5.4' into 'release/v5.4'
fix(wifi): fix not update country in beacon(backport v5.4)

See merge request espressif/esp-idf!38831
2025-05-06 09:54:43 +08:00
harshal.patil
26586deb7d fix(esp_psram): Add XIP PSRAM alignment gaps in heap only if PSRAM protection is enabled 2025-05-05 11:52:15 +05:30
harshal.patil
9406fde68d feat(cpu_region_protect): Enable basic memory protection for SPIRAM 2025-05-05 11:52:04 +05:30
Rahul Tank
10d6bee001 Merge branch 'bugfix/fix_ext_disc_example_usage_v5.4' into 'release/v5.4'
fix(nimble): Corrected structure field name usage in examples (v5.4)

See merge request espressif/esp-idf!38858
2025-05-05 13:44:32 +08:00
harshal.patil
f77e96e7c6 feat(esp_psram): Add the gap created due to alignment of XIP segments in heap 2025-05-05 11:09:52 +05:30
harshal.patil
fac460f89e feat(esp_psram): Add some helper APIs to get usable PSRAM memory size 2025-05-05 11:09:52 +05:30
Mahavir Jain
b62c2cef1b Merge branch 'docs/fix_unterminated_quotes_v5.4' into 'release/v5.4'
fix(docs): Fix unterminated quotes in secure-boot-v2.rst (v5.4)

See merge request espressif/esp-idf!38885
2025-05-02 18:48:59 +08:00
harshal.patil
9276f7b294 fix(docs): Fix unterminated quotes in secure-boot-v2.rst 2025-05-02 15:16:39 +05:30
morris
92a5676c6e Merge branch 'fix/usb_comprehensive_heap_backport_v5.4' into 'release/v5.4'
fix(usb/host): Do not call heap_caps_get_allocated_size() in USB host driver (backport to v5.4)

See merge request espressif/esp-idf!38864
2025-05-01 07:58:56 +08:00
Roland Dobai
f811882a11 Merge branch 'ci/rename-packages_v5.4' into 'release/v5.4'
ci: rename local idf_ci folder, avoid name collision (v5.4)

See merge request espressif/esp-idf!38757
2025-04-30 17:17:23 +08:00
Tomas Rezucha
462c1ed957 fix(usb/host): Do not call heap_caps_get_allocated_size() in USB host driver
It causes heap corruption if heap poisoning is enabled on ESP32-P4.
It returns incorrect size on ESP32-S3.

Closes https://github.com/espressif/esp-idf/issues/15815
2025-04-30 08:38:37 +02:00
morris
733ff2bff6 Merge branch 'fix/fix_image_check_16_mega_bytes_limit_v5.4' into 'release/v5.4'
bootloader: fixed image cannot exceed 16MB issue (v5.4)

See merge request espressif/esp-idf!38846
2025-04-30 14:22:35 +08:00
Shu Chen
2423cd3257 Merge branch 'fix/fix_ot_set_mac_framecounter_v5.4' into 'release/v5.4'
backport: OpenThread features and bug fixes to v5.4

See merge request espressif/esp-idf!38816
2025-04-30 13:04:27 +08:00
Marius Vikhammer
93c7af19c7 Merge branch 'bugfix/linux_host_test_v5.4' into 'release/v5.4'
fix(linux): fix mixed linux host test issues found after CI docker image upgrade (v5.4)

See merge request espressif/esp-idf!38232
2025-04-30 13:02:25 +08:00
Aditya Patwardhan
f3617e69b6 Merge branch 'fix/build_failure_when_sha1_config_is_disabled_v5.4' into 'release/v5.4'
Fix build failure when CONFIG_MBEDTLS_SHA1_C is disabled (v5.4)

See merge request espressif/esp-idf!38815
2025-04-30 12:06:16 +08:00
Island
3e39358976 Merge branch 'bugfix/fix_cble50y25_207_v5.4' into 'release/v5.4'
Fixed MIC error disconnection when pairing with iOS devices on ESP32-C3 and ESP32-S3(edf923e) (v5.4)

See merge request espressif/esp-idf!38764
2025-04-30 11:16:53 +08:00
Marius Vikhammer
7781b4ac2b Merge branch 'fix/multi_core_race_cond_in_panic_handler_v5.4' into 'release/v5.4'
fix(panic_handler): Prevent race condition in panic handler (v5.4)

See merge request espressif/esp-idf!38664
2025-04-30 11:02:07 +08:00
armando
0255950b63 fix(bootloader): fixed image cannot exceed 16MB issue
flash 32-bit-addr is an experimental feature that has multiple
dependencies, e.g. flash chip vendor, etc.

If CONFIG_BOOTLOADER_CACHE_32BIT_ADDR_QUAD_FLASH can be enabled
successfully and tests are passed, we can allow images to be
placed on higher-than-16MB flash addresses
2025-04-30 10:33:10 +08:00
Rahul Tank
fec3a5f5bd fix(nimble): Corrected structure field name usage in examples 2025-04-29 21:44:57 +05:30
Adam Múdry
5929a8eacc feat: Add NVS generator check test for CRC of non-ASCII strings 2025-04-29 16:47:24 +02:00
yinqingzhao
c10d0fd84a fix(wifi): fix not update country in beacon 2025-04-29 21:44:38 +08:00
C.S.M
94cbc9bbac fix(i2c): Fix that fsm reset cause i2c scl frequency changed on esp32s2 2025-04-29 16:58:36 +08:00
C.S.M
30f60557ec fix(i2c): Fix some i2c coverity issue 2025-04-29 16:20:27 +08:00
C.S.M
d41636cfad fix(i2c): I2C should not clear bus in a nack state 2025-04-29 16:20:27 +08:00
Jonathan Swoboda
7079f03fb6 fix(i2c): Fix clear bus issue in legacy i2c driver,
Closes https://github.com/espressif/esp-idf/pull/15638
2025-04-29 16:20:27 +08:00
Rahul Tank
ddac3bfa71 fix(nimble): Add API to parse adv report for given type 2025-04-29 12:25:24 +05:30
Tan Yan Quan
cac14a0a61 feat(openthread): enable parent search function for MTD 2025-04-29 14:37:07 +08:00
morris
678ac6a83a Merge branch 'bugfix/remove_invalid_link_in_parlio_rx_example_v5.4' into 'release/v5.4'
fix(parlio_rx): remove invalid link in example readme (v5.4)

See merge request espressif/esp-idf!38750
2025-04-29 14:23:57 +08:00
Xu Si Yu
352ea8d02c feat(openthread): add a callback to handle rcp reset failure 2025-04-29 14:23:35 +08:00
Xu Si Yu
f1ae86f830 feat(openthread): dns server of border router bind unspecified netif 2025-04-29 14:23:34 +08:00
Xu Si Yu
0804c77a51 fix(openthread): use esp_netif_tcpip_exec when sending a trel message 2025-04-29 14:23:34 +08:00
Xu Si Yu
e134817623 feat(openthread): add a function to ensure monotonically increasing frame counter 2025-04-29 14:12:50 +08:00
Jiang Jiang Jian
ed9d55a0cb Merge branch 'refactor/sae_pt_flag_v5.4' into 'release/v5.4'
refactor(wifi): Optimize wifi bin size for station mode (Backport v5.4)

See merge request espressif/esp-idf!38306
2025-04-29 13:47:41 +08:00
laokaiyao
5750b0cc8f ci(esp32c5): disable c5 target tests on v5.4 2025-04-29 13:44:47 +08:00
laokaiyao
26a7397b35 fix(parlio_rx): remove invalid link in example readme 2025-04-29 13:44:47 +08:00
Kapil Gupta
ad4f3277db fix(esp_wifi): Use supplicant's internal SHA1 if not available from IDF 2025-04-29 11:10:56 +05:30
harshal.patil
05353d8d8f fix(mbedtls): Fix config dependencies when ROM mbedtls is used 2025-04-29 10:53:06 +05:30
harshal.patil
1f0aa66f4e fix(wpa_supplicant): Disable fastpbkdf2 when s/w and h/w SHA1 is disabled 2025-04-29 10:53:06 +05:30
harshal.patil
37dba24869 fix(esp-tls): Fix build failure when CONFIG_MBEDTLS_SHA1_C is disabled 2025-04-29 10:53:06 +05:30
Marius Vikhammer
ad821b3367 test(app_format): fixed buffer overflow in esp_app_format test 2025-04-29 11:59:36 +08:00
Marius Vikhammer
cb29838788 test(heap): fixed align_alloc issues in host test 2025-04-29 11:59:36 +08:00
Marius Vikhammer
b1d1494290 ci(linux): re-enable failures for test_pytest_linux jobs 2025-04-29 11:59:36 +08:00
Marius Vikhammer
204017af9f test(log): fixed buffer overflow in log host test fixture 2025-04-29 11:59:36 +08:00
Alexey Gerenkov
986a52a52f Merge branch 'feature/update-openocd-to-v0.12.0-esp32-20250422_v5.4' into 'release/v5.4'
feat(tools): update openocd version to v0.12.0-esp32-20250422 (v5.4)

See merge request espressif/esp-idf!38799
2025-04-28 23:33:31 +08:00
Sudeep Mohanty
8423f5fc46 test(newlib): Added unit tests for usleep and sleep_for functions
This commit adds unit tests to verify the basic functionality of
usleep() and this_thread::sleep_for() std functions.
2025-04-28 17:07:52 +02:00
Stephen Noonan
ac386c7416 fix(newlib): usleep returning early
This commit updates usleep() to always sleep for the required sleep
period or more. This fixes a bug where the usleep() could sleep for less
than the request sleep period.

Closes https://github.com/espressif/esp-idf/pull/15132
2025-04-28 17:07:17 +02:00
Rahul Tank
837eecabca Merge branch 'bugfix/blufi_add_missing_adv_stop_v5.4' into 'release/v5.4'
fix(nimble): Added code for missing adv stop in blufi (v5.4)

See merge request espressif/esp-idf!38718
2025-04-28 19:19:18 +08:00
Sajia
36940f8c0e refactor(wifi): Optimize wifi bin size for station mode 2025-04-28 14:28:01 +05:30
Marius Vikhammer
204907a927 Merge branch 'feat/heap-update-to-latest-tlsf_v5.4' into 'release/v5.4'
feat(heap): Update to latest TLSF (v5.4)

See merge request espressif/esp-idf!38711
2025-04-28 15:58:25 +08:00
chenjianhua
96bde12558 fix(bt): Update bt lib for ESP32-C3 and ESP32-S3(edf923e)
- Fixed ble lib linkage issue
2025-04-28 14:10:14 +08:00
Chen Jian Hua
07233ed2d3 fix(bt): Update bt lib for ESP32-C3 and ESP32-S3(edf923e)
- Fixed MIC error disconnection when pairing with iOS devices


(cherry picked from commit 0df0b53b0a)

Co-authored-by: chenjianhua <chenjianhua@espressif.com>
2025-04-28 14:09:56 +08:00
Jiang Jiang Jian
d0068c4203 Merge branch 'bugfix/fix_some_wifi_bugs_0427_v5.4' into 'release/v5.4'
fix(phy): fix phy data partition restoring default fails issue(Backport v5.4)

See merge request espressif/esp-idf!38770
2025-04-28 10:50:28 +08:00
Wang Meng Yang
e912a4f6ba Merge branch 'bugfix/l2cap_no_report_stop_server_evt_v5.4' into 'release/v5.4'
fix(bt): Fixed l2cap not reporting stop server completion event(v5.4)

See merge request espressif/esp-idf!38698
2025-04-28 08:19:43 +08:00
Adam Múdry
f7054acf46 feat(fatfs/diskio): Remove const from PARTITION VolToPart
Closes https://github.com/espressif/esp-idf/issues/14148
2025-04-28 01:21:48 +02:00
Jiang Jiang Jian
475301889e Merge branch 'fix/fix_usj_pad_retention_v5.4' into 'release/v5.4'
fix(esp_hw_support): fix usj pad config bad retention (v5.4)

See merge request espressif/esp-idf!38746
2025-04-27 19:32:13 +08:00
Rahul Tank
012b9c7031 Merge branch 'bugfix/ios_hid_failure_v5.4' into 'release/v5.4'
fix(nimble): Update hid device example in nimble to work with iOS (v5.4)

See merge request espressif/esp-idf!38676
2025-04-27 18:36:25 +08:00
muhaidong
592e747c78 fix(wifi): fix some wifi bugs 250427
1. fix ersu compatibility issue
2. fix association timeout timer issue for wep shared auth
2025-04-27 15:18:21 +08:00
muhaidong
57fd0fe836 fix(phy): fix phy data partition restoring default fails issue
Closes https://github.com/espressif/esp-idf/issues/14698
2025-04-27 14:58:24 +08:00
Island
b9123d5554 Merge branch 'feat/add_sync_cte_type_in_pa_sync_v5.4' into 'release/v5.4'
Feat/add sync cte type in pa sync (v5.4)

See merge request espressif/esp-idf!38592
2025-04-27 14:11:35 +08:00
Island
fcd5c75e3a Merge branch 'feat/spi_ble_log_improvement_v5.4' into 'release/v5.4'
feat(ble): Improved SPI BLE Log functionality (v5.4)

See merge request espressif/esp-idf!38741
2025-04-27 14:04:32 +08:00
Island
0bfda8cfda Merge branch 'feat/optimize_cble50y24_109_v5.4' into 'release/v5.4'
feat(bt/bluedroid): Added throughput mode for BLE SPP example (v5.4)

See merge request espressif/esp-idf!38693
2025-04-27 10:15:05 +08:00
Alexey Gerenkov
abd28fb2be feat(tools): update openocd version to v0.12.0-esp32-20250422 2025-04-26 12:40:11 +02:00
Jiang Jiang Jian
5295bc39e5 Merge branch 'fix/update_os_time_struct_v5.4' into 'release/v5.4'
Modifying os_time_t datatype for platform and compiler independence

See merge request espressif/esp-idf!38736
2025-04-25 18:28:16 +08:00
Fu Hanxi
bed18219c6 ci: rename local idf_ci folder, avoid name collision 2025-04-25 11:26:15 +02:00
wuzhenghui
33aca83c63 change(ci): remove esp32c5 from readme since esp32c5 skipped CI build 2025-04-25 17:13:27 +08:00
wuzhenghui
dbd4934205 fix(esp_hw_support): specify optimize options to avoid dirtying L2 mem after L1D$ writeback 2025-04-25 17:13:27 +08:00
wuzhenghui
8cfe912053 fix(esp_hw_support): fix wrong APB clock freq on retenion 2025-04-25 17:13:26 +08:00
wuzhenghui
192ffcb894 feat(esp_hw_support): count pau backup time into sleep rejection judgment 2025-04-25 17:13:26 +08:00
wuzhenghui
41e6e25e2d feat(esp_hw_support): remeasure sleep_time_overhead_out if min_freq_mhz changed 2025-04-25 17:13:26 +08:00
wuzhenghui
81860c55d6 feat(esp_hw_support): use non-lock regi2c fast-up cpll/mpll enable process after sleep wakeup 2025-04-25 17:13:22 +08:00
wuzhenghui
c29cd7333b fix(esp_hw_support): fix usj pad config bad retention
Closes https://github.com/espressif/esp-idf/issues/15797
2025-04-25 15:52:10 +08:00
wuzhenghui
41dd6ef81a feat(esp_hw_support): optimize esp32p4 GPIO retention link 2025-04-25 15:26:05 +08:00
wuzhenghui
d9fdab14d0 fix(esp_hw_support): iomux slp_sel is not avaliable to isolate mspi pin leakage on esp32p4 2025-04-25 15:26:02 +08:00
Sudeep Mohanty
f56cf54183 fix(panic_handler): Prevent race condition in panic handler
This commit updates all RTC WDT contexts to be local instead of global
to avoid race conditions when both cores enter the panic handler
simultaneously.
2025-04-25 09:10:58 +02:00
Zhou Xiao
1771685866 feat(ble): Improved SPI BLE Log functionality
* Added checksum for every frame
* Added SPI slave transaction interval workaround
* Added SPI tx done isr issue workaround
* Turned buffer flush to a menuconfig and disabled by default
* Modified packet loss write operation and trigger condition
* Optimized buffer append efficiency for controller ISR


(cherry picked from commit 243705c143)

Co-authored-by: Zhou Xiao <zhouxiao@espressif.com>
2025-04-25 14:53:46 +08:00
tarun.kumar
96e06bd2ca fix(esp_wifi): Modifying os_time_t datatype for platform and compiler independence 2025-04-25 11:21:31 +05:30
Rahul Tank
f3b3c4362c fix(nimble): Update hid device example in nimble to work with iOS 2025-04-25 10:43:09 +05:30
Wang Meng Yang
a15c978f08 Merge branch 'feat/add_api_get_avrc_status_v5.4' into 'release/v5.4'
feat(bt): Add API to get some information of Classic Bluetooth profile(v5.4)

See merge request espressif/esp-idf!38685
2025-04-25 12:05:15 +08:00
xiongweichao
be9713fe10 fix(bt): Fixed l2cap not reporting stop server completion event 2025-04-25 11:39:51 +08:00
morris
705592c719 Merge branch 'test/parlio_rx_cache_safe_v5.4' into 'release/v5.4'
Reenable parlio rx cache safe test (v5.4)

See merge request espressif/esp-idf!38683
2025-04-25 10:09:56 +08:00
Martin Vychodil
1c29e55deb Merge branch 'fix/nvs_logger_json_output_v5.4' into 'release/v5.4'
fix(nvs_flash/nvs_tool): Fix nvs_tool.py to output required values (v5.4)

See merge request espressif/esp-idf!38681
2025-04-25 00:46:40 +08:00
Jiang Jiang Jian
b4bbfe16c1 Merge branch 'fix/fix_dhcp_server_recv_decline_issue_v54' into 'release/v5.4'
fix(dhcp): fix dhcp server recv decline issue v54

See merge request espressif/esp-idf!38507
2025-04-24 19:52:13 +08:00
Jiang Jiang Jian
97af977d0b Merge branch 'bugfix/fix_some_wifi_bugs_0421_v5.4' into 'release/v5.4'
fix(wifi): fix some wifi bugs 0421 (v5.4)

See merge request espressif/esp-idf!38594
2025-04-24 19:46:22 +08:00
Rahul Tank
cb29590a70 fix(nimble): Added code for missing adv stop in blufi 2025-04-24 14:17:39 +05:30
Guillaume Souchere
826f8a5f53 feat(heap): Update to latest TLSF
- this new version of TLSF uses uintptr_t instead of unsigned int
  casting in tlsf_malloc_addr to allow proper use of the function
  on 64bit targets.
2025-04-24 10:39:41 +02:00
morris
0e584aa200 Merge branch 'bugfix/fix_esp32_touch_example_task_watchdog_issue_v5.4' into 'release/v5.4'
fix(legacy_touch): fixed touch read WDT issue on esp32 (v5.4)

See merge request espressif/esp-idf!38581
2025-04-24 16:37:19 +08:00
Aditya Patwardhan
7dfccfb5d0 Merge branch 'bugfix/crypto_reset_on_exit_v5.4' into 'release/v5.4'
fix(esp_system): reset crypto peripherals before device restart (v5.4)

See merge request espressif/esp-idf!38475
2025-04-24 15:27:57 +08:00
Marius Vikhammer
63d0aa7ecb Merge branch 'fix/dram_dma_aligned_attr_for_p4_v5.4' into 'release/v5.4'
fix(esp_common): Fix DRAM_DMA_ALIGNED_ATTR for ESP32-P4 (v5.4)

See merge request espressif/esp-idf!38643
2025-04-24 14:43:53 +08:00
Marius Vikhammer
ef797e0239 Merge branch 'fix/freertos_tickless_idle_tick_jump_v5.4' into 'release/v5.4'
fix(freertos): Fixed tickless idle tick count accounting (v5.4)

See merge request espressif/esp-idf!38510
2025-04-24 13:35:50 +08:00
morris
8770ad5fcc Merge branch 'fix/fix_p4_adc_reread_oneshot_error' into 'release/v5.4'
fix(ADC): fix P4 ADC oneshot error when reread  (v5.4)

See merge request espressif/esp-idf!38634
2025-04-24 13:13:26 +08:00
zwl
edaea6dc23 feat(ble): add configuration command during RF testing 2025-04-24 12:08:47 +08:00
zhangbowen
c9a7aea7d2 feat(bt/bluedroid): Added throughput mode for BLE SPP example 2025-04-24 12:08:01 +08:00
Shu Chen
70e0e18576 Merge branch 'fix/meshcop_udp_port_v5.4' into 'release/v5.4'
fix(openthread/meshcop): get right udp port for publishing meshcop-e (v5.4)

See merge request espressif/esp-idf!38659
2025-04-24 11:04:55 +08:00
Shu Chen
c0146964d2 Merge branch 'fix/ieee802154_tx_ack_timeout_crash_v5.4' into 'release/v5.4'
fix(802.15.4): fix 15.4 process for unsupported frame (v5.4)

See merge request espressif/esp-idf!38669
2025-04-24 10:58:44 +08:00
morris
50e1d46980 fix(parlio): reenable parlio rx driver cache safe test 2025-04-24 10:41:08 +08:00
morris
bd396ad476 fix(spi): allocate driver memory with caps explicitly 2025-04-24 10:41:08 +08:00
Island
e6885983fa Merge branch 'feat/support_136k_rc_clk_on_ble_sleep_v5.4' into 'release/v5.4'
Feat/support 136k rc clk on ble sleep (v5.4)

See merge request espressif/esp-idf!38621
2025-04-24 10:37:55 +08:00
xiongweichao
b59e8634f2 feat(bt): Add API to get some information of Classic Bluetooth profile 2025-04-24 10:34:07 +08:00
morris
7e11597089 Merge branch 'bugfix/fix_i2s_assign_and_check_sequence_v5.4' into 'release/v5.4'
fix(i2s): fixed i2s inappropriate check and assign sequence (v5.4)

See merge request espressif/esp-idf!38605
2025-04-24 10:32:48 +08:00
Jiang Jiang Jian
4854f415e4 Merge branch 'bugfix/fix_bt_access_ext_mem_in_intr_v5.4' into 'release/v5.4'
fix(bt/controller): Fixed access external memory in isr context (v5.4)

See merge request espressif/esp-idf!38572
2025-04-24 10:29:45 +08:00
wangtao@espressif.com
c8e36049b1 fix(dhcp): fix dhcp server recv decline issue 2025-04-24 10:29:26 +08:00
hrushikesh.bhosale
6988a149b4 feat(nvs_tool): Test for print_minimal_json
Added the test for the print_minimal_json function
and setup_minimal_json function to setup the test.
2025-04-23 16:23:18 +02:00
hrushikesh.bhosale
f21a30fee2 fix(nvs_flash/nvs_tool): Fix nvs_tool.py to output required values
nvs_tool.py did not provide the minimal output support which outputs
the only necessary data.

nvs_tool.py minimal text ouptut, the deliminators were not handled
in the output

Closes https://github.com/espressif/esp-idf/issues/15274
2025-04-23 16:23:18 +02:00
Rahul Tank
81c34b09f0 Merge branch 'fix/pawr_docs_v5.4' into 'release/v5.4'
feat(nimble):Added tutorials for PAwR examples (v5.4)

See merge request espressif/esp-idf!38622
2025-04-23 19:44:40 +08:00
Rahul Tank
b5802d7230 Merge branch 'feat/pawr_bugfix_v5.4' into 'release/v5.4'
fix(nimble): Fix sync handle assignment for pawr connection (v5.4)

See merge request espressif/esp-idf!38502
2025-04-23 19:35:28 +08:00
zwx
dcb1e52988 fix(802.15.4): fix 15.4 process for unsupported frame 2025-04-23 19:01:34 +08:00
Island
69173b1864 Merge branch 'bugfix/fix_some_ble_bugs_250331_esp32c3_v5.4' into 'release/v5.4'
Fixed some BLE bugs 250331 on esp32c3 (v5.4)

See merge request espressif/esp-idf!38580
2025-04-23 18:13:52 +08:00
Tan Yan Quan
98363edfaf fix(openthread/meshcop): get right udp port for publishing meshcop-e
* esp-openthread: thread_zigbee/esp-openthread@ad81e1b23
* openthread: espressif/openthread@8c30b93fe
* esp-idf: espressif/esp-idf@a97879b71
2025-04-23 10:10:35 +00:00
Mahavir Jain
5cdc53df23 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-23 17:53:09 +08:00
Marius Vikhammer
a97879b71c Merge branch 'feature/add_core_num_def_for_linux_v5.4' into 'release/v5.4'
feat(soc): Adds core_num definition for Linux target (v5.4)

See merge request espressif/esp-idf!38485
2025-04-23 17:38:08 +08:00
Jiang Jiang Jian
ee317c3d6f Merge branch 'bugfix/sae_send_confirm_v5.4' into 'release/v5.4'
fix(esp_wifi): Fix send_confirm according to specification provided by IEEE 802.11 (v5.4)

See merge request espressif/esp-idf!38434
2025-04-23 16:37:50 +08:00
Roman Leonov
b760531d5b fix(usb_host): Correctly initialize set pipe ep char 2025-04-23 10:09:18 +02:00
Roman Leonov
56daed6169 fix(hcd): Added delay to slow down scatter-gather dma for ls device via fs hubs 2025-04-23 10:09:18 +02:00
Konstantin Kondrashov
5c3910d8ca fix(esp_common): Fix DRAM_DMA_ALIGNED_ATTR for P4 2025-04-23 10:37:00 +03:00
gaoxu
c04ae03729 fix(ADC): fix P4 ADC oneshot error when reread 2025-04-23 11:33:06 +08:00
linruihao
224e9feed9 fix(bt/controller): Fixed access external memory in isr context 2025-04-23 11:25:48 +08:00
Jin Cheng
529a471a55 fix(bt/controller): update libbtdm_app.a
- fixed errors in the coexistance of ACL and SCO
- fixed dynamic priority config error in dual mode
2025-04-23 11:25:48 +08:00
Island
180ee9ef0e Merge branch 'feat/optimize_cble50y24_111_v5.4' into 'release/v5.4'
feat(bt/bluedroid): Added BLE eddystone sender example (v5.4)

See merge request espressif/esp-idf!38158
2025-04-23 10:32:30 +08:00
morris
15da3ccc52 Merge branch 'ci/disable_c5_target_test_on_v5.4' into 'release/v5.4'
ci(esp32c5): disable esp32c5 build and target test on v5.4

See merge request espressif/esp-idf!38587
2025-04-23 09:56:36 +08:00
Abhinav Kudnar
2a86fcd4e5 feat(nimble):Added tutorials for PAwR examples 2025-04-22 19:18:03 +08:00
Jin Chen
b0e1c7b244 feat(ble): support ble sleep using 136 kHz RC on ESP32-H2
(cherry picked from commit 6c8ee69151)

Co-authored-by: cjin <jinchen@espressif.com>
2025-04-22 19:05:50 +08:00
Jin Chen
bc5962499d feat(ble): support ble sleep using 136 kHz RC on ESP32-C6
(cherry picked from commit 718dd7a87a)

Co-authored-by: cjin <jinchen@espressif.com>
2025-04-22 19:05:48 +08:00
Jin Chen
3dc694f167 feat(ble): support ble sleep using 136 kHz RC on ESP32-C5
(cherry picked from commit cb8ea7951c)

Co-authored-by: cjin <jinchen@espressif.com>
2025-04-22 19:05:45 +08:00
Jin Chen
5226629d18 feat(ble): support ble sleep using 136 kHz RC on ESP32-C2
(cherry picked from commit 73f1084bf8)

Co-authored-by: cjin <jinchen@espressif.com>
2025-04-22 19:05:43 +08:00
Sudeep Mohanty
8f2f1abdd5 test(freertos): Added a unit test for tickless idle tick jump scenario
This commit adds a unit test to test that tickless idle mode does not
cause an unexpected jump in tick count after tickless idle mode is
exited.
2025-04-22 16:32:08 +08:00
Sudeep Mohanty
3e18049461 fix(freertos): Fixed tickless idle tick count accounting
This commit fixes an issue where the FreeRTOS kernel does not account
for the pended ticks occuring during automatic light-sleep mode and
hence causing a jump in the tick count at a later stage in the
application lifetime.

Closes: https://github.com/espressif/esp-idf/issues/15642
2025-04-22 16:32:08 +08:00
laokaiyao
ecf073e650 ci: disable esp32c5 build and target test on v5.4 2025-04-22 16:07:50 +08:00
laokaiyao
e5e713892b fix(i2s): add check for the minimum sample rate
Closes https://github.com/espressif/esp-idf/issues/15659
2025-04-22 15:37:47 +08:00
laokaiyao
f22cd54760 fix(i2s): reset the dma buf_size while allocation failed
Closes https://github.com/espressif/esp-idf/issues/15648
2025-04-22 15:19:39 +08:00
Jiang Jiang Jian
bb60389063 Merge branch 'esp32/run_panic_debug_v5.4' into 'release/v5.4'
fix(esp32): Fixed qa program may fail issue when cpu 240m (v5.4)

See merge request espressif/esp-idf!37231
2025-04-22 15:06:11 +08:00
morris
93cff127be Merge branch 'fix/gpio_pull_enable_disable_strategy_v5.4' into 'release/v5.4'
fix(i2c,mcpwm): fix gpio pull strategy (v5.4)

See merge request espressif/esp-idf!38565
2025-04-22 13:33:33 +08:00
Island
26b9ba6b63 Merge branch 'bugfix/fix_some_ble_bugs_2503_v5.4' into 'release/v5.4'
Bugfix/fix some ble bugs 2503 (v5.4)

See merge request espressif/esp-idf!38291
2025-04-22 11:49:13 +08:00
zhangyanjiao
53164297d7 fix(wifi): update the wifi lib for espnow and lr issues 2025-04-22 11:06:58 +08:00
zhangyanjiao
c5a61099c1 fix(docs): update max data length in espnow doc 2025-04-22 11:06:58 +08:00
liuning
5bf37234b8 feat(docs): update connectionless module window syncronization documentation 2025-04-22 11:06:58 +08:00
zhangyanjiao
41fed6aec5 fix(wifi): fix the noise floor error on ESP32C5
Closes https://github.com/espressif/esp-idf/issues/15594
2025-04-22 11:06:58 +08:00
zhangyanjiao
56257439a2 fix(wifi/vendor): separate the lr bit in phy mode for station and softAP
Closes https://github.com/espressif/esp-idf/issues/9978
2025-04-22 11:06:58 +08:00
zhangyanjiao
133d40d6d1 fix(wifi): Fixed the scan information error in LR only mode 2025-04-22 11:06:58 +08:00
zhangyanjiao
ab71248476 fix(wifi): Fixed the max log level not work when it exceeds the default log level 2025-04-22 11:06:58 +08:00
zhangyanjiao
8bee78e5ea docs(wifi): update the description for esp_mesh_send() return value
Closes https://github.com/espressif/esp-idf/issues/14440
2025-04-22 11:06:58 +08:00
zhangyanjiao
c9cc85b68c fix(wifi): fix the ESPNOW data length issue and connection issue
1. Changed the max data length to 1470 bytes for ESP-NOW v2.0
2. Added timer to send wake null after STA received assoc response
2025-04-22 11:06:58 +08:00
zhangyanjiao
e9d8241b53 fix(wifi): Update the doc for espnow add peer 2025-04-22 11:06:58 +08:00
zhangyanjiao
1a7ed6c1df fix(wifi): fixed the espnow data length error in example 2025-04-22 11:06:58 +08:00
chaijie@espressif.com
bb8a86856a fix(esp32): Fixed qa program may fail issue when cpu 240m (v5.4) 2025-04-22 10:24:27 +08:00
Chen Jian Hua
cc336b0d88 fix(bt): Update bt lib for ESP32-C3 and ESP32-S3(a684dd5)
- Fixed clear legacy adv error when adv not exist
- Disable anonymous extended adv reporting
- Fixed BLE assert lld_adv.c 2992
- Fixed heap assert due to adv data buffer double freeing
- Fixed BLE 0x08 disconnect when the win size is greater than half of the conn interval


(cherry picked from commit 4602665e5d)

Co-authored-by: chenjianhua <chenjianhua@espressif.com>
2025-04-22 09:58:34 +08:00
laokaiyao
8e6a7845b7 fix(touch): fixed tie option take no effect 2025-04-21 20:45:50 +08:00
Jiang Jiang Jian
be719bfe2d Merge branch 'bugfix/pmkid_password_mismatch_regression_v5.4' into 'release/v5.4'
fix(wifi): Avoid writing to NVS if station configuration is not changed (Backport v5.4)

See merge request espressif/esp-idf!38486
2025-04-21 17:41:38 +08:00
Zhi Wei Jian
6098df35ec feat(ble/bluedroid): Add sync_cte_type in creat_periodic_adv_sync function
(cherry picked from commit eb647d10c6)

Co-authored-by: zhiweijian <zhiweijian@espressif.com>
2025-04-21 17:03:36 +08:00
Zhi Wei Jian
a30d47b6fe fix(ble/bluedroid): Fixed BLE_FEAT_CREATE_SYNC_ENH define error in bluedroid host
(cherry picked from commit cf6135c990)

Co-authored-by: zhiweijian <zhiweijian@espressif.com>
2025-04-21 17:03:33 +08:00
Roland Dobai
17e79ef8b6 Merge branch 'bugfix/linux_cert_bundle_build_warn_v5.4' into 'release/v5.4'
fix(tools): suppress GNU bin-utils warning about executable stack (v5.4)

See merge request espressif/esp-idf!38345
2025-04-21 16:45:44 +08:00
Marius Vikhammer
7256deafc9 Merge branch 'fix/lp_wakeup_cause_bits_accumulation_v5.4' into 'release/v5.4'
fix(ulp): Fix accumulation of wakeup cause bits in ULP (v5.4)

See merge request espressif/esp-idf!38561
2025-04-21 16:42:47 +08:00
laokaiyao
f1903f095a fix(legacy_touch): fixed the concurrent issue in esp32 touch driver 2025-04-21 14:57:29 +08:00
laokaiyao
a9f8ed3bbf fix(touch): fixed touch read WDT issue on esp32
Closes https://github.com/espressif/esp-idf/issues/15629
2025-04-21 14:47:26 +08:00
Island
2038923cc4 Merge branch 'fix/blemesh25-92_v5.4' into 'release/v5.4'
fix(ble_mesh): fixed issues with decrypt failed when resending messages (v5.4)

See merge request espressif/esp-idf!38560
2025-04-21 14:22:04 +08:00
Tan Yan Quan
781123eb08 fix(openthread): check state for ot wake 2025-04-21 10:45:44 +08:00
Tan Yan Quan
72c4063d1a fix(openthread): relax CSL accuracy default value 2025-04-21 10:45:44 +08:00
Island
3ad36321ea Merge branch 'change/ble_update_lib_20250417_v5.4' into 'release/v5.4'
change(ble): [AUTO_MR] 20250417 - Update ESP BLE Controller Lib (v5.4)

See merge request espressif/esp-idf!38545
2025-04-21 10:40:38 +08:00
Chen Jichang
cbc6382b26 fix(i2c,mcpwm): fix gpio pull strategy
Closes https://github.com/espressif/esp-idf/issues/15774
2025-04-21 10:35:52 +08:00
Sarvesh Bodakhe
c74773c091 fix(wifi): Avoid writing to NVS if station configuration is not changed
Fixes the regression introduced by f8b1c0976a

Co-authored-by: yinqingzhao <yinqingzhao@espressif.com>
2025-04-19 17:33:39 +05:30
Konstantin Kondrashov
93750520fe fix(ulp): Fix accumulation of wakeup cause bits in ULP
Closes https://github.com/espressif/esp-idf/issues/15794
2025-04-18 15:52:28 +03:00
Luo Xu
5c65747537 fix(ble_mesh): fixed issues with decrypt failed when resending messages
(cherry picked from commit 4803cea3cc)

Co-authored-by: luoxu <luoxu@espressif.com>
2025-04-18 20:23:49 +08:00
Shen Weilong
de00b516b8 change(ble): [AUTO_MR] Update lib_esp32c5 to cd6ba0ec 2025-04-18 19:59:48 +08:00
Alexey Gerenkov
438b6cf3e6 Merge branch 'disable_apptrace_test_on_c5_v5.4' into 'release/v5.4'
ci(change): disable esp32c5 apptrace test (v5.4)

See merge request espressif/esp-idf!38528
2025-04-18 15:29:30 +08:00
Shen Wei Long
ca02c5ec24 change(ble): [AUTO_MR] Update lib_esp32c6 to cd6ba0ec
(cherry picked from commit a89916eef4)

Co-authored-by: Shen Weilong <shenweilong@espressif.com>
2025-04-18 14:10:14 +08:00
Shen Wei Long
5c3edd7a74 change(ble): [AUTO_MR] Update lib_esp32h2 to cd6ba0ec
(cherry picked from commit d48cc9ce2a)

Co-authored-by: Shen Weilong <shenweilong@espressif.com>
2025-04-18 14:10:12 +08:00
morris
af3fa8731f Merge branch 'refactor/gdma_set_iram_safe_in_runtime_v5.4' into 'release/v5.4'
refactor(gdma): use run-time iram-safe config (v5.4)

See merge request espressif/esp-idf!38459
2025-04-18 13:26:42 +08:00
Island
017480b377 Merge branch 'change/ble_update_lib_20250414_v5.4' into 'release/v5.4'
change(ble): [AUTO_MR] 20250414 - Update ESP BLE Controller Lib (v5.4)

See merge request espressif/esp-idf!38494
2025-04-18 11:07:01 +08:00
Erhan Kurubas
80ec596e1e ci(change): disable esp32c5 apptrace test 2025-04-17 18:57:10 +02:00
Jiang Jiang Jian
274925fa8a Merge branch 'bugfix/pmf_enabled_sae_query_v5.4' into 'release/v5.4'
fix(wifi): SA Query responses not transmitted (Backport v5.4)

See merge request espressif/esp-idf!38245
2025-04-17 22:44:28 +08:00
Jiang Jiang Jian
dbfa8ba5b2 Merge branch 'fix/fix_uart_console_broken_after_sleep_v5.4' into 'release/v5.4'
fix(esp_hw_support): fixed gpio sleep switching filling junk data to the console UART FIFO (v5.4)

See merge request espressif/esp-idf!38444
2025-04-17 17:14:33 +08:00
Jiang Jiang Jian
79d965f16a Merge branch 'change/allow_keep_sar_poweron_in_light_sleep_v5.4' into 'release/v5.4'
change(esp_hw_support): allow sar power keep on during lightsleep (v5.4)

See merge request espressif/esp-idf!38454
2025-04-17 17:14:11 +08:00
Jiang Jiang Jian
9f8548bb2d Merge branch 'feat/enable_esp32p4_auto_clock_gate_v5.4' into 'release/v5.4'
feat(esp_hw_support): enable auto clock gating for multi peripherals (v5.4)

See merge request espressif/esp-idf!38443
2025-04-17 17:13:40 +08:00
Jiang Jiang Jian
9c9d5cc1a2 Merge branch 'fix/esp32p4_xtal_path_not_on_top_v5.4' into 'release/v5.4'
fix(esp_hw_support): fix esp32p4 xtal_xpd depends on TOP power domain (v5.4)

See merge request espressif/esp-idf!38452
2025-04-17 17:03:47 +08:00
morris
0be344409b Merge branch 'fix/fix_mmu_map_concurrent_issue_v5.4' into 'release/v5.4'
mmu: fix mmu map concurrent issue (v5.4)

See merge request espressif/esp-idf!38411
2025-04-17 15:59:06 +08:00
Wang Meng Yang
4ad27c76c6 Merge branch 'feat/add_l2cap_register_event_v5.4' into 'release/v5.4'
feat(bt): Added events for l2cap register and unregister vfs(v5.4)

See merge request espressif/esp-idf!38421
2025-04-17 14:40:32 +08:00
Abhinav Kudnar
5a6072d035 fix(nimble): Fix sync handle assignment for pawr connection 2025-04-17 14:06:58 +08:00
Jiang Jiang Jian
65e0d49246 Merge branch 'fix/fix_current_leakage_after_ext_osc_detect_failed_v5.4' into 'release/v5.4'
fix(esp_hw_support): fix current leakage if ext32k slow clock source not exists (v5.4)

See merge request espressif/esp-idf!38439
2025-04-17 11:04:57 +08:00
Zhou Xiao
9ef1c15bba fix(ble): remove null pointer assert in npl event deinit
(cherry picked from commit ece108c0bf)

Co-authored-by: Zhou Xiao <zhouxiao@espressif.com>
2025-04-17 10:54:56 +08:00
Zhou Xiao
75343d25d0 change(ble): bugs fixed on spi ble log
* removed spi master in iram select for flash only firmware
* fixed memory issue in transaction init function
* fixed memory issue in transaction deinit function


(cherry picked from commit 7c3b9fa56f)

Co-authored-by: Zhou Xiao <zhouxiao@espressif.com>
2025-04-17 10:54:54 +08:00
Zhou Xiao
46b786d79a feat(ble): support configurable rxbuf opt feat on ESP32-C6
(cherry picked from commit 5fbbec8655)

Co-authored-by: cjin <jinchen@espressif.com>
2025-04-17 10:54:52 +08:00
Zhou Xiao
e90390a90a feat(ble): support configurable rxbuf opt feat on ESP32-H2
(cherry picked from commit 4937d3c883)

Co-authored-by: cjin <jinchen@espressif.com>
2025-04-17 10:54:49 +08:00
Zhou Xiao
0cc6e2bb36 feat(ble): use new section for ble sleep on ESP32-C2
(cherry picked from commit ce4e012c8b)

Co-authored-by: cjin <jinchen@espressif.com>
2025-04-17 10:54:47 +08:00
Zhou Xiao
ebef86f435 change(ble): [AUTO_MR] Update lib_esp32c2 to fca2b9ea
(cherry picked from commit 09467baed0)

Co-authored-by: Zhou Xiao <zhouxiao@espressif.com>
2025-04-17 10:54:45 +08:00
Zhou Xiao
6836bd9870 change(ble): [AUTO_MR] Update lib_esp32c6 to 76549818
(cherry picked from commit e2d1a5509e)

Co-authored-by: Zhou Xiao <zhouxiao@espressif.com>
2025-04-17 10:54:43 +08:00
Zhou Xiao
eecf74a7c9 change(ble): [AUTO_MR] Update lib_esp32h2 to 76549818
(cherry picked from commit c11bb1ddd0)

Co-authored-by: Zhou Xiao <zhouxiao@espressif.com>
2025-04-17 10:54:41 +08:00
akshat
cd3a072c0f fix(wifi): Fix occasional dropping of SA Query responses by SoftAP 2025-04-16 22:24:28 +05:30
Konstantin Kondrashov
295535985c feat(soc): Adds core_num definition for Linux target
Closes https://github.com/espressif/esp-idf/issues/15758
2025-04-16 18:32:18 +03:00
Jiang Jiang Jian
395295cc35 Merge branch 'feat/add_svc_info_in_sdf_v5.4' into 'release/v5.4'
Add extended SSI support for NAN Services (Backport v5.4)

See merge request espressif/esp-idf!38302
2025-04-16 20:02:44 +08:00
morris
2c376ff99f refactor(drivers): refactor the iram-safe option of the gdma peripherals
Closes https://github.com/espressif/esp-idf/issues/15771
2025-04-16 17:09:04 +08:00
morris
7bcb7248bb feat(gdma): support allocate cache safe ISR for channels separately 2025-04-16 16:44:41 +08:00
wuzhenghui
e22c4a146d change(esp_hw_support): allow sar power keep on during lightsleep
Closes https://github.com/espressif/esp-idf/issues/12426
2025-04-16 15:51:48 +08:00
Mahavir Jain
7ddb2ba0a0 Merge branch 'feat/update_mbedtls_3.6.3_v5.4' into 'release/v5.4'
feat(component/mbedtls): update to upstream v3.6.3 (v5.4)

See merge request espressif/esp-idf!38178
2025-04-16 15:49:09 +08:00
wuzhenghui
d2755374e0 fix(esp_hw_support): fix esp32p4 xtal_xpd depends on TOP power domain 2025-04-16 15:37:11 +08:00
wuzhenghui
76d021ad11 fix(esp_hw_support): fixed gpio sleep switching filling junk data to the console UART FIFO 2025-04-16 15:23:27 +08:00
wuzhenghui
7643f77225 feat(esp_hw_support): enable auto clock gating for multi peripherals 2025-04-16 15:08:51 +08:00
wuzhenghui
ba88b91e28 fix(esp_hw_support): fix unused OSC source deinit breaks XTAL32K configuration 2025-04-16 14:56:49 +08:00
wuzhenghui
54c4606111 fix(esp_hw_support): fix current leakage if ext32k slow clock source not exists 2025-04-16 14:56:12 +08:00
Shreyas Sheth
8221f0b01b ci(wifi): Add build test for with wpa3 disabled for station and softap 2025-04-16 11:56:20 +05:30
Shreyas Sheth
8b979114e0 fix(esp_wifi): Fix send_confirm according to specification provided by IEEE 802.11 2025-04-16 11:56:20 +05:30
Shu Chen
a7cc6804df Merge branch 'feature/add_ot_cli_ci_case_v5.4' into 'release/v5.4'
feat(openthread): add openthread ci ssed case v5.4

See merge request espressif/esp-idf!38256
2025-04-16 10:15:13 +08:00
morris
b8bb557085 Merge branch 'feat/allow_rmt_tx_channel_to_switch_other_gpios_v5.4' into 'release/v5.4'
feat(rmt_tx): allow to switch gpio in tx channal (v5.4)

See merge request espressif/esp-idf!38394
2025-04-16 10:12:07 +08:00
Ashish Sharma
605206b69f feat(mbedtls): new config to allow weak cert verification 2025-04-16 09:50:24 +08:00
Ashish Sharma
7578913742 feat(mbedtls): update to version 3.6.3 2025-04-16 09:50:24 +08:00
Mahavir Jain
87947712af fix(tools): suppress GNU bin-utils warning about executable stack
Newer GNU bin-utils version 2.39 has started emitting a warning
about an executable stack region for Linux target build:

/usr/bin/ld: warning: x509_crt_bundle.S.o: missing .note.GNU-stack section implies executable stack

Fix the issue by adding appropriate "noexecute" attribute for stack
section.
2025-04-15 21:55:30 +08:00
xiongweichao
93bd316b3a fix(bt): fixed spp not reporting write event 2025-04-15 19:03:02 +08:00
xiongweichao
63ca09cacd fix(bt): Fixed the issue with l2cap not using dynamic memory 2025-04-15 19:02:33 +08:00
xiongweichao
ebce1de0fc fix(bt): Fixed write_read task stack overflow in l2cap example 2025-04-15 19:02:28 +08:00
xiongweichao
3d2faed4c6 feat(bt): Added events for l2cap register and unregister vfs 2025-04-15 19:02:22 +08:00
armando
873cde487c test(system): increased 200B memory leak thresh due to mmu mmap mutex
200B to extend the thresh, real increase to the memory usage will be smaller
2025-04-15 14:22:48 +08:00
armando
256dbafe15 test(mmu): added esp_mmu_map concurrency test 2025-04-15 14:21:51 +08:00
armando
56cd01899c fix(mmu): fixed esp_mmu_map concurrent issue and add related docs 2025-04-15 14:21:46 +08:00
morris
ef1a5075f5 Merge branch 'refactor/ana_cmpr_driver_v5.4' into 'release/v5.4'
refactor(ana_cmpr): enhanced the driver implementation (v5.4)

See merge request espressif/esp-idf!38388
2025-04-15 13:15:23 +08:00
Marius Vikhammer
6b617c54c2 Merge branch 'bugfix/p4_lpwdt_efuse_v5.4' into 'release/v5.4'
fix(lpwdt): P4 LP-WDT now takes into account the EFUSE_WDT_DELAY for the timeout (v5.4)

See merge request espressif/esp-idf!38392
2025-04-15 12:28:38 +08:00
Wang Meng Yang
26e415dcb4 Merge branch 'feature/add_profile_stat_v5.4' into 'release/v5.4'
feat(bt): Add API to get profile status(v5.4)

See merge request espressif/esp-idf!38274
2025-04-15 08:13:24 +08:00
Chen Jichang
7be85fd8ba feat(rmt_tx): allow to switch gpio in tx channal 2025-04-14 18:38:45 +08:00
morris
d20d3c7a60 fix(ana_cmpr): ETM event not work for Unit 1 2025-04-14 17:13:48 +08:00
Island
8e473c6bed Merge branch 'bugfix/fix_ble_controller_only_error_if_hci_uart_enabled_v5.4' into 'release/v5.4'
fix(ble/controller): Fixed controller flash only bug if hci-uart is enabled (v5.4)

See merge request espressif/esp-idf!38148
2025-04-14 17:12:53 +08:00
morris
9d3b69fabb Merge branch 'doc/touch_element_support_esp32s3_v5.4' into 'release/v5.4'
docs(touch): build the touch element doc for esp32s3 (v5.4)

See merge request espressif/esp-idf!38390
2025-04-14 16:48:01 +08:00
Tan Yan Quan
86db777bd2 feat(openthread): add esp_system dependency for SSED CI 2025-04-14 16:37:52 +08:00
Tan Yan Quan
94af9e2a54 feat(openthread): relax conditions for trel case approval 2025-04-14 16:37:47 +08:00
Tan Yan Quan
400d7efaed feat(openthread): add openthread ci ssed case 2025-04-14 16:37:40 +08:00
Tan Yan Quan
c66fe0a72c feat(openthread): use freertos timer for debug logs 2025-04-14 16:37:35 +08:00
xiongweichao
ecf646cefc feat(bt): Add API to get profile status 2025-04-14 15:43:22 +08:00
Marius Vikhammer
8e1f47ef04 fix(lpwdt): P4 LP-WDT now takes into account the EFUSE_WDT_DELAY forthe timeout 2025-04-14 14:52:15 +08:00
morris
794f5b04a9 docs(touch): build the touch element doc for esp32s3
Closes https://github.com/espressif/esp-idf/issues/15755
2025-04-14 14:49:42 +08:00
akshat
90c008fe8c feat(esp_wifi): Add extended SSI support for NAN Services 2025-04-14 10:57:23 +05:30
morris
756cd17c61 Merge branch 'contrib/github_pr_15484_v5.4' into 'release/v5.4'
fix(twai): fixed twai assert fail during recover (GitHub PR) (v5.4)

See merge request espressif/esp-idf!37988
2025-04-14 13:23:02 +08:00
Alexey Gerenkov
72de7111cc Merge branch 'fix/coredump_uart_checksum_error_v5.4' into 'release/v5.4'
Fix/coredump uart checksum error (v5.4)

See merge request espressif/esp-idf!38364
2025-04-11 20:54:14 +08:00
Rocha Euripedes
9103ce5d03 Merge branch 'fix/fix-test-socks-transport_v5.4' into 'release/v5.4'
fix(tcp_transport): Fix test for socks transport (v5.4)

See merge request espressif/esp-idf!38293
2025-04-11 20:26:54 +08:00
Kapil Gupta
a18ce5df2d Merge branch 'bugfix/roaming_app_issues_v5.4' into 'release/v5.4'
fix(wifi): Fix some issues observed in roaming app (v5.4)

See merge request espressif/esp-idf!37414
2025-04-11 19:34:05 +08:00
Kapil Gupta
d255e7e7b5 fix(esp_wifi): Fix some compilation errors in roaming app 2025-04-11 15:49:12 +05:30
Kapil Gupta
5574205935 fix(esp_wifi): Removed unnecessary handlers to cleanup 2025-04-11 15:49:06 +05:30
Kapil Gupta
2b495713b2 fix(esp_wifi): Roaming app, sync api naming 2025-04-11 15:47:19 +05:30
Kapil Gupta
e5915c3ce3 fix(esp_wifi): Some more cleanup for roaming app 2025-04-11 15:47:17 +05:30
Kapil Gupta
8ed1cf8050 fix(esp_wifi): moving around roaming app code a bit 2025-04-11 15:46:25 +05:30
Kapil Gupta
7c94365ce9 fix(roaming_app): Add get set config params for the app 2025-04-11 15:46:25 +05:30
Kapil Gupta
e296094b00 fix(wifi): Provide a config option to skip IP renew during roam 2025-04-11 15:46:25 +05:30
Kapil Gupta
84ae3dc848 fix(esp_wifi): Set minimum scan time to 30ms in roaming app 2025-04-11 15:46:25 +05:30
Kapil Gupta
516551adc4 fix(wifi): Fix some issues observed in roaming app 2025-04-11 15:46:25 +05:30
Rahul Tank
b4ebe7a0af Merge branch 'fix/fix_incorrect_ota_address_assignment_v5.4' into 'release/v5.4'
fix(nimble): Fix incorrect OTA address type assignment (v5.4)

See merge request espressif/esp-idf!38348
2025-04-11 14:06:58 +08:00
morris
5190ce55a0 Merge branch 'fix/usb-hal-dwc-host-channel-num_v5.4' into 'release/v5.4'
fix(usb/hal/dwc): Correct host channel number calculation (backport v5.4)

See merge request espressif/esp-idf!37367
2025-04-11 11:27:34 +08:00
Erhan Kurubas
1ddd160dd2 fix(coredump): make sure consistency with uart data and calculated checksum
Closes https://github.com/espressif/esp-idf-monitor/issues/23
2025-04-10 16:27:25 +02:00
Martin Vychodil
a542b2b36a Merge branch 'fix/fatfs_use_dyn_buf_kconfig_mistake_v5.4' into 'release/v5.4'
fix(fatfs): Mistake in Kconfig for FATFS_USE_DYN_BUFFERS

See merge request espressif/esp-idf!38347
2025-04-10 20:30:45 +08:00
diplfranzhoepfinger
30d871d206 fix(twai): fixed twai assert fail when recover
driver try start new frame in ISR however already bus off

Closes https://github.com/espressif/esp-idf/issues/9697
2025-04-10 20:08:34 +08:00
Shreeyash
5b796a93e4 fix(nimble): Fix incorrect OTA address assignment 2025-04-10 15:15:36 +05:30
Adam Múdry
338dab5358 fix(fatfs): Mistake in Kconfig for FATFS_USE_DYN_BUFFERS 2025-04-10 10:53:19 +02:00
Wang Meng Yang
1bdd5daa83 Merge branch 'fix/some_issues_in_bt_controller_v5.4' into 'release/v5.4'
fix(bt): fixed some issues in bt controller(backport v5.4)

See merge request espressif/esp-idf!38331
2025-04-10 16:45:08 +08:00
Jiang Jiang Jian
24a92a3b23 Merge branch 'feat/eap_domain_check_v5.4' into 'release/v5.4'
esp_wifi: Add EAP domain validation support (v5.4)

See merge request espressif/esp-idf!38278
2025-04-10 14:59:41 +08:00
Jiang Jiang Jian
b79dcab1ec Merge branch 'feature/add_ds_param_in_probe_req_v5.4' into 'release/v5.4'
Add DS parameter in probe requests from STA (Backport v5.4)

See merge request espressif/esp-idf!38310
2025-04-10 13:53:22 +08:00
Shu Chen
a7f74bb220 Merge branch 'fix/ldgen_section_name_v54' into 'release/v5.4'
fix(ldgen): extend section name regex to include '_' (v5.4)

See merge request espressif/esp-idf!38323
2025-04-10 11:15:11 +08:00
morris
220a036318 Merge branch 'bugfix/remove_broken_link_for_wifi_expansion_v5.4' into 'release/v5.4'
bugfix: Remove the broken link in wifi-expansion.rst (v5.4)

See merge request espressif/esp-idf!38332
2025-04-10 10:41:40 +08:00
Rahul Tank
bf1a803795 Merge branch 'bugfix/fix_sscanf_usage_v5.4' into 'release/v5.4'
fix(nimble): Updated sscanf usage in examples to work for all versions (v5.4)

See merge request espressif/esp-idf!38021
2025-04-10 09:16:06 +08:00
Rahul Tank
297ebc7db7 fix(nimble): Updated sscanf usage in examples to work for all versions 2025-04-09 18:27:58 +05:30
Zhang Shuxian
2586e86cec bugfix: Remove the broken link in wifi-expansion.rst 2025-04-09 19:05:07 +08:00
gongyantao
af494b8b4e fix(bt): fixed some issues in bt controller
- add check for Wi-Fi channel
- fix the incorrect unit of duration_min in cpb tx
- recalculate the channel map when afh is enabled
- fix incorrect vendor event count causing an assertion failure
2025-04-09 18:58:44 +08:00
morris
c94014cc3d Merge branch 'fix/flash_encryption_verify_write_etc_v5.4' into 'release/v5.4'
fix(spi_flash): Fix flash encryption write verify (backport v5.4)

See merge request espressif/esp-idf!38269
2025-04-09 17:12:50 +08:00
Alexey Lapshin
6ad902d5be fix(ldgen): extend section name regex to include '_' (e.g.: used by picolibc) 2025-04-09 16:44:25 +08:00
Rahul Tank
5e38aaeb22 Merge branch 'bugfix/handle_missing_unlock_v5.4' into 'release/v5.4'
fix(nimble): Fixed one missing ble_hs_unlock() (v5.4)

See merge request espressif/esp-idf!38259
2025-04-09 13:24:37 +08:00
morris
89e81dfdc9 Merge branch 'fix/i2c_race_condition_etc_v5.4' into 'release/v5.4'
fix(i2c_master): Fix i2c master race condition issue, etc. (backport v5.4)

See merge request espressif/esp-idf!38265
2025-04-09 10:55:54 +08:00
C.S.M
9282eec541 fix(spi_flash): Add suspend check on esp32c6 and esp32h2 for some reason 2025-04-09 10:10:47 +08:00
Kapil Gupta
0cb892d6a2 Merge branch 'feature/github_pull_15073_v5.4' into 'release/v5.4'
feat(wpa_supplicant): Add optimized PSK implementation (v5.4)

See merge request espressif/esp-idf!38104
2025-04-09 00:21:40 +08:00
Kapil Gupta
582c2d8d4c fix(esp_wifi): Flush PMK when EAP config is changed 2025-04-08 17:58:24 +05:30
Kapil Gupta
c2fad24731 fix(esp_wifi): Code cleanup for PR#15550 PR#15551
Closes https://github.com/espressif/esp-idf/pull/15550
Closes https://github.com/espressif/esp-idf/pull/15551
2025-04-08 17:57:27 +05:30
akshat
c6a56d0216 feat(esp_wifi): Add DS parameter in probe requests from STA
Parse the DS IE to get intended channel when softAP rx request,
send probe response only if request is intended for the channel
2025-04-08 16:40:47 +05:30
morris
bfdca51a67 Merge branch 'fix/fix_l2_cache_miss_issue_v5.4' into 'release/v5.4'
cache: fixed l2 cache suspended/frozen but l1cache triggers l2 writeback issue (v5.4)

See merge request espressif/esp-idf!37998
2025-04-08 18:15:16 +08:00
Jiang Jiang Jian
3ee14caf6b Merge branch 'backport/backport_some_code_to_v5.4' into 'release/v5.4'
fix(wifi): fix twt post just one event for multiple flow(backport v5.4)

See merge request espressif/esp-idf!38273
2025-04-08 14:05:17 +08:00
Shu Chen
c0c7023dd8 Merge branch 'feature/add_txrx_frame_dump_debugging_v5.4' into 'release/v5.4'
feat(802.15.4): supported tx/rx frame dumping (v5.4)

See merge request espressif/esp-idf!38234
2025-04-08 11:01:54 +08:00
glmfe
5c76c789f8 fix(tcp_transport): Fix test for socks transport
- Removed out of scope stack acess
2025-04-07 12:09:34 -03:00
Zhang Hai Peng
20910df9d6 feat(ble/bluedroid): Implement BLE channel map reading API
(cherry picked from commit 55043e280a)

Co-authored-by: zhanghaipeng <zhanghaipeng@espressif.com>
2025-04-07 21:14:23 +08:00
Zhang Hai Peng
d47d3230cd fix(ble/bluedroid): Fix potential uint32_t overflow in BLE btu_start_timer
(cherry picked from commit a9286567f0)

Co-authored-by: zhanghaipeng <zhanghaipeng@espressif.com>
2025-04-07 21:14:21 +08:00
Zhang Hai Peng
e2c02966d2 fix(ble/bluedrooid): Fixed memory leak issue when deinit the host
(cherry picked from commit 6becf74cbb)

Co-authored-by: zhanghaipeng <zhanghaipeng@espressif.com>
2025-04-07 21:14:19 +08:00
Zhang Hai Peng
44f3208a49 feat(bluedroid): Support get bt config path
(cherry picked from commit d6bb90b453)

Co-authored-by: zhanghaipeng <zhanghaipeng@espressif.com>
2025-04-07 21:14:16 +08:00
Zhang Hai Peng
03e87e18f7 fix(ble/bluedroid): Fix missing event reporting in esp_ble_create_sc_oob_data
(cherry picked from commit f291725936)

Co-authored-by: zhanghaipeng <zhanghaipeng@espressif.com>
2025-04-07 21:14:14 +08:00
Zhang Hai Peng
d7e8cfadca fix(ble/bluedroid): Fixed BLE crash when disable bluedroid host
(cherry picked from commit 9dfa6ab0e9)

Co-authored-by: zhanghaipeng <zhanghaipeng@espressif.com>
2025-04-07 21:14:12 +08:00
morris
796bac0b74 Merge branch 'fix/jpeg_dma_stuck_v5.4' into 'release/v5.4'
fix(jpeg): use dma2d empty rx desc event to avoid a stuck on bad quality image (backport v5.4)

See merge request espressif/esp-idf!38262
2025-04-07 19:03:50 +08:00
Michael Stoll
4470cf7b49 fix: Force validate when using the default crt bundle 2025-04-07 14:43:15 +05:30
Michael Stoll
8144ed8599 feat: Add domain match to wifi_enterprise example 2025-04-07 14:43:03 +05:30
morris
781712062a Merge branch 'refactor/improve_p4_psram_timing_tuning_point_selection_v5.4' into 'release/v5.4'
mspi: improve p4 psram timing tuning point selection (v5.4)

See merge request espressif/esp-idf!38190
2025-04-07 17:10:38 +08:00
Michael Stoll
134b9ac589 feat(esp_wifi): Implement esp_eap_client_set_domain_match 2025-04-07 14:28:45 +05:30
yinqingzhao
0f07bfdef3 fix(wifi): fix twt post just one event for multiple flow 2025-04-07 16:13:49 +08:00
zhiweijian
33093418f8 feat(ble/bluedroid): report cte_type in periodic adv report if CTE feature is enabled 2025-04-07 16:04:24 +08:00
zhiweijian
15a901fb5e fix(bt/controller): Fixed controller flash only bug if hci-uart is enabled 2025-04-07 16:03:45 +08:00
Island
4e61ce24d6 Merge branch 'feat/support_bluedroid_host_iso_feature_master_v5.4' into 'release/v5.4'
Support bluedroid host new  features (v5.4)

See merge request espressif/esp-idf!38163
2025-04-07 16:01:16 +08:00
Mahavir Jain
6f36eddc48 Merge branch 'contrib/github_pr_15715_v5.4' into 'release/v5.4'
fix(esp_http_client): fix error return when set_header has value==NULL (GitHub PR) (v5.4)

See merge request espressif/esp-idf!38264
2025-04-07 15:29:42 +08:00
C.S.M
04a0c758e7 fix(spi_flash): Return false directly in suspend caps check 2025-04-07 15:22:39 +08:00
C.S.M
5ea148a80c fix(spi_flash): Fix flash encryption write verify,
Closes https://github.com/espressif/esp-idf/issues/15380
2025-04-07 15:22:21 +08:00
Jiang Jiang Jian
ba9b1c46e2 Merge branch 'fix/fix_sleep_reject_on_esp32_v5.4' into 'release/v5.4'
fix(esp_hw_support): fix short duration sleep requests rejected in pd_flash lightsleep(v5.4)

See merge request espressif/esp-idf!38226
2025-04-07 15:20:53 +08:00
C.S.M
c29d6575a1 fix(i2c): Fix i2c customize only read one byte issue 2025-04-07 14:08:23 +08:00
C.S.M
0752abf3c7 fix(i2c_master): Fix the stretch happen cause timeout in probe,
Closes https://github.com/espressif/esp-idf/issues/15589
2025-04-07 14:08:10 +08:00
C.S.M
785e45cfcb fix(i2c): Fix i2c slave auto selection issue,
Closes https://github.com/espressif/esp-idf/issues/15644
2025-04-07 14:07:58 +08:00
C.S.M
e2ce4d256a fix(i2c): Fix the array size of static operation,
Closes https://github.com/espressif/esp-idf/issues/15583
2025-04-07 14:07:45 +08:00
C.S.M
a4ecb6b15c fix(i2c_master): Fix i2c master race condition issue,
Closes https://github.com/espressif/esp-idf/issues/15444
2025-04-07 14:05:32 +08:00
Kapil Gupta
2a0866ac9f fix(ci): Update UT to verify fast psk calculations
Also update some comments
2025-04-07 14:02:48 +08:00
Kapil Gupta
b9f2ca9068 fix(esp_wifi): Add some comments in github PR 15073
Closes https://github.com/espressif/esp-idf/pull/15073
2025-04-07 14:02:48 +08:00
Chien Wong
d3ec99b9cd feat(wpa_supplicant): Add optimized PSK impl
Signed-off-by: Chien Wong <m@xv97.com>
2025-04-07 14:02:48 +08:00
Jiang Jiang Jian
19e864060a Merge branch 'fix/rmii_ref_ckl_v5.4' into 'release/v5.4'
fix(esp_eth): fixed ESP32P4 EMAC REF RMII CLK output mode (v5.4)

See merge request espressif/esp-idf!38039
2025-04-07 13:58:48 +08:00
Jiang Jiang Jian
b809629dba Merge branch 'contrib/github_pr_15637_v5.4' into 'release/v5.4'
fix(esp_eth): Fix order of fields in ETH_ESP32_EMAC_DEFAULT_CONFIG on P4 (GitHub PR) (v5.4)

See merge request espressif/esp-idf!38165
2025-04-07 13:58:32 +08:00
Jiang Jiang Jian
9920b0994c Merge branch 'fix/test_nvs_gen_check_read_only_part_support_v5.4' into 'release/v5.4'
fix: test_nvs_gen_check.py support for read-only NVS partitions (v5.4)

See merge request espressif/esp-idf!37078
2025-04-07 13:57:25 +08:00
Jiang Jiang Jian
5bedbdf8e0 Merge branch 'feat/ff_fs_nofsinfo_kconfig_v5.4' into 'release/v5.4'
feat(fatfs): Add an option to set FF_FS_NOFSINFO value (v5.4)

See merge request espressif/esp-idf!36678
2025-04-07 13:56:54 +08:00
Jiang Jiang Jian
8c68adfbf1 Merge branch 'fix/apptrace_basic_tests_v5.4' into 'release/v5.4'
test(apptrace): run tests from custom OpenOCD class (v5.4)

See merge request espressif/esp-idf!37602
2025-04-07 13:53:21 +08:00
Jiang Jiang Jian
dc68766ea3 Merge branch 'feature/update-openocd-to-v0.12.0-esp32-20250226_v5.4' into 'release/v5.4'
feat(tools): update openocd version to v0.12.0-esp32-20250226 (v5.4)

See merge request espressif/esp-idf!37526
2025-04-07 13:53:05 +08:00
Jiang Jiang Jian
6897a7bf40 Merge branch 'ci/add_test_for_ecos_wifi_enterprise_v54' into 'release/v5.4'
ci(c2/c3): add major eco version tests(v5.4)

See merge request espressif/esp-idf!37808
2025-04-07 13:52:43 +08:00
Jiang Jiang Jian
7ea75e3c58 Merge branch 'bugfix/ci_eth_ip_v5.4' into 'release/v5.4'
iperf fix on SH runners (v5.4)

See merge request espressif/esp-idf!37331
2025-04-07 13:51:38 +08:00
nilesh.kale
27951298ab fix(esp_http_client): Added test case to verify set header functionality
This commit added testcase to verify esp_http_client_set_header
allows header value as NULL. Setting this NULL will delete the header.

Closes https://github.com/espressif/esp-idf/issues/15714
2025-04-07 11:14:13 +05:30
Mathew Harman
bbd57a2204 fix(esp_http_client): fix error return when set_header has value==NULL
Prior to v5.4, headers could be deleted from an HTTP client by calling
esp_http_client_set_header("Header", NULL). This pattern is used by
esp_http_client_set_post_field(NULL, 0), which is the only API usage
that will delete the request body in a persistent connection scenario.
2025-04-07 11:14:13 +05:30
C.S.M
ba3d59c69e fix(jpeg): use dma2d empty rx desc event to avoid a stuck 2025-04-07 13:37:06 +08:00
C.S.M
05d0fdb7a5 feat(dma2d): Add a rx empty event callback 2025-04-07 13:36:57 +08:00
Rahul Tank
3b08b2b82d fix(nimble): Fixed one missing ble_hs_unlock() 2025-04-07 09:39:17 +05:30
Rahul Tank
f8b7c14703 Merge branch 'bugfix/handle_invalid_rd_rem_feat_v5.4' into 'release/v5.4'
fix(nimble): Handle connection posting condition (v5.4)

See merge request espressif/esp-idf!38227
2025-04-07 12:01:02 +08:00
armando
b67b1160e7 fix(cache): fixed l2 cache suspended/frozen but l1cache triggers l2 writeback issue 2025-04-07 11:37:40 +08:00
Jiang Jiang Jian
0d11e40920 Merge branch 'bugfix/pmkid_password_mismatch_v5.4' into 'release/v5.4'
fix(wifi): Fix wrong PMKSA cache entry being used when wifi password is changed (Backport v5.4)

See merge request espressif/esp-idf!38250
2025-04-07 11:14:41 +08:00
armando
71e99e8eaa refactor(mspi): improve p4 timing tuning delayline configurations 2025-04-07 10:14:17 +08:00
armando
98496eca72 refactor(mspi): improved timing tuning max consecutive success points calculation 2025-04-07 10:14:17 +08:00
Sajia
a73c5c0312 fix(wifi): Fix crash when set config is called with changed password
Closes https://github.com/espressif/esp-idf/issues/15584
2025-04-06 15:22:15 +05:30
Sarvesh Bodakhe
f8b1c0976a fix(wifi): Fix wrong PMKSA cache entry being used when wifi password is changed 2025-04-06 15:21:56 +05:30
Rahul Tank
b1a0b0c698 Merge branch 'bugfix/replace_sizeof_with_strlen_v5.4' into 'release/v5.4'
fix(nimble): Replaced incorrect sizeof with strnlen (v5.4)

See merge request espressif/esp-idf!37797
2025-04-04 19:04:19 +08:00
Aditya Patwardhan
cb24473016 Merge branch 'fix/examples_python3.13_ssl_conn_failure_v5.4' into 'release/v5.4'
Change in Python3.13's default ssl context caused SSL connection failure (v5.4)

See merge request espressif/esp-idf!38199
2025-04-04 13:57:16 +08:00
Mahavir Jain
952e0e3bfb Merge branch 'feat/configurable_mbedtls_sha1_v5.4' into 'release/v5.4'
feat(mbedtls): Make mbedtls SHA1 support configurable (v5.4)

See merge request espressif/esp-idf!37980
2025-04-04 12:32:38 +08:00
igor.masar
c9c0e8b63e fix(usb/hal/dwc): Correct host channel number calculation
The hardware field `ghwcfg2.numhstchnl` is zero-based, meaning the actual
number of available host channels is `numhstchnl + 1`. This off-by-one
error caused the USB Host controller to report N-1 channels instead of N,
leading to premature "No more HCD channels available" errors when
connecting multiple devices.

This issue affects ESP32-S2, ESP32-S3, and ESP32-P4.
2025-04-03 23:53:01 +08:00
Aditya Patwardhan
26ffbce8c2 Merge branch 'fix/fix_security_app_readme_v5.4' into 'release/v5.4'
fix(security): Fixed README for security features app (v5.4)

See merge request espressif/esp-idf!38184
2025-04-03 22:38:35 +08:00
Jiang Jiang Jian
d1b0c395c6 Merge branch 'feature/support_sco_coexist_v5.4' into 'release/v5.4'
feat(coex): Support BR/EDR (e)SCO and Wi-Fi coexistence

See merge request espressif/esp-idf!38133
2025-04-03 20:13:03 +08:00
zwx
75abe550a3 feat(802.15.4) add a build CI test for debugging feature 2025-04-03 17:30:50 +08:00
zwx
c72bbe13ba feat(802.15.4): supported tx/rx frame dumping 2025-04-03 17:30:50 +08:00
Martin Vychodil
9df731bf36 Merge branch 'fix/incorrect_console_open_and_close_behaviour_v5.4' into 'release/v5.4'
fix(storage/vfs_console): stop new console opens from overwriting existing fds (v5.4)

See merge request espressif/esp-idf!35267
2025-04-03 17:01:57 +08:00
Marius Vikhammer
6f13ac088f Merge branch 'fix/memory-utils-ptr-executable_v5.4' into 'release/v5.4'
fix(memory-utils): Missing case in esp_ptr_executable logic (backport v5.4)

See merge request espressif/esp-idf!37101
2025-04-03 14:58:36 +08:00
Island
a3cf6b07b7 Merge branch 'bugfix/fixed_c2eco4_ble_crash_issue_5.4' into 'release/v5.4'
fix(ble): fixed a heap assertion issue when enabling BLE for esp32c2 v2.0

See merge request espressif/esp-idf!38213
2025-04-03 14:42:30 +08:00
Rahul Tank
3abd397e67 fix(nimble): Handle connection posting condition 2025-04-03 11:05:57 +05:30
harshal.patil
dcd80b2528 fix(examples): Example CA certs must contain the Key Usage parameter
- Example CA certificates that are used for self-signed client certificates
need to include the Key Usage parameter.
- Python3.13 changed the default context of the SSL context that is
generated using ssl.create_default_context() by enabling the VERIFY_X509_STRICT
flag by default
2025-04-03 10:51:09 +05:30
Rahul Tank
77771f50d5 fix(nimble): Replaced incorrect sizeof with strnlen 2025-04-03 10:22:15 +05:30
wuzhenghui
ddd19eee94 fix(esp_hw_support): fix min sleep time calculation missmatch in powerdown flash decision 2025-04-03 11:51:57 +08:00
Island
dd9dbfccd6 Merge branch 'change/ble_update_lib_20250313_v5.4' into 'release/v5.4'
change(ble): [AUTO_MR] 20250313 - Update ESP BLE Controller Lib (v5.4)

See merge request espressif/esp-idf!37822
2025-04-03 11:18:35 +08:00
Marius Vikhammer
7929002754 Merge branch 'fix/memory-utils-unused-var_v5.4' into 'release/v5.4'
fix(esp_hw_support): Unused variables in memory_utils functions (backport v5.4)

See merge request espressif/esp-idf!36351
2025-04-03 10:55:43 +08:00
morris
7e1238de97 Merge branch 'fix/parlio_add_gdma_fifo_reset_v5.4' into 'release/v5.4'
fix(parlio_tx): add clock and fifo reset in disable function (v5.4)

See merge request espressif/esp-idf!36273
2025-04-03 10:27:04 +08:00
morris
ae57289414 Merge branch 'fix/usb-host-device-close-err-give-semaphore_v5.4' into 'release/v5.4'
fix(usb_host): Give semaphore on attempted close of non-opened device (backport v5.4)

See merge request espressif/esp-idf!38151
2025-04-03 10:23:24 +08:00
Shu Chen
0355d741cf Merge branch 'feat/update_ot_upstream_v54' into 'release/v5.4'
feat(openthread): update openthread upstream submodule to support BR DNS resolution (v5.4)

See merge request espressif/esp-idf!38191
2025-04-03 09:52:03 +08:00
Shen Weilong
39acce7c40 fix(ble): fixed a heap assertion issue when enabling BLE for esp32c2 v2.0 2025-04-03 08:42:45 +08:00
Roland Dobai
17a2461297 Merge branch 'fix/linux_std_flags_v5.4' into 'release/v5.4'
fix(build): don't call enable_language() before project() (v5.4)

See merge request espressif/esp-idf!37880
2025-04-02 23:42:58 +08:00
baohongde
12117c66d4 feat(coex): Support BR/EDR (e)SCO and Wi-Fi coexistence 2025-04-02 19:25:53 +08:00
Zhou Xiao
e3e91deca2 fix(ble): fix ble log init failure mem leak for ESP32-C3 2025-04-02 15:18:22 +08:00
Shen Weilong
e1920ec42f feat(ble/controller): Added memory boundary check for ESP32-C6/C5/H2/C2/C61 2025-04-02 15:18:18 +08:00
Geng Yuchao
0645197a46 fix(ble): Add link requires esp_phy for ble. 2025-04-02 15:18:18 +08:00
Zhou Xiao
94480cc0c0 feat(ble): support ble log simple output via SPI interface 2025-04-02 15:18:18 +08:00
Zhou Xiao
18725220d4 fix(ble): fix ble log init failure mem leak for ESP32 2025-04-02 15:18:18 +08:00
cjin
1848a85f99 fix(ble): remove macro in lpclk src get api on ESP32-C6 2025-04-02 15:18:18 +08:00
cjin
15d421c060 fix(ble): remove macro in lpclk src get api on ESP32-C5 2025-04-02 15:18:18 +08:00
zwl
c93081cec4 feat(ble): add enhanced connect function on ESP32-C2 2025-04-02 15:18:18 +08:00
Zhou Xiao
b7bffc84f9 feat(ble): support ble log simple output via SPI interface for ESP32-C6 2025-04-02 15:18:17 +08:00
Zhou Xiao
8e036761ed feat(ble): support ble log simple output via SPI interface for ESP32-C5 2025-04-02 15:18:17 +08:00
Zhou Xiao
9a3b5e8393 feat(ble): support ble log simple output via SPI interface for ESP32-H2 2025-04-02 15:18:17 +08:00
Zhou Xiao
8eb051cb30 feat(ble): support ble log simple output via SPI interface for ESP32-C2 2025-04-02 15:18:17 +08:00
Zhou Xiao
cda345ffc7 fix(ble): add feed wdts during ble log dump for ESP32-C2 2025-04-02 15:18:17 +08:00
Zhou Xiao
3051078939 fix(ble): fix flushout and sync issues 2025-04-02 15:18:17 +08:00
zhanghaipeng
e323d22353 fix(ble/bluedroid): Added SPI output support for Bluedroid host log 2025-04-02 15:18:17 +08:00
zhanghaipeng
231bf742b0 fix(ble/bluedroid): Support SPI log output options for HCI 2025-04-02 15:18:17 +08:00
Zhou Xiao
41a33fcd46 feat(ble): add printf and write with timestamp interface for ble log spi out
(cherry picked from commit f8efa4cd80)

Co-authored-by: Zhou Xiao <zhouxiao@espressif.com>
2025-04-02 15:18:17 +08:00
Roland Dobai
58210d69b2 Merge branch 'fix/remove-unused-from-gdbinit_cmake_v5.4' into 'release/v5.4'
fix(tools): remove unused variables in gdbinit.cmake (v5.4)

See merge request espressif/esp-idf!38008
2025-04-02 15:14:37 +08:00
Island
6f0255713e Merge branch 'feat/support_blecrt_359_v5.4' into 'release/v5.4'
Support BLE vendor hci set rx sensie and max gain on esp32c3 (v5.4)

See merge request espressif/esp-idf!38130
2025-04-02 15:06:58 +08:00
Tan Yan Quan
41e9933e2f feat(openthread): increase CI timeout for dns CLI commands 2025-04-02 14:59:31 +08:00
Tan Yan Quan
d6b6583995 feat(openthread): update thread-lib to support BR DNS resolution 2025-04-02 14:59:11 +08:00
Tan Yan Quan
30ffbfcf6b feat(openthread): revert to OT upstream main branch 2025-04-02 14:49:43 +08:00
Tan Yan Quan
17f206400d fix(openthread): change include statement to updated upstream path 2025-04-02 14:49:37 +08:00
Tan Yan Quan
8063f82219 fix(openthread): update openthread upstream to support BR DNS resolution 2025-04-02 14:49:29 +08:00
Marius Vikhammer
d2eb653916 Merge branch 'fix/esp-log-put-function-in-iram_v5.4' into 'release/v5.4'
fix(log): Modified linker script to move functions from flash to iram (backport v5.4)

See merge request espressif/esp-idf!36817
2025-04-02 14:44:48 +08:00
Guillaume Souchere
2bdfba3c30 fix(memory-utils): Missing case in esp_ptr_executable logic
esp_ptr_executable does not consider that the PSRAM and FLASH
memory mapping are not always matching.

Added a "pointer is in PSRAM" specific check in the logic to
fix the issue.
2025-04-02 08:44:22 +02:00
Guillaume Souchere
e82a248593 fix(esp_hw_support): Unused variables in memory_utils functions 2025-04-02 08:43:37 +02:00
Marius Vikhammer
58c5aa2591 Merge branch 'fix/memory-utils-esp_ptr_in_rtc_dram_fast_v5.4' into 'release/v5.4'
fix(esp_hw_support): esp_ptr_in_rtc_iram_fast check to return false (backport v5.4)

See merge request espressif/esp-idf!36933
2025-04-02 14:33:43 +08:00
Aditya Patwardhan
f7bce692ab fix(security): Fixed README for security features app 2025-04-02 10:18:43 +05:30
morris
7fe190313c Merge branch 'feat/p4_adc_calibration' into 'release/v5.4'
Feature/esp32 p4 adc calibration (backport v5.4)

See merge request espressif/esp-idf!36179
2025-04-02 11:04:46 +08:00
Island
cebb126055 Merge branch 'feat/support_ble_vendor_hci_event_report_v5.4' into 'release/v5.4'
feat(bt/bluedroid): Support BLE vendor hci event reporting (v5.4)

See merge request espressif/esp-idf!37354
2025-04-02 10:44:09 +08:00
chenjianhua
e2bc4fc39f fix(bt): Update bt lib for ESP32-C3 and ESP32-S3(566c8e3)
- Support BLE vendor hci set RX sensitivity and AGC gain command
- Fixed enhanced TX power setting and getting for legacy adv
- Fixed BLE assert lld_con.c 2387
- Fixed compatibility issues during the encryption procedure
- Support BLE vendor hci enable CCA command
- Added BLE controller debug log trace
- Added BLE controller log module
2025-04-02 10:38:40 +08:00
zhiweijian
c06b78595d fix(ble/bluedroid): move setting host feature API to GAP 2025-04-02 10:31:42 +08:00
zhiweijian
0e6e23ec53 feat(bt/bluedroid): Support ble bluedroid host connection subrating feature 2025-04-02 10:31:33 +08:00
zhiweijian
5425ed8eef feat(bt/bluedroid): Support ble bluedroid host power control feature 2025-04-02 10:31:24 +08:00
zhiweijian
b47a6003a1 feat(bt/bluedroid): Support BLE CTE in bluedroid host 2025-04-02 10:31:14 +08:00
zhiweijian
e3bf21b31a feat(bt/bluedroid): Support BLE iso in bluedroid host 2025-04-02 10:31:04 +08:00
morris
ff8c836be3 Merge branch 'feat/allow_setting_rmt_group_prescale_v5.4' into 'release/v5.4'
refactor(rmt): set group clock prescale dynamically (v5.4)

See merge request espressif/esp-idf!36737
2025-04-02 10:15:16 +08:00
morris
13baf981ca Merge branch 'bugfix/sdmmc_high_prio_timeout_v5.4' into 'release/v5.4'
fix(sdmmc): move DMA descriptor refilling into the ISR (v5.4)

See merge request espressif/esp-idf!37694
2025-04-02 10:13:22 +08:00
Sergei Silnov
891f7eeef2 Merge branch 'ci/update_esp-env-v5.4_to_ubuntu_24.04' into 'release/v5.4'
5.4: Update ubuntu base image for esp-env-v5.4 to 24.04

See merge request espressif/esp-idf!37872
2025-04-02 02:30:09 +08:00
Island
b641411c06 Merge branch 'feat/add_save_debug_context_250226_v5.4' into 'release/v5.4'
Feat/add save debug context 250226 (v5.4)

See merge request espressif/esp-idf!37297
2025-04-01 19:33:51 +08:00
Shu Chen
f481174cbd Merge branch 'feat/add_config_to_set_addrfamily_v5.4' into 'release/v5.4'
feat(tcp_transport): add an api to configure the addr family (v5.4)

See merge request espressif/esp-idf!37911
2025-04-01 19:32:14 +08:00
morris
a125701444 Merge branch 'bugfix/uart_async_rxtxtasks_example_stack_overflow_v5.4' into 'release/v5.4'
fix(uart): enlarged task stack size for uart_async_rxtxtasks example (v5.4)

See merge request espressif/esp-idf!37590
2025-04-01 18:48:00 +08:00
Ondrej Kosta
ac29bd7ca4 ci(esp_eth): enabled Ethernet target tests 2025-04-01 12:45:59 +02:00
Jonathan Swoboda
3581d9d5a9 fix(esp_eth): Fix order of fields in ETH_ESP32_EMAC_DEFAULT_CONFIG on P4 2025-04-01 07:24:19 +00:00
chenjianhua
352ee491db feat(bt/bluedroid): Support BLE vendor hci event reporting 2025-04-01 15:12:28 +08:00
Island
f6dc2b658d Merge branch 'feat/optimize_hci_data_recv_process_v5.4' into 'release/v5.4'
Feat/optimize hci data recv process (v5.4)

See merge request espressif/esp-idf!37834
2025-04-01 15:12:28 +08:00
chenjianhua
189e40bc7b feat(bt/bluedroid): Support BLE setting vendor event mask 2025-04-01 15:12:28 +08:00
Kapil Gupta
2863fe328c fix(esp_wifi): Add alternate SHA1 APIs in WiFi
Add alternate SHA1 APIs to handle cases when
`CONFIG_MBEDTLS_SHA1_C` is disabled.
2025-04-01 12:40:55 +05:30
harshal.patil
96f48cd1cf feat(mbedtls): Make mbedtls SHA1 support configurable 2025-04-01 12:40:55 +05:30
gaoxu
221da3fbb4 docs(adc): add ADC calibration docs on ESP32P4 2025-04-01 15:08:04 +08:00
gaoxu
d74f12dea7 feat(adc): support ADC calibration on ESP32P4 2025-04-01 15:07:56 +08:00
gaoxu
b227da9b2b ci(adc): enable P4 ADC test and correct ADC performance thresh 2025-04-01 15:05:36 +08:00
gaoxu
f380cb6a4d fix(adc): fix P4 adc continuous mode stop early 2025-04-01 15:05:34 +08:00
gaoxu
3e9c1ae62b fix(adc): fix adc1 error after bootloader random 2025-04-01 15:05:31 +08:00
Rahul Tank
9d45436a5f Merge branch 'feat/added_change_to_ble_spp_client_v5.4' into 'release/v5.4'
feat(nimble): Allow BLE SPP Client to subscribe to the server (v5.4)

See merge request espressif/esp-idf!37455
2025-04-01 14:58:52 +08:00
Marius Vikhammer
8c9946fe9b Merge branch 'feat/enable_freertos_smp_for_c5_c61_v5.4' into 'release/v5.4'
feat(freertos): Enable Amazon FreeRTOS SMP kernel for esp32c5 and esp32c61 (v5.4)

See merge request espressif/esp-idf!38073
2025-04-01 14:56:32 +08:00
Marius Vikhammer
a218e3f553 Merge branch 'fix/ringbuf_allow_split_receive_crash_v5.4' into 'release/v5.4'
fix(ringbuf): xRingbufferReceive() crashes for allow-split buffers (v5.4)

See merge request espressif/esp-idf!37922
2025-04-01 14:55:36 +08:00
Marius Vikhammer
4354c3080a Merge branch 'fix/lp_uart_flush_wait_for_idle_v5.4' into 'release/v5.4'
fix(lp_uart): Update the `lp_core_uart_tx_flush()` API to wait for UART Tx idle state (v5.4)

See merge request espressif/esp-idf!37473
2025-04-01 14:55:18 +08:00
Marius Vikhammer
592c6312b6 Merge branch 'bugfix/adc_work_mode_for_ulp_riscv_v5.4' into 'release/v5.4'
fix(ulp-riscv): Fixed ADC oneshot initialization for ULP RISC-V (v5.4)

See merge request espressif/esp-idf!37372
2025-04-01 14:54:56 +08:00
Wang Meng Yang
0cecb7bcf3 Merge branch 'bug/xtensa_cpu1_sys_lockup_v5.4' into 'release/v5.4'
fix(panic_handler): Updated panic handler to use RTC WDT (v5.4)

See merge request espressif/esp-idf!37112
2025-04-01 14:51:18 +08:00
Rahul Tank
078a29e351 Merge branch 'fix/periodic_adv_example_v5.4' into 'release/v5.4'
fix(nimble):Fix conversion for min-max itvl of periodic adv param (v5.4)

See merge request espressif/esp-idf!38091
2025-04-01 14:49:42 +08:00
Ondrej Kosta
300adf0045 fix(esp_eth): fixed emac_ll_pause_frame_enable for ESP32P4 2025-04-01 08:32:09 +02:00
Ondrej Kosta
e544d57179 fix(esp_eth): fixed ESP32P4 EMAC REF RMII CLK output mode
fixed units returned and used by periph_rtc_mpll_freq_set function
2025-04-01 08:32:09 +02:00
Rahul Tank
4d749ee5b0 Merge branch 'fix/ble_issue_10032025_v5.4' into 'release/v5.4'
fix(nimble): Fix some nimble issues ble_issue_10032025_v5.4

See merge request espressif/esp-idf!37625
2025-04-01 12:47:00 +08:00
Shu Chen
8fa7bf6c47 Merge branch 'fix/csl_rx_off_when_idle_v5.4' into 'release/v5.4'
fix(openthread): turn off rx for SSED running CSL during idle (v5.4)

See merge request espressif/esp-idf!37992
2025-04-01 11:30:38 +08:00
Shu Chen
f122d1113c Merge branch 'bugfix/fix_ot_ci_cases_avahi_service_issue_v5.4' into 'release/v5.4'
feat(openthread): fix ci avahi service cases issue (v5.4)

See merge request espressif/esp-idf!37861
2025-04-01 11:29:14 +08:00
Shu Chen
667b2431ee Merge branch 'fix/154_txpower_set_api_v5.4' into 'release/v5.4'
fix(802.15.4): fix the behavior of the `esp_ieee802154_set_txpower` (v5.4)

See merge request espressif/esp-idf!37736
2025-04-01 11:28:56 +08:00
Shu Chen
89c73fc502 Merge branch 'support/ieee802154_set_txon_delay_using_phylib_impl_v5.4' into 'release/v5.4'
feat(802.15.4): configure tx on delay using phylib implementation (v5.4)

See merge request espressif/esp-idf!37656
2025-04-01 11:28:47 +08:00
morris
beee8e047e Merge branch 'contrib/github_pr_15499_v5.4' into 'release/v5.4'
Add missing break statements to usb_serial_jtag_ll_phy_select (GitHub PR) (v5.4)

See merge request espressif/esp-idf!38124
2025-04-01 11:14:52 +08:00
morris
57a83359d5 Merge branch 'bugfix/clear_ledc_gamma_ram_v5.4' into 'release/v5.4'
fix(ledc): left-off gamma ram registers should be cleared (v5.4)

See merge request espressif/esp-idf!37572
2025-04-01 11:13:32 +08:00
Chen Jichang
da4c0a3a8d fix(parlio): fix non-free running test case 2025-04-01 11:11:44 +08:00
Chen Jichang
4e7c593098 fix(parlio): fix rempty interrupt during resetting fifo
Move the fifo reset to after disabling the tx core clock.
And add external non-free running clock src test.
2025-04-01 11:11:44 +08:00
Chen Jichang
21792d572e fix(parlio_tx): add clock and fifo reset in disable function 2025-04-01 11:11:44 +08:00
morris
8bce1430ee Merge branch 'bugfix/lp_uart_baudrate_limitation_v5.4' into 'release/v5.4'
fix(uart): LP UART does not have the pre-divider for its clock source (v5.4)

See merge request espressif/esp-idf!37594
2025-04-01 10:35:29 +08:00
Renze Nicolai
e743875cd8 fix: add missing break statements to usb_serial_jtag_ll_phy_select,
Closes https://github.com/espressif/esp-idf/pull/15499
2025-04-01 10:09:47 +08:00
morris
46685f1dfd Merge branch 'docs/update_translation_for_nvs_bootloader_v5.4' into 'release/v5.4'
docs: Provide CN translation for nvs bootloader and fix broken link (v5.4)

See merge request espressif/esp-idf!37445
2025-04-01 10:03:21 +08:00
morris
321fd07663 Merge branch 'docs/add_note_about_twai_instance_install_v5.4' into 'release/v5.4'
docs: Add a note about TWAI multiple instances install (v5.4)

See merge request espressif/esp-idf!37965
2025-04-01 10:03:02 +08:00
morris
80be2e9dac Merge branch 'fix/usb_host_docs_host_num_chan_reference_backport_v5.4' into 'release/v5.4'
fix(usb_host): Fixing reference to OTG_NUM_HOST_CHAN in docs backport to v5.4

See merge request espressif/esp-idf!37384
2025-04-01 10:02:31 +08:00
morris
373f508a99 Merge branch 'update_usb_jtag_doc_v5.4' into 'release/v5.4'
docs(jtag): add esp32p4 usb jtag pin numbers (v5.4)

See merge request espressif/esp-idf!37241
2025-04-01 10:01:53 +08:00
morris
3076186e8f Merge branch 'fix/pr_15513_psram_bss_noinit_calc_issue_v5.4' into 'release/v5.4'
psram: correct .bss and .noinit vaddr calculation (v5.4)

See merge request espressif/esp-idf!37664
2025-04-01 10:00:56 +08:00
morris
fba83778cb Merge branch 'bugfix/ledc_fade_stop_race_condition_v5.4' into 'release/v5.4'
fix(ledc): fix race condition in ledc_fade_stop causing assert failure (v5.4)

See merge request espressif/esp-idf!38080
2025-04-01 09:59:31 +08:00
morris
62ace4d687 Merge branch 'fix/spi_master_halt_using_rc_fast_v5.4' into 'release/v5.4'
fix(spi_master): fix spi halt when remove device who using rc_fast (v5.4)

See merge request espressif/esp-idf!37002
2025-04-01 09:58:50 +08:00
morris
0e3cdc3b75 Merge branch 'feat/update_pcnt_reg_on_h2_eco5_v5.4' into 'release/v5.4'
feat(pcnt): update pcnt reg on h2 eco5 (v5.4)

See merge request espressif/esp-idf!38117
2025-04-01 09:54:51 +08:00
weiyuhan
6fe81dfc1b docs(ble): Updated the Bluetooth SIG Qualification information for ESP32C6 2025-04-01 09:33:05 +08:00
Wei Yu Han
10f7a7b8b7 Updated BLE feature status
(cherry picked from commit 6a584e9698)

Co-authored-by: weiyuhan <weiyuhan@espressif.com>
2025-04-01 09:33:05 +08:00
Chen Jian Hua
45400a78d0 feat(bt/bluedroid): Added BLE eddystone sender example
(cherry picked from commit 06366353d8)

Co-authored-by: zhangbowen <zhangbowen@espressif.com>
2025-04-01 09:30:56 +08:00
Wang Meng Yang
74d5769159 Merge branch 'feat/add_sdk_config_for_sdp_size_option_v5.4' into 'release/v5.4'
feat(bt): Implement SDK Config SDP Size Options (backport v5.4)

See merge request espressif/esp-idf!37209
2025-04-01 09:08:00 +08:00
igor.masar
2e8a928ee7 fix(usb_host): Fix return code and description
Changed error code from ESP_ERR_INVALID_STATE to ESP_ERR_NOT_FOUND
when the client never opened the device.
Updated function documentation to correctly reflect return values.
2025-03-31 23:44:27 +02:00
Myk Melez
71d098ed63 fix(usb_host): Give semaphore on attempted close of non-opened device
If you call *usb_host_device_close()* for a device that isn't open, the function exits early,
without giving back the semaphore it took, which causes any other call that tries to take
that semaphore to hang indefinitely.

Strangely, there's redundant handling of this condition, with two checks in a row that both handle
the case where `_check_client_opened_device(client_obj, dev_addr)` returns `false`:

```c
    HOST_CHECK_FROM_CRIT(_check_client_opened_device(client_obj, dev_addr), ESP_ERR_NOT_FOUND);
    if (!_check_client_opened_device(client_obj, dev_addr)) {
        // Client never opened this device
        ret = ESP_ERR_INVALID_STATE;
        HOST_EXIT_CRITICAL();
        goto exit;
    }
…
exit:
    xSemaphoreGive(p_host_lib_obj->constant.mux_lock);
    return ret;
```

The first line is the one that exits early, as HOST_CHECK_FROM_CRIT returns its second parameter
if its first parameter is false, without giving back the semaphore (although it does exit
the critical section).

The subsequent block handles the exact same case, except that it ensures the semaphore is given
back before returning. Currently, this block is never reached.

Perhaps the first check was added, then someone noticed the issue and added the second check,
but they forgot to remove the first one.

In any case, this PR removes the first check, so the second check can properly handle this case
by giving back the semaphore before returning.

This bug appears to have been present in the initial commit of the USB Host library to the ESP-IDF
repo: accbaee57c

Of course, if you never try to close a non-opened device, then you won't encounter it!
Unfortunately, I have some code that tried to do that, which is how I found the issue.
2025-03-31 23:44:27 +02:00
Mahavir Jain
710ed9bcad Merge branch 'contrib/github_pr_15291_v5.4' into 'release/v5.4'
fix(esp_http_client): Fix invalid content length header (GitHub PR) (v5.4)

See merge request espressif/esp-idf!37540
2025-03-31 21:32:49 +08:00
Mahavir Jain
54283c9567 Merge branch 'feature/add_support_for_ota_resumption' into 'release/v5.4'
feat(app_update): Introduced API for managing OTA resumption scenarios (v5.4)

See merge request espressif/esp-idf!37194
2025-03-31 21:32:14 +08:00
Mahavir Jain
a33851c9db Merge branch 'fix/incorrect_calculation_of_used_xip_pages_v5.4' into 'release/v5.4'
fix(esp_psram): Fix incorrect calculation of used XIP PSRAM pages (v5.4)

See merge request espressif/esp-idf!37495
2025-03-31 21:31:59 +08:00
Jiang Jiang Jian
1113c7183d Merge branch 'doc/add_wakeup_source_usage_precautions_v5.4' into 'release/v5.4'
change(doc): added more usage notes & warings about PM_POWER_DOWN_PERIPHERAL_IN_LIGHT_SLEEP (v5.4)

See merge request espressif/esp-idf!37391
2025-03-31 17:33:32 +08:00
Wang Meng Yang
75721348d8 Merge branch 'bugfix/sec_service_record_conn_fail_v5.4' into 'release/v5.4'
fix(bt/bluedroid): fix the issue of connection failure when initializing multiple profiles(v5.4)

See merge request espressif/esp-idf!38074
2025-03-31 17:15:22 +08:00
Wang Meng Yang
8f2b6dfe95 Merge branch 'bugfix/fix_esp32_bt_disable_crash_v5.4' into 'release/v5.4'
fix(bt): Fix controller disable cause iwdt timeout on esp32 (v5.4)

See merge request espressif/esp-idf!37772
2025-03-31 17:14:52 +08:00
Wang Meng Yang
b1a3813698 Merge branch 'bugfix/fix_hid_reconnect_issue_v5.4' into 'release/v5.4'
feat(bt/bluedroid): Add Kconfig option to keep device bonding info when HID unplugging (v5.4)

See merge request espressif/esp-idf!37181
2025-03-31 17:14:40 +08:00
Wang Meng Yang
381379354d Merge branch 'bugfix/spp_mem_leak_v5.4' into 'release/v5.4'
fix(bt/bluedroid): fixed memory leaks in SPP callback mode (v5.4)

See merge request espressif/esp-idf!37385
2025-03-31 17:14:12 +08:00
Wang Meng Yang
b1659a5cd1 Merge branch 'bugfix/spp_free_server_slot_err_v5.4' into 'release/v5.4'
fix(bt/bluedroid): Fixed freeing spp server memory when disconnected(v5.4)

See merge request espressif/esp-idf!37608
2025-03-31 17:13:50 +08:00
Wang Meng Yang
d6a436c97a Merge branch 'bugfix/err_disc_state_changed_evt_v5.4' into 'release/v5.4'
fix(bt/bluedroid): fixed other events being reported when disconnected(v5.4)

See merge request espressif/esp-idf!37936
2025-03-31 17:13:48 +08:00
Island
4af23443e0 Merge branch 'feat/ble_read_long_value_v5.4' into 'release/v5.4'
feat(ble/bluedroid): Add Read Long Characteristic Values example (v5.4)

See merge request espressif/esp-idf!37489
2025-03-31 17:10:03 +08:00
Island
3fbc2b7bce Merge branch 'feat/optimize_ble_config_reduce_bin_v5.4' into 'release/v5.4'
Feat/optimize bluedroid host config and reduce bin size (v5.4)

See merge request espressif/esp-idf!37261
2025-03-31 17:09:50 +08:00
Island
55352b6b62 Merge branch 'bugfix/fix_ble_kconfig_v5.4' into 'release/v5.4'
fix(ble/controller): Fix BLE Kconfig on ESP32 to avoid unexpected behavior (v5.4)

See merge request espressif/esp-idf!37422
2025-03-31 17:08:42 +08:00
Island
08d2987db4 Merge branch 'bugfix/fix_ble_report_len_v5.4' into 'release/v5.4'
fix(ble/bluedroid): Fix adv data and scan rsp data not reported together in BLE active scan (v5.4)

See merge request espressif/esp-idf!37203
2025-03-31 17:08:30 +08:00
morris
21d470dd26 Merge branch 'fix/i2s_iram_safe_issue_while_use_psram_v5.4' into 'release/v5.4'
fix(i2s): fixed failure when dma is iram_safe but i2s not (v5.4)

See merge request espressif/esp-idf!38003
2025-03-31 17:07:43 +08:00
morris
70ab1ccdd0 Merge branch 'bugfix/ppa_srm_scale_frag_yuv420_v5.4' into 'release/v5.4'
fix(ppa): fix ppa srm potentially get blocked when scaling to YUV420 (v5.4)

See merge request espressif/esp-idf!37592
2025-03-31 17:05:23 +08:00
morris
8d446396bf Merge branch 'fix/jpeg_decoder_collective_backport_v5.4' into 'release/v5.4'
fix(jpeg_decoder): JPEG Decoder collective backport to v5.4

See merge request espressif/esp-idf!37509
2025-03-31 16:53:25 +08:00
morris
67a6fbc72e Merge branch 'fix/usb_phy_pull_override_backport_v5.4' into 'release/v5.4'
fix(usb_phy): Removed pad pull override config for Full-speed (backport to v5.4)

See merge request espressif/esp-idf!36776
2025-03-31 16:50:37 +08:00
morris
de3964a9c0 Merge branch 'bugfix/adc_oneshot_error_after_continuous_v5.4' into 'release/v5.4'
fix(adc): fix adc oneshot error after continuous v5.4

See merge request espressif/esp-idf!37143
2025-03-31 16:47:34 +08:00
morris
c3b4d5a895 Merge branch 'fix/rmt_lim_thres_incorrect_v5.4' into 'release/v5.4'
fix(rmt): fix the received symbols issue (v5.4)

See merge request espressif/esp-idf!37899
2025-03-31 16:45:28 +08:00
morris
74ec3b3c7f Merge branch 'docs/update_i2c_static_v5.4' into 'release/v5.4'
docs: Update static for i2c.rst (v5.4)

See merge request espressif/esp-idf!37764
2025-03-31 16:44:51 +08:00
morris
e29346014f Merge branch 'feat/add_temperature_calib_v5.4' into 'release/v5.4'
feat(temperature_sensor): Add temperature sensor calibration support (backport v5.4)

See merge request espressif/esp-idf!37311
2025-03-31 16:43:31 +08:00
morris
a8e166ec07 Merge branch 'feat/unilc_psram_s3_v5.4' into 'release/v5.4'
psram: supported UnilC octal psram on s3 (v5.4)

See merge request espressif/esp-idf!37859
2025-03-31 16:43:01 +08:00
morris
70e8afb9a1 Merge branch 'fix/fix_cam_iram_safe_compile_error_v5.4' into 'release/v5.4'
cam: fix cam iram safe compile error (v5.4)

See merge request espressif/esp-idf!37606
2025-03-31 16:42:44 +08:00
morris
2dd1f03b0d Merge branch 'bugfix/spi_lcd_dc_io_setup_v5.4' into 'release/v5.4'
fix(lcd): DC signal shouldn't affect the input path of the GPIO (v5.4)

See merge request espressif/esp-idf!37449
2025-03-31 16:40:17 +08:00
morris
7c7c96e815 Merge branch 'refactor/spi_remove_unnecessary_dependency_v5.4' into 'release/v5.4'
fix(spi): removed PERIPH_CTRL_FUNC_IN_IRAM dependency (v5.4)

See merge request espressif/esp-idf!37563
2025-03-31 16:39:13 +08:00
morris
f74b338539 Merge branch 'bugfix/missing_kconfig_definition_v5.4' into 'release/v5.4'
fix(i2c): add Kconfig to skip driver conflict check (v5.4)

See merge request espressif/esp-idf!37761
2025-03-31 16:39:04 +08:00
morris
ff74f67de4 Merge branch 'bugfix/usj_wrong_return_value_v5.4' into 'release/v5.4'
fix(usb_serial_jtag): wrong return value in usb_serial_jtag_write_bytes (v5.4)

See merge request espressif/esp-idf!37969
2025-03-31 16:38:22 +08:00
morris
2d582fec60 Merge branch 'refactor/gptimer_isr_logs_opt_int_v5.4' into 'release/v5.4'
feat(gptimer): make start and stop function idempotent (v5.4)

See merge request espressif/esp-idf!37248
2025-03-31 16:36:46 +08:00
morris
ddd8a5d348 Merge branch 'bugfix/rmt_simple_encoder_example_v5.4' into 'release/v5.4'
fix(example): wrong ws2812 reset duration (v5.4)

See merge request espressif/esp-idf!37466
2025-03-31 16:36:08 +08:00
morris
b59ecd5e3d Merge branch 'feat/enable_l2mem_burst_buffer_mode_v5.4' into 'release/v5.4'
improve AXI-ICM QoS function (v5.4)

See merge request espressif/esp-idf!37468
2025-03-31 16:35:49 +08:00
morris
3d650abcba Merge branch 'feat/can_bypass_buffer_align_check_v5.4' into 'release/v5.4'
feat(gdma): allow bypass the alignment check in the link driver (v5.4)

See merge request espressif/esp-idf!37423
2025-03-31 16:21:25 +08:00
Roland Dobai
13bc9ceec0 Merge branch 'change/move_deprecated_kconfig_checker_v5.4' into 'release/v5.4'
change: move check_deprecated_configs.py logic to esp-idf-kconfig (v5.4)

See merge request espressif/esp-idf!37405
2025-03-31 16:10:44 +08:00
Roland Dobai
215d90a87a Merge branch 'fix/fix_kconfig_files_v5.4' into 'release/v5.4'
fix(kconfig): Fix issues with Kconfig files (v5.4)

See merge request espressif/esp-idf!37575
2025-03-31 16:10:25 +08:00
Roland Dobai
43b42c6dfd Merge branch 'fix/extractall_deprecation_v5.4' into 'release/v5.4'
fix(idf_tools): Patch extractall() deprecation warning (v5.4)

See merge request espressif/esp-idf!37883
2025-03-31 16:10:08 +08:00
Roland Dobai
916d1d30a7 Merge branch 'fix/install_input_validation_v5.4' into 'release/v5.4'
fix(idf_tools): Validate input features (v5.4)

See merge request espressif/esp-idf!37889
2025-03-31 16:08:58 +08:00
Roland Dobai
6d4faa0956 Merge branch 'feat/deactivate_idf_env_every_run_v5.4' into 'release/v5.4'
feat(tools): Deactivate current ESP-IDF environment with every export run (v5.4)

See merge request espressif/esp-idf!38026
2025-03-31 16:08:39 +08:00
Roland Dobai
487b26a72e Merge branch 'fix/check_python_dependencies_v5.4' into 'release/v5.4'
fix(tools): handle packages with dots in their names during dependency checks (v5.4)

See merge request espressif/esp-idf!38062
2025-03-31 16:08:21 +08:00
Frantisek Hrbata
a30e3051fb fix(build): don't call enable_language() before project()
For the Linux target, we currently attempt to fallback to older C/CXX
lagnuage standards in the __build_set_lang_version() function. The
language standard support is checked using CMake's language-specific
functions, such as check_c_compiler_flag(). These functions require the
language to be enabled[1] in CMake beforehand, which is done by calling
project() or by enabling the languages later with enable_language(). At
present, we use enable_language() to enable C and CXX languages in
CMake, allowing us to set the standard early, before invoking project().
However, newer CMake versions (>3.29) issue a warning[2] if
enable_language() is called before project(), as noted in CMP0165[3].

It should generally be acceptable to call __build_set_lang_version()
after __project(), but doing so would alter the behavior of the
COMPILE_OPTIONS also for non-Linux targets. Currently, users can
add to COMPILE_OPTIONS even before calling project() in the project's
CMakeLists.txt and the options will be in the desired order. In other
words, appending to COMPILE_OPTIONS can occur either before or after
calling project() in the project's CMakeLists.txt, with the outcome
remaining consistent. This means the user's settings will appear later
and take priority. However, if __build_set_lang_version() is called
after __project(), the user's COMPILE_OPTIONS settings would be
overridden if set before calling project(). Our documentation[4] explicitly
states that COMPILE_OPTIONS and similar properties should be modified
using idf_build_set_property() after calling project() to prevent
default values from overwriting them.

Even with this guidance, some existing components that modify
COMPILE_OPTIONS before invoking project() might be impacted by this
change. Therefore, separate the language standard settings for non-Linux
and Linux targets. For non-Linux targets, these settings are applied in
__build_set_default_build_specifications(), maintaining the current
behavior. For the Linux target, the language standard is set with
__linux_build_set_lang_version() after calling __project(), ensuring the
languages are already enabled in CMake and no warning is issued. Since the Linux
target is still in preview, this approach should be acceptable,
especially with the existing documentation[4].

Closes https://github.com/espressif/esp-idf/issues/15488

[1] https://cmake.org/cmake/help/latest/manual/cmake-toolchains.7.html#languages
[2] https://gitlab.kitware.com/cmake/cmake/-/merge_requests/9396
[3] https://cmake.org/cmake/help/latest/policy/CMP0165.html#policy:CMP0165
[4] https://docs.espressif.com/projects/esp-idf/en/v5.4/esp32/api-guides/
    build-system.html#overriding-default-build-specifications

Signed-off-by: Frantisek Hrbata <frantisek.hrbata@espressif.com>
2025-03-31 16:06:06 +08:00
Chen Jichang
51cbe9291b fix(pcnt): remove the gpi0_reset_pin function 2025-03-30 13:48:02 +08:00
Chen Jichang
5a6e4760d4 fix(pcnt): update pcnt_reg on esp32h2 eco5 2025-03-30 13:48:01 +08:00
Peter Macko
a71141a250 ci: Update esp-env-v5.4 to Ubuntu 24.04 and handle related issues
- Allow test_pytest_linux failures
- Allow test_transport_on_host failures
- Fix deprecated C++ syntax by removing unused volatile variable in nvs_page_test
- Add x509_crt_bundle.S.o GNU-stack ld warning to ignore list
2025-03-28 15:59:44 +01:00
Abhinav Kudnar
a441421b2c fix(nimble): Fix conversion for min-max itvl of periodic adv param 2025-03-28 14:19:07 +08:00
xiongweichao
34e6333dd3 fix(bt/bluedroid): fix the issue of connection failure when initializing multiple profiles
- Due to the number of service security records exceeding the maximum value, the connection failed
2025-03-28 08:34:00 +08:00
xiongweichao
b48c152ca6 fix(bt/bluedroid): Fixed freeing spp server memory when disconnected 2025-03-28 08:20:01 +08:00
linruihao
e3bb3216df fix(bt): Fix controller disable cause iwdt timeout on esp32 2025-03-28 08:17:24 +08:00
Michael (XIAO Xufeng)
2f7dcd862a Merge branch 'update/version_5_4_1' into 'release/v5.4'
Update version to 5.4.1

See merge request espressif/esp-idf!38067
2025-03-28 02:04:54 +08:00
Song Ruo Jing
ac883027c3 fix(ledc): fix race condition in ledc_fade_stop causing assert failure
Closes https://github.com/espressif/esp-idf/issues/15580
2025-03-27 20:16:53 +08:00
Sudeep Mohanty
30f8649fb8 feat(freertos): Enable Amazon FreeRTOS SMP kernel for esp32c5 and esp32c61
This commit enables the Amazon SMP port for FreeRTOS for the esp32c5 and
esp32c61 targets.
2025-03-27 11:17:47 +01:00
Xiao Xufeng
4c2820d377 change(version): Update version to 5.4.1 2025-03-27 15:29:07 +08:00
Frantisek Hrbata
39ebccb7fb fix(tools): handle packages with dots in their names during dependency checks
The `setuptools` package starting with `v70.1.0`[1] contains built-in
`bdist_wheel` command. Before this version `setuptools` relied on the
`bdist_wheel` command implementation from the `wheel` package. Starting with
`setuptools` `v75.8.1` the `PEP 491`[3] restrictions on the distribution name
of a wheel package are enforced[4], replacting also `.` with `_`.  Note that
`PEP 491` actually allows `.` in the distribution name, but for some reason the
latest packaging docs[10][11] does not, stating that `.` should be replaced
with `_`. This was discussion here[12].

Also the `wheel` package starting with `v0.45.0`[5] is using the `bdist_wheel`
command from `setuptools`.  This means that any package which has `.` in its
distribution name, like `ruamel.yaml.clib`, can have different wheel name,
depending on which version of the `bdist_wheel` command was used.

The `bdist_wheel` command from setuptools prior `v75.8.1` or `wheel` prior
`v0.45.0` will keep the dots in distribution name preserved.  For exaple the
`ruamel.yaml.clib` package will have distribution name
`ruamel.yaml.clib-0.2.12.dist-info. Newer versions will replace the dots with
`_` according to [10][11], creating distribution like
`ruamel_yaml_clib-0.2.12.dist-info`.

From packaging point of view `ruamel.yaml.clib-0.2.12.dist-info` and
`ruamel_yaml_clib-0.2.12.dist-info` are the same packages, but this is not
reflected in `importlib.metadata` prior python 3.10[9], which does not perform
name normalization prior the distribution search. This causes the `version`
from `importlib.metadata` to fail on python prior the 3.10 version if the
package with dots in distribution name was generated with normalized paths with
newer `setuptools`. Note that the distribution name normalization was
backported to some later 3.9 python version.

Let's demonstrate this behavior on a simple package with the
`my.minimal.package` name.

```
my_minimal_package/
├── pkg
│   └── __init__.py
└── setup.py

from setuptools import setup, find_packages

setup(
    name='my.minimal.package',
    version='0.1.0',
    packages=find_packages(),
    install_requires=[],
    entry_points={},
)
```

With python 3.9.0 search for `my.minimal.package` fails because
of the missing name normalization.
```
docker run --rm -it --platform linux/x86_64 python:3.9.0 bash
python -m venv venv
. venv/bin/activate
pip install setuptools==v75.8.1
python setup.py bdist_wheel
pip install dist/my_minimal_package-0.1.0-py3-none-any.whl
python
Python 3.9.0 (default, Nov 18 2020, 13:28:38)
[GCC 8.3.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> from importlib.metadata import version as get_version
>>> get_version('my.minimal.package')
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/local/lib/python3.9/importlib/metadata.py", line 551, in version
    return distribution(distribution_name).version
  File "/usr/local/lib/python3.9/importlib/metadata.py", line 524, in distribution
    return Distribution.from_name(distribution_name)
  File "/usr/local/lib/python3.9/importlib/metadata.py", line 187, in from_name
    raise PackageNotFoundError(name)
importlib.metadata.PackageNotFoundError: my.minimal.package
>>> get_version('my_minimal_package')
'0.1.0'
```

With python 3.10.0 search for both `my.minimal.package` and
`my_minimal_package` succeeds.
```
docker run --rm -it --platform linux/x86_64 python:3.10.0 bash
python
Python 3.10.0 (default, Dec  3 2021, 00:21:30) [GCC 10.2.1 20210110] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> from importlib.metadata import version as get_version
>>> get_version('my.minimal.package')
'0.1.0'
>>> get_version('my_minimal_package')
'0.1.0'
```

In our `tools/check_python_dependencies.py` we cannot relay on the default
distribution finder, used in the `version` function from `importlib.metadata`,
to do name normalization on older python versions.  To cope with this,
implement a fallback version search. If `version` fails with
`PackageNotFoundError`, do the name normalization according to [10][11] and try
again.

Note: There is also a `wheel`[6][7] `v0.43.0` package embeded in `setuptools`
along with the new implementation[8].  This one seems to be used if the
external `wheel` package is not available but imported. TBH this is all kinda
messy and I may have overlooked something.

* [1] https://setuptools.pypa.io/en/stable/history.html#v70-1-0
* [2] https://setuptools.pypa.io/en/stable/history.html#v75-8-1
* [3] https://peps.python.org/pep-0491/#escaping-and-unicode
* [4] https://github.com/pypa/setuptools/pull/4766/files
* [5] https://wheel.readthedocs.io/en/stable/news.html
* [6] https://github.com/pypa/setuptools/blob/main/setuptools/_vendor/wheel/__init__.py
* [7] https://github.com/pypa/setuptools/issues/1386
* [8] https://github.com/pypa/setuptools/blob/main/setuptools/command/bdist_wheel.py
* [9] c6ca368867
* [10] https://packaging.python.org/en/latest/specifications/name-normalization/#name-normalization
* [11] https://packaging.python.org/en/latest/specifications/binary-distribution-format/
       #escaping-and-unicode
* [12] https://github.com/pypa/setuptools/issues/3777

Signed-off-by: Frantisek Hrbata <frantisek.hrbata@espressif.com>
2025-03-27 08:04:55 +01:00
Geng Yu Chao
ca75074cf7 feat(ble): Add Kconfig support for direction finding feature
(cherry picked from commit 8c7af817d89c254714dc9c93414499fead3717d3)

Co-authored-by: Geng Yuchao <gengyuchao@espressif.com>
2025-03-27 10:01:17 +05:30
Geng Yuchao
ba7e760473 feat(ble): Support Bluetooth LE 5.1 direction finding feature 2025-03-27 10:01:17 +05:30
Rahul Tank
e092561bc8 fix(nimble): Fix SMP command allocation 2025-03-27 10:01:17 +05:30
Shreeyash
105b3d7816 feat(nimble): support vendor event mask set and vendor HCI event on nimble host 2025-03-27 10:01:17 +05:30
Rahul Tank
68ef1bdfe0 fix(nimble): Fix incorrect event deinit in gatt caching discovery 2025-03-27 10:01:17 +05:30
Abhinav Kudnar
d714ad6bc1 fix(nimble): Exposed the ble_gap_wl_tx_add API to add a device in whitelist 2025-03-27 10:01:17 +05:30
Shen Weilong
15262e37a8 feat(bt): support hardware ecc acceleration for bt tinycrypt 2025-03-27 10:01:17 +05:30
Shen Weilong
6ea8cd1c0f change(bt): moved porting/ext/tinycrypt into common 2025-03-27 10:01:17 +05:30
Rahul Tank
5c982b0923 fix(nimble): Fix SC only pairing failure 2025-03-27 10:01:17 +05:30
Rahul Tank
26d71a5cbc fix(nimble): Handle probable release breaking change
link_estab event may be handled by customers in application and the previous would break it.
Revert few changes so as to not break the customer's code
2025-03-27 10:01:17 +05:30
Rahul Tank
54e22cfd49 fix(nimble): update data length after connection for all chips 2025-03-27 10:01:17 +05:30
Rahul Tank
20f902c953 fix(nimble): Keep only BLE_GAP_EVENT_CONNECT gap event 2025-03-27 10:01:17 +05:30
Alexey Lapshin
f810a440c9 fix(tools): remove unused variables in gdbinit.cmake
Closes https://github.com/espressif/esp-idf/issues/15035
2025-03-26 19:56:03 +07:00
Island
daf8117cb9 Merge branch 'feature/add_vendor_ble_cmd_definitions_5.4' into 'release/v5.4'
Feature/add vendor ble cmd definitions (v5.4)

See merge request espressif/esp-idf!37956
2025-03-26 16:39:28 +08:00
zwx
f519297704 fix(802.15.4) fix the behavior of the esp_ieee802154_set_txpower 2025-03-26 13:47:05 +08:00
Marek Fiala
8180dd00ab feat(tools): Remove PATH duplicity from first call of tools/activate.py 2025-03-25 14:16:16 +01:00
Marek Fiala
0cace3827b feat(tools): Deactivate current ESP-IDF environment with every export run
Unix systems only
2025-03-25 14:16:16 +01:00
laokaiyao
5bc5fd34d6 fix(i2s): add check for i2s DMA buffer array allocation
Closes https://github.com/espressif/esp-idf/issues/15607
2025-03-25 15:23:38 +08:00
laokaiyao
b22964cc4f fix(i2s): fixed mismatch of the i2s and gdma iram-safe config
Closes https://github.com/espressif/esp-idf/issues/15533
2025-03-25 15:17:47 +08:00
zhiweijian
f66322c9b7 feat(bt): fixed some doc error and add ocf parameters description 2025-03-25 14:27:02 +08:00
Tan Yan Quan
d3bc511c36 fix(openthread): add some bugfixes to pass CI pipeline 2025-03-25 13:33:03 +08:00
Tan Yan Quan
fceb55dd25 refactor(openthread): move isr_handle_timerX to esp_ieee802154_timer 2025-03-25 13:33:03 +08:00
Tan Yan Quan
b014901619 fix(openthread): calibrate CSL tx parameters 2025-03-25 13:33:03 +08:00
Tan Yan Quan
47cd629459 fix(openthread): modify ETM task numbers for esp32c5 2025-03-25 13:33:03 +08:00
Tan Yan Quan
469b5c14e4 fix(openthread): turn off rx for SSED running CSL during idle 2025-03-25 13:33:01 +08:00
Shen Weilong
e35dbbbee0 feat(bt): added definitions for bluetooth hci vendor commands and events 2025-03-24 20:28:22 +08:00
Shen Wei Long
da1372d691 feat(ble/controller): Deleted useless functions for ESP32-C2 2025-03-24 20:28:22 +08:00
morris
7164043140 fix(usb_serial_jtag): wrong return value in usb_serial_jtag_write_bytes
Closes https://github.com/espressif/esp-idf/issues/15620
2025-03-24 11:46:47 +08:00
Zhang Shuxian
50b5db12e3 docs: Add a note about TWAI multiple instances install 2025-03-24 10:54:29 +08:00
Shen Wei Long
6d9c2b9c0f feat(ble/controller): Deleted useless functions for ESP32-C6/C61/H2/C5 2025-03-21 19:56:59 +08:00
zhiweijian
119048bb75 fix(bt): Update bt lib for ESP32-C3 and ESP32-S3 (d74042a8)
- Remove unused functions in the controller
2025-03-21 19:44:30 +08:00
baohongde
57bcbbb449 feat(bt): added definitions for BR/EDR hci vendor commands and events 2025-03-21 19:32:22 +08:00
chenjianhua
bc38724221 fix(bt): Update bt lib for ESP32(dc1cd581)
- Remove unused functions in the controller
- Add an SDK config for the minimum size of encryption key
2025-03-21 19:29:32 +08:00
Jiang Jiang Jian
8b80e26f4d Merge branch 'bugfix/11r_compile_error_v5.4' into 'release/v5.4'
fix(wifi): Fixed compilation error when 11KV is disabled and 11R is enabled (v5.4)

See merge request espressif/esp-idf!37865
2025-03-21 17:38:45 +08:00
Jiang Jiang Jian
74eadefb1a Merge branch 'bugfix/fix_github_cert_verification_simpleota_v5.4' into 'release/v5.4'
fix: failing Github certificate verification (v5.4)

See merge request espressif/esp-idf!37824
2025-03-21 16:55:17 +08:00
Jiang Jiang Jian
b1d0ffba15 Merge branch 'feat/add_protocomm_sec_patch_config_v5.4' into 'release/v5.4'
feat(protocomm): add (hidden) config option to indicate security patch feature (v5.4)

See merge request espressif/esp-idf!37790
2025-03-21 16:54:50 +08:00
xiongweichao
e74cae7016 fix(bt/bluedroid): fixed other events being reported when disconnected
- Since no initial value is assigned, the variable evt is a random value,
causing the ESP_BT_GAP_DISC_STATE_CHANGED_EVT event to be reported when
the connection is disconnected.
2025-03-21 11:11:37 +08:00
Sudeep Mohanty
3f5f6ec13e fix(ringbuf): xRingbufferReceive() crashes for allow-split buffers
This commit adds an assert check to xRingbufferReceive() and
xRingbufferReceiveFromISR() functions to prevent them from being used to
retrieve items from an allow-split buffer. Corresponding documentation
has also been updated.
2025-03-20 11:48:59 +01:00
Xu Si Yu
db3840e94d feat(tcp_transport): add an api to configure the addr family 2025-03-20 16:07:54 +08:00
Chen Jichang
916af811f4 fix(rmt): fix the received symbols issue 2025-03-20 10:36:45 +08:00
Radim Karniš
1aeb50d497 fix(idf_tools): Validate input features 2025-03-19 21:44:18 +01:00
Radim Karniš
a262ce2cc7 fix(idf_tools): Patch extractall() deprecation warning 2025-03-19 13:48:15 +01:00
luaijun
c8508e992f ci(c2/c3): add major eco version tests 2025-03-19 18:40:21 +08:00
yiwenxiu
8b72fa3c17 feat(openthread): fix ci avahi service cases issue 2025-03-19 18:08:02 +08:00
Kapil Gupta
a2d0171a17 ci(wifi): Add builds for FT, RRM and WNM configs 2025-03-19 12:43:30 +05:30
Kapil Gupta
24fed6d3c2 fix(wifi): Fixed compilation error when 11R is enabled without 11KV 2025-03-19 12:43:20 +05:30
armando
4bd0d04c2f feat(psram): supported new octal psram on s3 2025-03-19 10:20:44 +08:00
Zhao Wei Liang
86001719b3 feat(ble): change nimble whitelist max size to 31
(cherry picked from commit 93357e8613)

Co-authored-by: zwl <zhaoweiliang@espressif.com>
2025-03-18 16:05:00 +08:00
Zhao Wei Liang
2662cdd232 feat(ble): change whitelist max size to 31 on ESP32-C5
(cherry picked from commit fdae270427)

Co-authored-by: zwl <zhaoweiliang@espressif.com>
2025-03-18 16:04:58 +08:00
Zhao Wei Liang
8297b40cf5 feat(ble): change whitelist max size to 31 on ESP32-C2
(cherry picked from commit 578f2358c6)

Co-authored-by: zwl <zhaoweiliang@espressif.com>
2025-03-18 16:04:56 +08:00
Zhao Wei Liang
1fe9c33ea2 feat(ble): change whitelist max size to 31 on ESP32-C6
(cherry picked from commit 2b435687b0)

Co-authored-by: zwl <zhaoweiliang@espressif.com>
2025-03-18 16:04:53 +08:00
Zhao Wei Liang
11aca2398b fix(ble): Fixed warning that the gpio is not usable when reconfig hci uart pin
(cherry picked from commit 57417ca30f)

Co-authored-by: zwl <zhaoweiliang@espressif.com>
2025-03-18 16:04:51 +08:00
Zhao Wei Liang
5d5c0209e6 fix(ble): fixed hci driver stack protection fault issue on ESP32-C5
(cherry picked from commit 132e0d6695)

Co-authored-by: zwl <zhaoweiliang@espressif.com>
2025-03-18 16:04:49 +08:00
Zhao Wei Liang
bd1223cc91 fix(ble): fixed hci driver stack protection fault issue on ESP32-C2
(cherry picked from commit afd44d14b9)

Co-authored-by: zwl <zhaoweiliang@espressif.com>
2025-03-18 16:04:47 +08:00
Zhao Wei Liang
f496072977 fix(ble): fixed hci driver stack protection fault issue on ESP32-C6
(cherry picked from commit ec4a1324f5)

Co-authored-by: zwl <zhaoweiliang@espressif.com>
2025-03-18 16:04:44 +08:00
Zhao Wei Liang
1626f36867 fix(ble): delete ble_hci_trans header file
(cherry picked from commit 327182e3e6)

Co-authored-by: zwl <zhaoweiliang@espressif.com>
2025-03-18 16:04:42 +08:00
Zhao Wei Liang
abc7beac70 fix(ble): fixed hci assertion issue when uart interference occurs
(cherry picked from commit 84f0b39e4d)

Co-authored-by: zwl <zhaoweiliang@espressif.com>
2025-03-18 16:04:40 +08:00
Ashish Sharma
a83a0ab02b fix(component/mbedtls): Adds github root cert to cmn_crt_authorities.csv 2025-03-18 14:36:18 +08:00
Mahavir Jain
291a008840 feat(protocomm): add (hidden) config option to indicate security patch feature 2025-03-17 13:30:45 +05:30
peter.marcisovsky
1b4fd125c4 fix(jpeg_decoder): Correctly handle invalid 0xffff JPEG marker 2025-03-14 22:16:27 +08:00
peter.marcisovsky
16d16320ce feat(jpeg_decode): Add support for default Huffman tables
- In case of a missing Huffman table, while decoding a JPEG image
    - Define a default Huff table and add it to JPEG image header
2025-03-14 22:16:27 +08:00
peter.marcisovsky
52f380741c feat(jpeg_decoder): Correctly set JPEG restart interval 2025-03-14 22:16:27 +08:00
Island
5cbd2a3877 Merge branch 'bugfix/reduce_controller_bin_size_v5.4' into 'release/v5.4'
fix(ble/controller): reduce controller bin size (backport v5.4)

See merge request espressif/esp-idf!37754
2025-03-14 19:26:56 +08:00
zhanghaipeng
cdefff9cc5 feat(ble/bluedroid): Support read periodic advertiser list size command 2025-03-14 18:03:31 +08:00
zhiweijian
7f5af25348 feat(ble/bluedroid): reduce bluedrois host bin size and disable BLE_HOST_BG_CONNECT_EN 2025-03-14 18:03:31 +08:00
zhiweijian
85fe2c584b feat(ble/bluedroid): disable bluedroid host unused functions 2025-03-14 18:03:31 +08:00
zhiweijian
694ed47dbb feat(bt/bluedroid): optimize bluedroid menuconfig 2025-03-14 18:03:31 +08:00
zhiweijian
388626019e feat(bt/bluedroid): delete unused host congest check 2025-03-14 18:03:31 +08:00
Zhang Shuxian
3bb893414c docs: Update static for i2c.rst 2025-03-14 12:00:40 +08:00
morris
eca61e07ce fix(i2c): add Kconfig to skip driver conflict check 2025-03-14 11:17:58 +08:00
zhiweijian
c26ce742cf fix(ble/controller): reduce controller bin size 2025-03-14 11:10:20 +08:00
morris
9b493740ab Merge branch 'fix/change_pm_lock_type_v5.4' into 'release/v5.4'
fix(pm): use CPU lock in dirvers use axi dma to access psram (v5.4)

See merge request espressif/esp-idf!37712
2025-03-13 13:51:08 +08:00
Chen Jichang
3d55047a09 fix(drivers): use CPU_MAX lock in dirvers use axi dma to access psram 2025-03-13 11:20:27 +08:00
morris
2bed64fafc fix(axi_icm): qos can be applied to read and write independently 2025-03-12 21:36:53 +08:00
Tomáš Rohlínek
8e0239f04b fix(storage/console): fix test configuration 2025-03-12 20:06:31 +08:00
Tomáš Rohlínek
c6d24bddf7 fix(storage/vfs_console): stop new console opens from overwriting existing fds 2025-03-12 20:06:31 +08:00
Ivan Grokhotkov
c27683eb98 test(sdmmc): add test for high-prio task busy while writing
Related to https://github.com/espressif/esp-idf/issues/13934
2025-03-12 10:30:58 +08:00
Ivan Grokhotkov
4bd2322993 fix(sdmmc): move DMA descriptor refilling into the ISR
Previously, as DMA descriptors were processed, the task performing
SDMMC transfer would get woken up and would refill the descriptors.
This design didn't work correctly when higher priority tasks occupied
the CPU for too long, resulting in SDMMC transfer timing out.

This change moves DMA descriptor refilling into SDMMC ISR. Now the
"DMA done" interrupt is delivered back to task context only when
the entire transfer is completed.

Closes https://github.com/espressif/esp-idf/issues/13934
2025-03-12 10:30:53 +08:00
armando
53d019563b refactor(psram): rename .bss .noinit segments to sections
Closes https://github.com/espressif/esp-idf/pull/15513
2025-03-11 11:43:01 +08:00
Erki Aring
d23549db4c fix(psram): correct heap vaddr calculation
- fixes https://github.com/espressif/esp-idf/issues/15496

Signed-off-by: armando <douyiwen@espressif.com>
2025-03-11 11:42:57 +08:00
zwx
959dbe37ad feat(802.15.4): configure tx on delay using phylib impl 2025-03-11 11:36:11 +08:00
Island
061ba0c99e Merge branch 'bugfix/disable_dbg_hci_cmd_on_esp32_v5.4' into 'release/v5.4'
Disable debug vendor hci command on ESP32 (v5.4)

See merge request espressif/esp-idf!37630
2025-03-11 11:10:51 +08:00
Jiang Jiang Jian
7c0e10ba41 Merge branch 'bugfix/fix_some_wifi_bugs_202502_v5.4' into 'release/v5.4'
fix(sniffer): fix channel in rx_ctrl is zero when using sniffer(Backport v5.4)

See merge request espressif/esp-idf!37568
2025-03-11 10:41:30 +08:00
Jiang Jiang Jian
4f39b2476e Merge branch 'bugfix/wps_reconnect_failure_v5.4' into 'release/v5.4'
fix(wpa_suppplicant): Fix for issue in wps reconnection (Backport v5.4)

See merge request espressif/esp-idf!37641
2025-03-11 10:40:45 +08:00
Jiang Jiang Jian
f8843158b2 Merge branch 'bugfix/provisioning_sec2_aes_iv_usage_v5.4' into 'release/v5.4'
fix(provisioning): fix incorrect AES-GCM IV usage in security2 scheme (v5.4)

See merge request espressif/esp-idf!37613
2025-03-11 10:40:27 +08:00
Jiang Jiang Jian
8e031cf8c3 Merge branch 'fix/fix_esp32s3_reboot_cache_failure_v5.4' into 'release/v5.4'
fix(esp_system): fix possible cache_error by another core accessing flash in esp_restart (v5.4)

See merge request espressif/esp-idf!37586
2025-03-10 21:04:24 +08:00
Sarvesh Bodakhe
f86473e255 fix(wifi): Resolved WPS connectivity issue with pre-connected stations
This fixes the issue where station was not able connect using WPS if it was
already in connected state.

wifi_wps_scan_done() issues an esp_wifi_disconnect() before
calling esp_wifi_connect() to associate with the newly discovered AP. This
behavior incorrectly triggered a failure event (WIFI_EVENT_STA_WPS_ER_FAILED)
even though the disconnection was part of the normal WPS flow. This commit
prevents sending the false failure event, ensuring expected WPS behavior.
2025-03-10 14:58:12 +05:30
Aditi
24f00874af fix(wpa_suppplicant): Add fix for issue in wps reconnection 2025-03-10 14:58:06 +05:30
Song Ruo Jing
e774dbfd0f fix(uart): LP UART does not have the pre-divider for its clock source
Closes https://github.com/espressif/esp-idf/issues/15427
2025-03-10 15:29:09 +08:00
chenjianhua
6bad67bf3c fix(bt): Update bt lib for ESP32(e250cf1)
- Disable debug vendor hci command
2025-03-10 15:23:42 +08:00
gongyantao
8eab42d7e1 fix(bt): fixed some issues in bt controller
- fixed the issue where the NULL pointer was deferenced in lc_free state
- avoid accessing released ACL resources in SCO logic
2025-03-10 15:23:33 +08:00
Jin Cheng
9d59600746 fix(bt/controller): fixed some controller bugs on ESP32.
1. added a VSC to control whether to initiate lmp_auto_rate
        - Closes https://github.com/espressif/esp-idf/issues/15133
    2. fixed EA resource cleanup error after SNIFF negotiation failure
        - Closes https://github.com/espressif/esp-idf/issues/13605
    3. removed an assertion in SCO data TX handler after disconnection
        - Closes https://github.com/espressif/esp-idf/issues/15176
2025-03-10 15:23:17 +08:00
shenmengjing
aa60465e13 docs(provisioning): Sync CN translation and EN source 2025-03-10 09:29:47 +05:30
Mahavir Jain
2469db58a9 fix(esp_local_ctrl): update for changes in protocomm security2 scheme 2025-03-10 09:29:44 +05:30
Mahavir Jain
109532bbf9 fix(docs): update for changes in provisioning security2 scheme 2025-03-10 09:29:42 +05:30
Mahavir Jain
6d749486b9 fix(provisioning): fix incorrect AES-GCM IV usage in security2 scheme
Using same IV in AES-GCM across multiple invocation of
encryption/decryption operations can pose a security risk. It can help
to reveal co-relation between different plaintexts.

This commit introduces a change to use part of IV as a monotonic
counter, which must be incremented after every AES-GCM invocation
on both the client and the device side.

Concept of patch version for a security scheme has been introduced here
which can help to differentiate a protocol behavior for the provisioning
entity. The security patch version will be available in the JSON
response for `proto-ver` endpoint request with the field
`sec_patch_ver`.

Please refer to documentation for more details on the changes required
on the provisioning entity side (e.g., PhoneApps).
2025-03-10 09:29:39 +05:30
Mahavir Jain
2fa5c7d9eb fix(protocomm): memory leak issue for session command0 failure case 2025-03-10 09:29:35 +05:30
wuzhenghui
6de3fde3c2 fix(esp_system): fix possible cache_error by another core accessing flash in esp_restart 2025-03-10 11:40:10 +08:00
yinqingzhao
e72c3b4ee4 fix(sniffer): fix channel in rx_ctrl is zero when using sniffer 2025-03-10 11:39:33 +08:00
Jiang Jiang Jian
9fcb33d3ac Merge branch 'bugfix/c5_libphy_20250124_v5.4' into 'release/v5.4'
change(ble): update c5 beta5 lib phy to phy_version: 1 103, 48ac5755, Feb 22 2025 (v5.4)

See merge request espressif/esp-idf!37514
2025-03-10 11:38:57 +08:00
Jiang Jiang Jian
e1b32b4363 Merge branch 'fix/sleep_cpu_mspi_freq_mismatch_issue_p4_v5.4' into 'release/v5.4'
mspi: fixed cpu and mspi freq mismatch issue when in dfs/sleep on p4 (v5.4)

See merge request espressif/esp-idf!37583
2025-03-10 11:27:44 +08:00
armando
b806496635 test(cam): added cache-safe build test 2025-03-10 10:34:36 +08:00
armando
a446e78469 refactor(cam): rename IRAM-Safe to Cache-Safe 2025-03-10 10:34:32 +08:00
armando
20014ea97c fix(cam): fixed cam iram safe build error 2025-03-10 10:34:27 +08:00
Erhan Kurubas
38d17fe1cd test(apptrace): enable esp32c5 and esp32c61 tests 2025-03-09 17:28:27 +01:00
Erhan Kurubas
288dfc7c2b test(apptrace): run tests from custom OpenOCD class 2025-03-08 21:00:14 +01:00
wuzhenghui
7f88cf3ee9 change(esp_hw_support): only do mpll disable in lightsleep process 2025-03-08 14:06:12 +08:00
Armando
419e8b2e20 fix(mspi): fixed cpu and mspi freq mismatch issue when in dfs/sleep on p4 2025-03-08 14:06:09 +08:00
Song Ruo Jing
d8c1d9f603 fix(gpio): fix bad bit shift operation and OOB (h2) in io_mux.c 2025-03-07 21:16:18 +08:00
Song Ruo Jing
3d08efd83a refactor(uart): increase test app memory leak tolerance 2025-03-07 21:15:51 +08:00
Song Ruo Jing
9f08e5e9d8 fix(ppa): fix ppa srm potentially get blocked when scaling to YUV420
YUV420 requires scale_x_frag, scale_y_frag be even
2025-03-07 21:04:49 +08:00
Song Ruo Jing
9004e5009a fix(dma2d): dma2d_force_end should not crash when rx channel is idle 2025-03-07 21:04:49 +08:00
Song Ruo Jing
24747868dd docs(uart): aligned the config order in the programming guide with examples
Closes https://github.com/espressif/esp-idf/issues/13182
2025-03-07 21:01:16 +08:00
Song Ruo Jing
602393dfea fix(uart): enlarged task stack size for uart_async_rxtxtasks example
Meanwhile, added CI pytest for some UART examples

Closes https://github.com/espressif/esp-idf/issues/15363
2025-03-07 21:01:16 +08:00
Song Ruo Jing
9aaa4f9e9c fix(ledc): overflowed integer argument in ledc_hal_clear_left_off_fade_param 2025-03-07 20:33:01 +08:00
Guillaume Souchere
6545e21f4b fix(esp_hw_support): esp_ptr_in_rtc_iram_fast check to return false
esp_ptr_in_rtc_iram_fast logic should be executed if
SOC_RTC_FAST_MEM_SUPPORTED is set but it should also be executed
if IRAM and DRAM region mapping is the same. Remove the
SOC_RTC_IRAM_LOW != SOC_RTC_DRAM_LOW part of the check.

Update heap component to use the modify function appropriately.
2025-03-07 12:21:22 +01:00
Jan Beran
f943491014 fix(kconfig): Fix issues with Kconfig files 2025-03-07 11:31:37 +01:00
Song Ruo Jing
bea4615d0c docs(ledc): add notes for ledc_set_fade_with_time API reference
Closes https://github.com/espressif/esp-idf/issues/15085
2025-03-07 17:22:40 +08:00
Song Ruo Jing
b2dbcd7804 fix(ledc): left-off gamma ram registers should be cleared
Hardware reads in (range_number+1) fade parameter registers, which could
cause output waveform error.
2025-03-07 17:22:39 +08:00
Song Ruo Jing
351e11ebd2 fix(ledc): updated docs for esp32h2 eco5 bugfix 2025-03-07 17:22:39 +08:00
morris
22d2b85c11 fix(spi): removed PERIPH_CTRL_FUNC_IN_IRAM dependency 2025-03-07 15:44:43 +08:00
Jiang Jiang Jian
3f69abdb7e Merge branch 'bugfix/11kv_config_break_v5.4' into 'release/v5.4'
fix(esp_wifi): Correctly break 11kv config into wnm and rrm configs (v5.4)

See merge request espressif/esp-idf!37478
2025-03-07 10:55:28 +08:00
Sudeep Mohanty
cd887ef59a fix(panic_handler): Updated panic handler to use RTC WDT
This commit updates the following:
- Updates the panic handler to use only the RTC WDT to reset the system.
- Refactors some of the panic handler code.
- Updates Bluetooth files where in they now feed the WDTs instead of
  reconfiguring them.
- Removes some unnecessary configuration of WDTs from various files.
- Added a unit test to verify that the system does not lock up when the
  panic handler is stuck.
- Updates the memprot unit tests to work with the refactored panic
  handler.

Closes https://github.com/espressif/esp-idf/issues/15166
Closes https://github.com/espressif/esp-idf/issues/15018
Closes https://github.com/espressif/esp-idf/issues/10110
2025-03-06 09:17:26 +01:00
Christopher Durand
72d4204a6f fix(esp_http_client): Fix invalid content length header
In case a request with no content is sent after one with the content
length header set the header of the previous request is sent with the
subsequent one.
For instance, an empty GET request after a PUT request will still
indicate the non-zero content length of the previous request.

This is fixed by clearing the content length header when it shouldn't be
set.
2025-03-06 12:18:20 +05:30
Jiang Jiang Jian
b0306575a8 Merge branch 'fix/fix_ot_uart_init_bug_v5.4' into 'release/v5.4'
fix(openthread): fix a bug of openthread uart init port (v5.4)

See merge request espressif/esp-idf!37322
2025-03-06 14:44:11 +08:00
Jiang Jiang Jian
3144cef12e Merge branch 'fix/secure_boot_verfication_failure_sig_block_key_digest_mismatch_combo_v5.4' into 'release/v5.4'
fix(bootloader_support): Fix SB verification failure when application is not signed with the boot loader's first key (v5.4)

See merge request espressif/esp-idf!37497
2025-03-06 10:36:01 +08:00
Jiang Jiang Jian
2ed77df856 Merge branch 'fix/fix_bad_dslp_param_after_lightsleep_v5.4' into 'release/v5.4'
fix(esp_hw_support): Fixed the issue that light sleep destroyed the parameters of subsequent deep sleep (v5.4)

See merge request espressif/esp-idf!37302
2025-03-06 10:35:11 +08:00
Erhan Kurubas
fcd48a71d7 test(hmac_soft_jtag): check jtag connection status properly 2025-03-05 15:34:04 +01:00
Erhan Kurubas
61f30a58fb feat(tools): update openocd version to v0.12.0-esp32-20250226 2025-03-05 15:31:26 +01:00
Zhou Xiao
78f615f979 change(ble): update c5 beta5 lib phy to phy_version: 1 103, 48ac5755, Feb 22 2025 2025-03-05 19:55:42 +08:00
Kapil Gupta
793fe61c81 fix(esp_wifi): Prevent flushing of FT data mistakenly 2025-03-05 12:41:10 +05:30
Kapil Gupta
2ed843bdd2 fix(esp_wifi): Correctly break 11kv config into wnm and rrm configs 2025-03-05 12:40:54 +05:30
Shreeyash
7650812920 feat(nimble): Allow BLE SPP Client to subscribe to the server 2025-03-05 11:38:16 +05:30
harshal.patil
0076bb0289 fix(secure_boot): Fix SB verification failure when sig block and key digest mismatch
- Secure boot V2 verification failed when multiple keys are used to sign the bootloader
  and the application is signed with a key other than the first key that is used to
  sign the bootloader.
- The issue was introduced as a regression from the commit `ff16ce43`.
2025-03-05 11:26:33 +05:30
harshal.patil
0cdcd3a0fb fix(esp_psram): Fix incorrect calculation of used XIP PSRAM pages
The functions mmu_config_psram_text_segment() and mmu_config_psram_rodata_segment()
used to return the value of next start page in *out_page instead of the number
of pages used as mentioned in the documentation
2025-03-05 10:37:21 +05:30
Jiang Jiang Jian
5afa94872b Merge branch 'fix/sdmmc_concurrency_slot_count_doesnt_work_v5.4' into 'release/v5.4'
fix(sdmmc): SDMMC concurrency change active slot only after the slot is initialized (v5.4)

See merge request espressif/esp-idf!36653
2025-03-05 10:38:08 +08:00
Zhang Hai Peng
52390f9b3e feat(ble/bluedroid): Add Read Long Characteristic Values example
(cherry picked from commit 32e4fb79e8)

Co-authored-by: zhanghaipeng <zhanghaipeng@espressif.com>
2025-03-04 22:13:41 +08:00
Sudeep Mohanty
528b1b3c37 fix(lp_uart): Update the lp_core_uart_tx_flush() API to wait for Tx idle
This commit updates the lp_core_uart_tx_flush() API to wait for the Tx line
to become idle, therefore confirming that all bytes are sent out.

Closes https://github.com/espressif/esp-idf/issues/15433
2025-03-04 08:52:22 +01:00
morris
fe2bf07209 fix(example): wrong ws2812 reset duration
Closes https://github.com/espressif/esp-idf/issues/15498
2025-03-04 11:10:44 +08:00
morris
f305313922 fix(lcd): DC signal shound't affect the input path of the GPIO
With this fix, user can use the same GPIO for both LCD DC output and SPI
MISO input.

Closes https://github.com/espressif/esp-idf/issues/15478
2025-03-03 18:29:17 +08:00
Zhang Shuxian
cbbfdb1e3d docs: Provide CN translation for nvs bootloader and fix broken link 2025-03-03 17:10:30 +08:00
Jiang Jiang Jian
d4aa25a38e Merge branch 'docs/fix_some_coexist_doc_issue_v5.4' into 'release/v5.4'
docs(coex): update rf coexistence documents (v5.4)

See merge request espressif/esp-idf!37344
2025-03-03 11:39:01 +08:00
Jiang Jiang Jian
57d976b7f3 Merge branch 'feat/add_h2_config_and_maxver_for_v5.4' into 'release/v5.4'
feat(soc): add Kconfig rev min option and increase max ver for H2 v1.2 (v5.4)

See merge request espressif/esp-idf!36416
2025-03-03 11:38:41 +08:00
Jiang Jiang Jian
154b7548cb Merge branch 'docs/wifi_wpa3_ent_migration_guide_backport_v5.4' into 'release/v5.4'
docs: Add migration guide for WPA3-Enterprise authentication modes for v5.4 (Backport v5.4)

See merge request espressif/esp-idf!37189
2025-03-03 11:36:51 +08:00
morris
9a93c89945 feat(gdma): allow bypass the alignment check in the link driver
Closes https://github.com/espressif/esp-idf/issues/15228
2025-03-03 11:21:22 +08:00
Zhang Hai Peng
0eb4b9aa15 fix(ble/controller): Fix BLE Kconfig on ESP32 to avoid unexpected behavior
(cherry picked from commit 9496949132)

Co-authored-by: zhanghaipeng <zhanghaipeng@espressif.com>
2025-03-03 11:13:46 +08:00
Jan Beran
f7bf1a992c change: move check_deprecated_configs.py file to esp-idf-kconfig 2025-02-28 14:51:09 +01:00
wuzhenghui
e549dca8ae change(doc): added more usage notes & warings about PM_POWER_DOWN_PERIPHERAL_IN_LIGHT_SLEEP 2025-02-28 16:43:02 +08:00
peter.marcisovsky
aae16c1cfd fix(usb_host): Fixing dererence to OTG_NUM_HOST_CHAN in docs 2025-02-28 09:21:27 +01:00
Jin Cheng
8c1b39f2df fix(bt/bluedroid): fixed memory leaks in SPP callback mode 2025-02-28 16:11:33 +08:00
Tomas Rezucha
141c4414ee fix(usb/phy): Fixed crash on external PHY init with speed != UNDEFINED
Also deprecated usb_phy_otg_dev_set_speed()
and usb_phy_action() which are no longer used in esp-idf
2025-02-27 15:08:28 +01:00
Roman Leonov
894cecf174 fix(usb_phy): Removed pad pull override config for Full-speed 2025-02-27 15:08:28 +01:00
Sudeep Mohanty
3675245a23 fix(ulp-riscv): Fixed ADC oneshot initialization for ULP RISC-V
This commit fixes a bug in the ADC oneshot driver initialization for the
ULP RISC-V.
2025-02-27 15:06:18 +01:00
linruihao
7b95c5d571 docs(coex): update rf coexistence documents
- remove BLE connecting state in coexistence scenario
- remove WIFI section in H2 docs
2025-02-27 11:06:49 +08:00
Shu Chen
7e31189ede docs(coex): add the supported coexistence scenario for Wi-Fi and 802.15.4 2025-02-27 11:05:51 +08:00
Ondrej Kosta
0121f4fc40 fix(esp_eth): init Ethernet after repl init in iperf example 2025-02-26 13:38:18 +00:00
Xu Si Yu
99fe472c8f fix(openthread): fix a bug of openthread uart init port 2025-02-26 19:22:02 +08:00
C.S.M
44315b715c feat(temperature_sensor): Add temperature sensor calibration support 2025-02-26 17:50:54 +08:00
wuzhenghui
6e2b2a0e54 fix(esp_hw_support): fix lightsleep destroys deepsleep rtc parameters 2025-02-26 16:51:46 +08:00
Xiao Xufeng
e1ef60deef feat(soc): add Kconfig rev min option and increase max ver for H2 v1.2 2025-02-26 15:48:00 +08:00
Zhao Wei Liang
86585699a7 feat(ble): add a debug way to retain scene on ESP32-C5
(cherry picked from commit da07b1fabe)

Co-authored-by: zwl <zhaoweiliang@espressif.com>
2025-02-26 15:03:49 +08:00
Zhao Wei Liang
ea463572a2 feat(ble): add a debug way to retain scene on ESP32-C6
(cherry picked from commit bc299e784c)

Co-authored-by: zwl <zhaoweiliang@espressif.com>
2025-02-26 15:03:46 +08:00
Zhao Wei Liang
907e11c880 fix(ble): fixed common kconfig error when controller enable only
(cherry picked from commit 5b8ac71ace)

Co-authored-by: zwl <zhaoweiliang@espressif.com>
2025-02-26 15:03:44 +08:00
Chen Jichang
fc5d2e1bae refactor(rmt): set group clock prescale dynamically
Closes https://github.com/espressif/esp-idf/issues/14760
2025-02-26 14:17:12 +08:00
morris
46cc737580 feat(gptimer): make start and stop function idempotent
Closes https://github.com/espressif/esp-idf/issues/12325
Closes https://github.com/espressif/esp-idf/issues/13486
2025-02-25 11:41:56 +08:00
Erhan Kurubas
a289d1e0fe docs(jtag): add esp32p4 usb jtag pin numbers 2025-02-24 14:44:19 +01:00
Zhang Shuxian
fcfa85cb77 docs: Update CN translation for fatfs 2025-02-21 21:35:06 +08:00
Adam Múdry
d4c9da31e2 feat(fatfs): Add Kconfig options to set FF_FS_NOFSINFO value
Closes https://github.com/espressif/esp-idf/issues/15241
2025-02-21 21:35:06 +08:00
Sarvesh Bodakhe
03e9656ce0 docs: Add migration guide for WPA3-Enterprise authentication modes for v5.4 2025-02-21 16:58:04 +05:30
gongyantao
65f46b68b4 change(bt): optimize the macro definition for sdp_max_pad_len 2025-02-21 17:39:04 +08:00
Mitch Cairns
018aae7c3e feat(bt): Implement SDK Config SDP size options
Closes https://github.com/espressif/esp-idf/pull/15321
2025-02-21 17:39:04 +08:00
nilesh.kale
c107fa24f7 feat(app_update): enabled ota resumption feature
This commit added ota resumption changes for app_update
component. This commit is specifically added for release/v5.4.
2025-02-21 14:38:54 +05:30
Zhang Hai Peng
c2f399b4b0 fix(ble/bluedroid): Fix adv data and scan rsp data not reported together in BLE active scan
(cherry picked from commit 7f2cedc048)

Co-authored-by: zhanghaipeng <zhanghaipeng@espressif.com>
2025-02-21 16:13:53 +08:00
Jiang Jiang Jian
0ba53566fa Merge branch 'fix/fix_s2_s3_rtc_iomux_clock_management_v5.4' into 'release/v5.4'
fix(esp_hw_support): fix esp32s2/esp32s3 RTC IOMUX clock management (v5.4)

See merge request espressif/esp-idf!37145
2025-02-21 12:19:07 +08:00
linruihao
0c95b541e8 feat(bt/bluedroid): Add Kconfig option to keep device bonding info when HID unplugging 2025-02-21 11:49:48 +08:00
Jiang Jiang Jian
aa97a0fc3c Merge branch 'bugfix/fix_i2s_std_initializer_order_for_cpp_compiler_v5.4' into 'release/v5.4'
fix(i2s): fixed i2s_std initializer order for cpp compiler (v5.4)

See merge request espressif/esp-idf!37047
2025-02-21 11:48:58 +08:00
morris
6150ea9a43 Merge branch 'bugfix/fix_cache_count_flash_pages_patchs_return_wrong_value_v5.4' into 'release/v5.4'
fix(rom): Fix s2 and s3 Cache_Count_Flash_Pages rom function wrapper (v5.4)

See merge request espressif/esp-idf!37153
2025-02-21 10:17:27 +08:00
Jiang Jiang Jian
62db86d229 Merge branch 'fix/memprot-config-used-in-memory-layouts_v5.4' into 'release/v5.4'
fix(heap): Fix wrong config to enable MALLOC_CAP_EXEC in memory_layout.c (backport  v5.4)

See merge request espressif/esp-idf!35200
2025-02-21 10:01:36 +08:00
wuzhenghui
8e6ec50bcc fix(esp_hw_support): fix esp32s2/esp32s3 RTC IOMUX clock management 2025-02-21 09:50:42 +08:00
Jiang Jiang Jian
ccb69d4cf6 Merge branch 'change/ble_update_lib_20250217_v5.4' into 'release/v5.4'
change(ble): [AUTO_MR] 20250217 - Update ESP BLE Controller Lib (v5.4)

See merge request espressif/esp-idf!37131
2025-02-21 09:44:45 +08:00
Jiang Jiang Jian
0ee066c8b5 Merge branch 'feature/esp32h2_eco5_ecc_v5.4' into 'release/v5.4'
feat(ecc): enable ECC constant time mode for ESP32-H2 ECO5 (v5.4)

See merge request espressif/esp-idf!36581
2025-02-21 09:44:35 +08:00
Martin Vychodil
8a44211856 Merge branch 'bugfix/memprot_s2_intr_peri1_v5.4' into 'release/v5.4'
fix(security): ESP32S2 memory protection check for Peri1 RTCSLOW interrupt (v5.4)

See merge request espressif/esp-idf!37117
2025-02-21 01:57:46 +08:00
laokaiyao
b18506da8b fix(i2s): fixed the pdm2pcm capability on c5 and c61 2025-02-20 21:41:33 +08:00
laokaiyao
4ecb1cec3c docs(i2s): fix some i2s capabilities in programming guide 2025-02-20 21:41:33 +08:00
laokaiyao
1312472337 fix(i2s): fixed i2s_std initializer order for cpp compiler
Closes https://github.com/espressif/esp-idf/issues/15405
2025-02-20 21:41:33 +08:00
morris
a043a96abb Merge branch 'revert/i2s_apll_pm_type_v5.4' into 'release/v5.4'
fix(i2s): lock APB when using apll with DFS feature (v5.4)

See merge request espressif/esp-idf!37144
2025-02-20 21:33:39 +08:00
Zhang Shuxian
2d14e692eb docs: Update CN translation for size.rst 2025-02-20 21:03:10 +08:00
Aditya Patwardhan
b301e03f57 feat(docs): Update minimizing binary size
The ESP32-H2 software countermeasure may not be necessary
        for ESP32-H2 v1.2 and above, this commit updates
        the relevant documentation
2025-02-20 21:03:10 +08:00
laokaiyao
202b74eca8 refactor(ecdsa): rely on efuse to get chip revision 2025-02-20 21:03:10 +08:00
Aditya Patwardhan
2ff128ebf4 fix(soc): Fixed ECDSA register compatibility 2025-02-20 21:03:10 +08:00
Aditya Patwardhan
3bcafe77d8 fix(hal): Make the ECDSA countermeasure dynamically applicable
This commit makes the ECDSA countermeasure dynamically applicable
    across different revisions of the ESP32H2 SoC.
2025-02-20 21:03:10 +08:00
Mahavir Jain
748d29b5ad feat(ecc): enable ECC constant time mode for ESP32-H2 ECO5 2025-02-20 21:03:10 +08:00
Jiang Jiang Jian
2fe702e8f7 Merge branch 'fix/backport_wifi_fixes_v5.4' into 'release/v5.4'
Fix/backport wifi fixes v5.4

See merge request espressif/esp-idf!37147
2025-02-20 21:02:14 +08:00
Jiang Jiang Jian
2c3b9ff383 Merge branch 'docs/fix_gps_broken_link_v5.4' into 'release/v5.4'
docs(examples): fixed broken link in uart example readme (v5.4)

See merge request espressif/esp-idf!37149
2025-02-20 20:30:37 +08:00
Jiang Jiang Jian
87d39ac41b Merge branch 'fix/esp_vfs_register_fd_range_warning_message_v5.4' into 'release/v5.4'
fix(storage/vfs): incorrect log level in esp_vfs_register_fd_range (v5.4)

See merge request espressif/esp-idf!36318
2025-02-20 20:29:14 +08:00
Guillaume Souchere
0f74a1608f fix(log): fix file name for esp_log_level_get_timeout 2025-02-20 20:21:31 +08:00
Cristian Funes
f4ed4d4954 fix(log): Modified linker script to move functions from flash to iram 2025-02-20 20:21:31 +08:00
Adam Múdry
1185786adb fix(sdmmc): SDMMC concurrency change active slot only after the slot is initialized
Fixes counting of initialized slots
2025-02-20 20:05:53 +08:00
Island
36ef188b85 Merge branch 'feat/improve_bt_log_spi_output_interface_v5.4' into 'release/v5.4'
Feat/improve bt log spi output interface (v5.4)

See merge request espressif/esp-idf!37137
2025-02-20 19:51:25 +08:00
cjin
f2330fd2fb change(ble): update esp32c6 lib to 7ead2d29 2025-02-20 18:01:46 +08:00
cjin
bbb160a083 change(ble): update esp32c5 lib to 7ead2d29 2025-02-20 18:01:46 +08:00
cjin
49164ce77f change(ble): update esp32h2 lib to 7ead2d29 2025-02-20 18:01:46 +08:00
zwl
18ce40a23a feat(ble): implement ble capture info user handler on ESP32-C5 2025-02-20 18:01:41 +08:00
zwl
aeff03bac4 feat(ble): implement ble capture info user handler on ESP32-C6 and ESP32-H2 2025-02-20 18:00:07 +08:00
Shen Weilong
a92f4ed389 change(ble): Supported cuttable architecture for ble 2025-02-20 17:36:55 +08:00
Tomasz Kramkowski
452e20d90b fix(rom): Fix s2 and s3 Cache_Count_Flash_Pages rom function wrapper
The rom function on the s2 and s3 only counts one page for any pages
which are mapped to page 0 of flash as the Cache_Flash_To_SPIRAM_Copy
function attempts to map all flash page 0 mapped pages to one PSRAM
page.

As this function can be called for multiple regions, it needs to track
if a page mapped to page 0 has previously been accounted for by a
previous call. It does this using the page0_mapped in-out parameter.
This logic contains an error:

```
if (*page0_mapped == 0) {
    // BUG: If page0_count is 0, 1 is still added
    count = valid_flash_count + 1 - page0_count;
} else {
    count = valid_flash_count - page0_count;
}
*page0_mapped += page0_count;
return count;
```

The current Cache_Count_Flash_Pages wrapper in the idf attempts to
compensate for this bug by checking if the page0_mapped parameter was
changed by a call to the function and reducing the count if it has not.

This, however, will incorrectly over-compensate in situations where the
initial value of page0_mapped was not zero as the code above only
miscounts when it was zero.

This patch addresses the issue in this wrapper function by correctly
compensating for the bug only in cases where the final page0_mapped
value is 0.
2025-02-20 15:17:35 +08:00
morris
96c3f6c041 Merge branch 'fix/build_when_rom_patch_disable_v5.4' into 'release/v5.4'
fix(spi_flash): Fix build fail when rom_patch config disabled  (backport v5.4)

See merge request espressif/esp-idf!37103
2025-02-20 14:41:25 +08:00
Jiang Jiang Jian
f9ae8dfb04 Merge branch 'fix/esp32p4_lightsleep_fixes_v5.4' into 'release/v5.4'
fix(esp_hw_support): some fixes of esp32p4 lightsleep retention & power switch process (v5.4)

See merge request espressif/esp-idf!37086
2025-02-20 13:48:50 +08:00
Marius Vikhammer
8f756b6a59 docs(examples): fixed broken link in uart example readme 2025-02-20 12:49:21 +08:00
Aditi
bb639472b9 fix(esp_wifi): Fix for issue in esp_now_send when wifi tx callback registered 2025-02-20 11:39:56 +08:00
tarun.kumar
a7ee422cff fix(wifi): Modify authmode to sta for sta connect event 2025-02-20 11:38:49 +08:00
Jiang Jiang Jian
e9285cc50c Merge branch 'fix/env_var_idf_path_old_not_set_in_ps1_v5.4' into 'release/v5.4'
fix(tools): IDF_PATH_OLD not found in PowerShell (v5.4)

See merge request espressif/esp-idf!37076
2025-02-20 11:29:08 +08:00
Jiang Jiang Jian
6d455feb22 Merge branch 'feature/c3_libphy_20250120_v5.4' into 'release/v5.4'
feat(phy): update libphy for RXDC cal opt, no antenna current opt, add cca api(Backport v5.4)

See merge request espressif/esp-idf!37102
2025-02-20 11:28:13 +08:00
morris
85a53f96ad Merge branch 'bugfix/dma_alignment_for_encryption_memory_v5.4' into 'release/v5.4'
fix(gdma): relax alignment constraint for internal memory (v5.4)

See merge request espressif/esp-idf!37093
2025-02-20 11:11:03 +08:00
morris
5054e0caf3 Merge branch 'fix/i2c_scl_freq_s2_v5.4' into 'release/v5.4'
fix(i2c): Fix scl frequency is wrong on esp32s2 in legacy i2c driver & Add api for customize i2c transaction interface for un-standard i2c device  (backport v5.4)

See merge request espressif/esp-idf!37113
2025-02-20 11:10:13 +08:00
Zhou Xiao
a03b8e13be change(ble): update ble log spi out config for ESP32-C5 2025-02-20 10:56:51 +08:00
Jiang Jiang Jian
ab0e43d75b Merge branch 'bugfix/sdp_uuid16_match_err_v5.4' into 'release/v5.4'
fix(bt): Fix the incorrect record found using uuid16 search(v5.4)

See merge request espressif/esp-idf!36843
2025-02-20 10:56:37 +08:00
morris
cf392937b6 Merge branch 'feature/flash_software_resume_v5.4' into 'release/v5.4'
feat(spi_flash): Add config for adding auto check status after suspend to improve performance (backport v5.4)

See merge request espressif/esp-idf!36525
2025-02-20 10:52:17 +08:00
Jiang Jiang Jian
23db06892b Merge branch 'feat/wait_pll_stable_after_sleep_wakeup_fix_xtal_v5.4' into 'release/v5.4'
feat(esp_hw_support): wait pll stable after sleep wakeup (v5.4)

See merge request espressif/esp-idf!36018
2025-02-20 10:36:20 +08:00
laokaiyao
6f40f19047 docs(i2s): add application notes to es7210 example 2025-02-20 10:22:49 +08:00
laokaiyao
409397f181 fix(i2s): lock APB when using apll with DFS feature
Closes https://github.com/espressif/esp-idf/issues/14707

Append to the commit ad9021a844.
2025-02-20 10:22:49 +08:00
gaoxu
6771e388f4 fix(adc): fix adc oneshot apb cnts incosistency v5.4
closes https://github.com/espressif/esp-idf/issues/14502
2025-02-20 10:20:56 +08:00
gaoxu
ec15fa9e4b fix(adc): fix adc oneshot error after continuous v5.4
closes https://github.com/espressif/esp-idf/issues/14506
2025-02-20 10:20:49 +08:00
Frantisek Hrbata
1de2bee28f fix(tools): honor IDF_PYTHON_ENV_PATH value
The active.py script is currently clearing the IDF_PYTHON_ENV_PATH,
preventing it from being set to a custom location for the python virtual
environment directory. Although the install script checks to ensure that
an existing python virtual environment is not overwritten with one for a
different ESP-IDF version than it was originally created for, we should
still permit setting a custom path for the python virtual environment.

Closes https://github.com/espressif/esp-idf/issues/15006

Signed-off-by: Frantisek Hrbata <frantisek.hrbata@espressif.com>
2025-02-19 15:37:11 +01:00
Jiang Jiang Jian
69bd12d792 Merge branch 'fix/backport_wifi_fixes_v5.4' into 'release/v5.4'
fix(wifi): backport some fixes to v5.4

See merge request espressif/esp-idf!37008
2025-02-19 21:59:20 +08:00
Martin Vychodil
fef8695c7a fix(security): Fixed ESP32S2 memory protection check for Peri1 RTCSLOW interrupt
- fixes the issue found in https://github.com/espressif/esp-idf/issues/15359
- extends debug printouts in the related tests
2025-02-19 14:25:55 +01:00
Zhou Xiao
d3a639bb06 feat(ble): support ble log spi out for ESP32-C3 and ESP32-S3
(cherry picked from commit e41f619566)

Co-authored-by: Zhou Xiao <zhouxiao@espressif.com>
2025-02-19 20:54:38 +08:00
Zhou Xiao
e7f712f78f feat(ble): support ble log spi out for ESP32
(cherry picked from commit e2fbec5d2e)

Co-authored-by: Zhou Xiao <zhouxiao@espressif.com>
2025-02-19 20:54:35 +08:00
Zhou Xiao
ef95009563 change(ble): update ble log spi out config for ESP32-H2
(cherry picked from commit 608ecf63e2)

Co-authored-by: Zhou Xiao <zhouxiao@espressif.com>
2025-02-19 20:54:33 +08:00
Zhou Xiao
5425ab7b83 change(ble): update ble log spi out config for ESP32-C6
(cherry picked from commit e61089e7e0)

Co-authored-by: Zhou Xiao <zhouxiao@espressif.com>
2025-02-19 20:54:29 +08:00
Zhou Xiao
c6ea18fd55 change(ble): update ble log spi out config for ESP32-C2
(cherry picked from commit e4b698fc32)

Co-authored-by: Zhou Xiao <zhouxiao@espressif.com>
2025-02-19 20:54:27 +08:00
Zhou Xiao
21f7a2b152 feat(ble): improved ble log spi output interface to support multisource log
(cherry picked from commit 2221133ba8)

Co-authored-by: Zhou Xiao <zhouxiao@espressif.com>
2025-02-19 20:54:24 +08:00
C.S.M
3299b654b9 docs(i2c): Add document for customize i2c transaction interface for un-standard i2c device 2025-02-19 17:43:50 +08:00
C.S.M
d6de1df245 test(i2c): Add test for customize i2c transaction interface for un-standard i2c device 2025-02-19 17:43:50 +08:00
C.S.M
c6161380d3 feat(i2c): Add api for customize i2c transaction interface for un-standard i2c device 2025-02-19 17:43:50 +08:00
C.S.M
bd4f0b44f4 fix(i2c): Fix scl frequency is wrong on esp32s2 in legacy i2c driver,
Closes https://github.com/espressif/esp-idf/issues/15301,
Closes https://github.com/espressif/esp-idf/issues/14603
2025-02-19 17:38:32 +08:00
Island
93651ddbd5 Merge branch 'change/ble_update_lib_20250212_v5.4' into 'release/v5.4'
change(ble): [AUTO_MR] 20250212 - Update ESP BLE Controller Lib (v5.4)

See merge request espressif/esp-idf!37044
2025-02-19 17:19:04 +08:00
muhaidong
ca1ac73e0e feat(phy): update libphy for RXDC cal opt, no antenna current opt, add cca api 2025-02-19 16:52:43 +08:00
C.S.M
569ac03d7f refactor(spi_flash): remove redundent flash suspend check 2025-02-19 16:50:13 +08:00
C.S.M
4da5de094e fix(spi_flash): Fix build fail when rom_patch config disabled,
Closes https://github.com/espressif/esp-idf/issues/15229
2025-02-19 16:50:03 +08:00
morris
c7e8b6819c Merge branch 'fix/esp_mmu_vaddr_to_paddr_cannot_figure_psram_p4_v5.4' into 'release/v5.4'
mmu: vaddr to paddr cannot figure psram vaddr on esp32p4 (v5.4)

See merge request espressif/esp-idf!37049
2025-02-19 16:48:12 +08:00
wanlei
9ecfa3a0e7 fix(spi_master): fix spi halt when remove device who using rc_fast 2025-02-19 16:44:48 +08:00
Marius Vikhammer
315f0fc3f1 Merge branch 'bugfix/freertos_wcaps_coproc_v5.4' into 'release/v5.4'
fix(freertos): fix a bug in `prvTaskDeleteWithCaps` related to coprocessors (backport v5.4)

See merge request espressif/esp-idf!37081
2025-02-19 16:44:01 +08:00
Island
b9ebf6cd91 Merge branch 'feat/support_ble_debug_with_gpio_v5.4' into 'release/v5.4'
Support change HID task size by Kconfig in HID example (v5.4)

See merge request espressif/esp-idf!36999
2025-02-19 16:37:14 +08:00
morris
36de1af357 fix(gdma): relax alignment constraint for internal memory
external memory encryption should not affect internal memory alignment

Closes https://github.com/espressif/esp-idf/issues/15228
2025-02-19 15:16:08 +08:00
wuzhenghui
b654a78646 change(esp_hw_support): wrapper sleep dcdc/ldo ops with ll 2025-02-19 14:32:22 +08:00
wuzhenghui
8233c250de feat(esp_hw_support): add branch prediction config retention 2025-02-19 14:32:19 +08:00
wuzhenghui
a63e9c5aef fix(esp_hw_support): fix DCDC switch bad software powerdown 2025-02-19 14:32:15 +08:00
wuzhenghui
4542c463c6 change(esp_hw_support): not use ROM Cache invalidate in sleep process to avoid dirtying the L1 Cache 2025-02-19 14:32:12 +08:00
wuzhenghui
ea05eba7f5 feat(esp_hw_support): do mstatus restore on each core 2025-02-19 14:32:08 +08:00
wuzhenghui
228e74e06c feat(esp_hw_support): do esp32p4 l1 cache invalidate by regdma 2025-02-19 14:32:04 +08:00
wuzhenghui
f3cc52d234 feat(esp_hw_support): do esp32p4 l1&l2 cache regs retention by regdma 2025-02-19 14:32:00 +08:00
Jiang Jiang Jian
da3f2ea5ce Merge branch 'fix/add_sleep_duration_check_for_timer_wakeup_v5.4' into 'release/v5.4'
fix(esp_hw_support): add timer wakeup sleep duration check (v5.4)

See merge request espressif/esp-idf!37010
2025-02-19 13:48:17 +08:00
Jiang Jiang Jian
c7c332761a Merge branch 'fix/disable_wfe_feature_for_e906_chips_v5.4' into 'release/v5.4'
change(esp_hw_support): disable CPU wait-for-event mode on cpu start (v5.4)

See merge request espressif/esp-idf!37000
2025-02-19 13:48:02 +08:00
Nachiket Kukade
597cfcb4f3 feat(wifi): Enable Wi-Fi Aware (NAN) for ESP32C5 and ESP32C61 2025-02-19 10:48:43 +08:00
muhaidong
cbcfecd604 fix(wifi): fix some esp32p4 host issues 2025-02-19 10:48:43 +08:00
zhangyanjiao
2e55890069 fix(wifi): update wifi lib for doc changes 2025-02-19 10:48:43 +08:00
Linda
afab2130fd docs: update the API description for esp-wifi_scan_get_ap_records 2025-02-19 10:48:43 +08:00
Nachiket Kukade
50e700792b fix(esp_wifi): Check SSID from Assoc Req before starting SA Query 2025-02-19 10:48:43 +08:00
Sarvesh Bodakhe
0a33f8fda0 fix(wifi): Fix crash when failure_retry_cnt is set in station config
Fixes the regression introduced by 21c2bef602
2025-02-19 10:48:43 +08:00
Sarvesh Bodakhe
b565bbdbab fix(wifi): Fix stack overflow when failure_retry_cnt is set
Fix issue of increased stack usage when failure_retry_cnt is set
and wifi driver internally retries connection attempts
2025-02-19 10:48:43 +08:00
muhaidong
df4667849c fix(wifi): fix wep shared auth connect fail issue 2025-02-19 10:48:43 +08:00
wangtao@espressif.com
35771eed0e fix(wifi): fix max idle period 1 issue 2025-02-19 10:48:43 +08:00
Omar Chebib
54f257b909 fix(freertos): fix a bug in prvTaskDeleteWithCaps related to coprocessors
When a coprocessor is used, the stack pointer is altered. It must be restored
before freeing the memory allocated to the task.
2025-02-19 10:22:23 +08:00
morris
15e75f21a7 Merge branch 'fix/adc_func_register_not_reset_issue_v5.4' into 'release/v5.4'
adc: func register not reset issue (v5.4)

See merge request espressif/esp-idf!37045
2025-02-19 10:02:29 +08:00
Shu Chen
11b3f939a4 Merge branch 'support/ieee802154_get_rssi_comp_from_phy_v5.4' into 'release/v5.4'
feat(802.15.4): support ieee802154 get rssi comp from phylib (v5.4)

See merge request espressif/esp-idf!37051
2025-02-19 10:00:38 +08:00
Adam Múdry
8db2420a2e fix: test_nvs_gen_check.py support for read-only NVS partitions 2025-02-18 16:33:43 +01:00
Marek Fiala
1fa9db53bd fix(tools): IDF_PATH_OLD not found in PowerShell
Closes https://github.com/espressif/esp-idf/issues/15396
2025-02-18 16:09:00 +01:00
morris
bcb3c32d3a Merge branch 'bugfix/sdmmc_reset_pins_slot_width_v5.4' into 'release/v5.4'
fix(sdmmc): fix reset of pins above slot width (v5.4)

See merge request espressif/esp-idf!36874
2025-02-18 22:53:26 +08:00
Ivan Grokhotkov
8ad144a415 fix(sdmmc): fix missed deinitialization of CD and WP pins in f8f40ad
Related to https://github.com/espressif/esp-idf/issues/15330
2025-02-18 12:23:16 +01:00
Ivan Grokhotkov
722cc23a89 fix(sdmmc): fix reset of pins above slot width
Closes https://github.com/espressif/esp-idf/issues/15328
2025-02-18 12:23:16 +01:00
wuzhenghui
95fb085fe3 fix(esp_hw_support): add timer wakeup sleep duration check
Closes https://github.com/espressif/esp-idf/issues/15255
2025-02-18 19:21:57 +08:00
Jiang Jiang Jian
c93d7d0132 Merge branch 'bugfix/idf-11643_v5.4' into 'release/v5.4'
backport v5.4: fix some issues on esp32c61 eco2

See merge request espressif/esp-idf!36987
2025-02-18 19:21:21 +08:00
wuzhenghui
1e11f287e1 change(esp_hw_support): disable CPU wait-for-event mode on cpu start 2025-02-18 19:21:09 +08:00
Marius Vikhammer
36ae237691 Merge branch 'fix/usb-cdc-non-blocking-read_v5.4' into 'release/v5.4'
fix(esp_vfs_console): USB CDC read when non blocking (backport v5.4)

See merge request espressif/esp-idf!36750
2025-02-18 12:17:08 +08:00
zwx
44e7fecbe6 feat(802.15.4): use btbb function to get rssi comp for h2 2025-02-18 12:09:25 +08:00
Armando
03e344df86 test(flash_mmap): added psram enabled test for esp32p4 as mmu is per target 2025-02-18 11:50:52 +08:00
Armando
253fc4f35a test(mmu): added test for checking esp_mmu_vaddr_to_paddr with psram vaddrs 2025-02-18 11:49:50 +08:00
Armando
7bbfe91432 fix(mmu): fixed esp_mmu_vaddr_to_paddr cannot figure out psram vaddr issue on esp32p4 2025-02-18 11:49:45 +08:00
Marius Vikhammer
7a71c4bb65 Merge branch 'test/fix_flaky_lp_uart_tests_v5.4' into 'release/v5.4'
fix(lp_uart): Fixed flaky LP UART unit tests (v5.4)

See merge request espressif/esp-idf!37023
2025-02-18 11:15:09 +08:00
Li Shuai
61fb531471 fix(esp_hw_support): fix the issue of mmu table content loss due to default sd signal 2025-02-18 10:39:50 +08:00
Armando
a387ec0123 fix(adc): fixed adc function register not reset issue 2025-02-18 10:33:25 +08:00
zwl
8e5aee2261 feat(ble): support enhanced controller log capabilities on ESP32-C5 2025-02-18 10:32:44 +08:00
zwl
3c6236df50 feat(ble): add channel assessment and enhanced connect function on ESP32-C5 2025-02-18 10:32:28 +08:00
zwl
8eb5c15376 change(ble): [AUTO_MR] Update lib_esp32c5 to 1d7eebaf 2025-02-18 10:32:09 +08:00
Zhou Xiao
9912a9c029 feat(ble): support enhanced controller log capabilities on ESP32-C2
(cherry picked from commit bbcb4a2e1f)

Co-authored-by: zwl <zhaoweiliang@espressif.com>
2025-02-18 10:23:47 +08:00
Zhou Xiao
de1cbf7f2f feat(ble): support enhanced controller log capabilities on ESP32-C6 and ESP32-H2
(cherry picked from commit f598976c6b)

Co-authored-by: zwl <zhaoweiliang@espressif.com>
2025-02-18 10:23:44 +08:00
Zhou Xiao
e6b590b243 feat(ble): add channel assessment and enhanced connect function on ESP32-H2
(cherry picked from commit 0ffac92586)

Co-authored-by: zwl <zhaoweiliang@espressif.com>
2025-02-18 10:23:41 +08:00
Zhou Xiao
b9616fdd7f feat(ble): add channel assessment and enhanced connect function on ESP32-C6
(cherry picked from commit 821e587fda)

Co-authored-by: zwl <zhaoweiliang@espressif.com>
2025-02-18 10:23:39 +08:00
Zhou Xiao
553992e1fa change(ble): [AUTO_MR] Update lib_esp32c6 to 1d7eebaf
(cherry picked from commit 4579e083ef)

Co-authored-by: Zhou Xiao <zhouxiao@espressif.com>
2025-02-18 10:23:36 +08:00
Zhou Xiao
95a101d359 change(ble): [AUTO_MR] Update lib_esp32h2 to 1d7eebaf
(cherry picked from commit 4f0e0f371a)

Co-authored-by: Zhou Xiao <zhouxiao@espressif.com>
2025-02-18 10:23:33 +08:00
Shu Chen
e37d33cc1c Merge branch 'feature/disable-c5-ci-build' into 'release/v5.4'
feat(zigbee): disable the build process of zigbee example on esp32c5

See merge request espressif/esp-idf!37024
2025-02-18 09:34:14 +08:00
xieqinan@espressif.com
60f820e7c0 feat(zigbee): disable the build process of zigbee example on esp32c5 2025-02-17 18:54:08 +08:00
Sudeep Mohanty
1e5308211d fix(lp_uart): Fixed flaky LP UART unit tests
This commit fixes some flaky LP UART multi device tests. It also adds
code to put the HP core to light sleep for few tests.
2025-02-17 10:29:04 +01:00
Martin Vychodil
e6815fd6a5 Merge branch 'bugfix/storage_generic_pytests_v5.4' into 'release/v5.4'
fix(ci): Removed storage related entries in known generate test child pipeline warnings (v5.4)

See merge request espressif/esp-idf!36683
2025-02-17 17:09:08 +08:00
wuzhenghui
003a7f6bcb fix(esp_hw_support): fix lp/hp clock wait time calculation after wait pll ready 2025-02-17 16:53:28 +08:00
wuzhenghui
67a4de4e77 change(esp_hw_support): switch to sleep_flags earlier to identify sleep state 2025-02-17 16:53:28 +08:00
wuzhenghui
87c4227e44 change(esp_hw_support): wait pll calibration done in regdma link instead of wait fixed value 2025-02-17 16:53:27 +08:00
Jiang Jiang Jian
c3044cad28 Merge branch 'bugfix/fix_delete_queue_error_in_espnow_example_v5.4' into 'release/v5.4'
fix(wifi): fix the delete queue error in espnow exapmle (v5.4)

See merge request espressif/esp-idf!37014
2025-02-17 16:10:53 +08:00
Jiang Jiang Jian
30307f6977 Merge branch 'bugfix/ifdef_cplusplus_bracket_v5.4' into 'release/v5.4'
bugfix(wifi): Add missing brackets in the C++ guard (Backport v5.4)

See merge request espressif/esp-idf!36830
2025-02-17 15:50:16 +08:00
Jiang Jiang Jian
0ba139c535 Merge branch 'bugfix/fix_some_wifi_bugs_250214' into 'release/v5.4'
Bugfix/fix some wifi bugs 250214(Backport v5.4)

See merge request espressif/esp-idf!36985
2025-02-17 15:48:22 +08:00
zhangyanjiao
aeb4e0288c fix(wifi): fix the delete queue error in espnow exapmle
Closes https://github.com/espressif/esp-idf/issues/15383
2025-02-17 14:54:38 +08:00
Marius Vikhammer
b808062f2e Merge branch 'bugfix/esp32p4_linker_script_v5.4' into 'release/v5.4'
fix(esp_system): add missing `arrays` attribute in the ESP32-P4 linker script (backport v5.4)

See merge request espressif/esp-idf!36094
2025-02-17 11:16:48 +08:00
Zhang Hai Peng
ddff846e4e feat(ble/bluedroid): Support change HID task size by Kconfig in HID example
(cherry picked from commit d4b3a7e99d)

Co-authored-by: Mitch Cairns <mitch.cairns@handheldlegend.com>
2025-02-17 11:15:46 +08:00
Zhang Hai Peng
53fa7a7df0 docs(ble/bluedroid): Optimize doc for implementation of a characteristic with 128 bit UUID
(cherry picked from commit fa40d971a5)

Co-authored-by: Erast  <78802792+MatoiDev@users.noreply.github.com>
2025-02-17 11:15:43 +08:00
Zhang Hai Peng
7790c95832 fix(ble/bluedroid): Don't log error on 16/128-bit UUID mixed descriptors
(cherry picked from commit fed1d41aa7)

Co-authored-by: Nebojša Cvetković <nebkat@gmail.com>
2025-02-17 11:15:40 +08:00
Zhang Hai Peng
41ccc00c15 refactor(ble/bluedroid): Fix typos in gatt_sr.c
(cherry picked from commit 63b2dcc3a7)

Co-authored-by: Nebojsa Cvetkovic <nebkat@gmail.com>
2025-02-17 11:15:37 +08:00
Zhang Hai Peng
c0b060c1a8 fix(ble/bluedroid): Allow 0 length indications
(cherry picked from commit 9b5a52e2f7)

Co-authored-by: Nebojsa Cvetkovic <nebkat@gmail.com>
2025-02-17 11:15:32 +08:00
Zhang Hai Peng
635e1489b7 refactor(ble/bluedroid): Fix typos in bta_gatts_act.c
(cherry picked from commit a8041a9953)

Co-authored-by: Nebojsa Cvetkovic <nebkat@gmail.com>
2025-02-17 11:15:29 +08:00
morris
3ecfa81c9b Merge branch 'bugfix/gpio_rom_patch_fix_v5.4' into 'release/v5.4'
fix(gpio): fix esp_rom_gpio_connect_out_signal for gpio num over 31 on esp32/s2 (v5.4)

See merge request espressif/esp-idf!36865
2025-02-17 11:14:21 +08:00
Zhang Hai Peng
a0f37ef893 fix(ble): Update bt lib for ESP32(2a2631f)
- Support ESP32 BLE GPIO DEBUG


(cherry picked from commit 0a7888f839)

Co-authored-by: zhanghaipeng <zhanghaipeng@espressif.com>
2025-02-17 11:13:56 +08:00
Island
c34702fc0c Merge branch 'feat/add_spi_output_v5.4' into 'release/v5.4'
Feat/add spi output (v5.4)

See merge request espressif/esp-idf!36956
2025-02-17 11:04:37 +08:00
Rahul Tank
ae5cf32ab9 Merge branch 'bugfix/handle_slave_extra_disconn_v5.4' into 'release/v5.4'
fix(nimble): Handle not sending disconnect event if connect was not sent (v5.4)

See merge request espressif/esp-idf!36920
2025-02-15 22:43:07 +08:00
Rahul Tank
d4d795c56d fix(nimble): Handle not sending disconnect event if connect was not sent 2025-02-15 09:22:55 +05:30
Rahul Tank
f30ee2a6bc Merge branch 'feat/long_read_offset_v5.4' into 'release/v5.4'
feat(nimble): Add offset in GATT server long read context (v5.4)

See merge request espressif/esp-idf!36976
2025-02-15 11:26:47 +08:00
Jiang Jiang Jian
72770713b9 Merge branch 'bugfix/mem_leak_sae_pk_v5.4' into 'release/v5.4'
fix(wifi): Bugfix memory leak due to sae public key (v5.4)

See merge request espressif/esp-idf!36925
2025-02-14 19:34:53 +08:00
muhaidong
5dc5f0e566 fix(coex): fix disable external coex fail issue 2025-02-14 19:24:12 +08:00
muhaidong
67141ce7b5 feat(phy): add gpio cmd for cert test 2025-02-14 19:23:53 +08:00
Roland Dobai
dd315ebc88 Merge branch 'fix/ldgen_interm_no_secs_v5.4' into 'release/v5.4'
fix(ldgen): don't emit intermediate placements without sections (v5.4)

See merge request espressif/esp-idf!36967
2025-02-14 18:58:59 +08:00
Jiang Jiang Jian
266f7e878c Merge branch 'bugfix/skip_memory_reordering_wpa2_semaphr_v5.4' into 'release/v5.4'
fix(esp_wifi): fixed stack corruption in WiFi tasks (v5.4)

See merge request espressif/esp-idf!36936
2025-02-14 17:53:35 +08:00
Aditya Patwardhan
d2b7479f6f Merge branch 'refactor/security_docs_re-org_v5.4' into 'release/v5.4'
refactor(docs): re-organize security docs for better navigation (v5.4)

See merge request espressif/esp-idf!36960
2025-02-14 16:32:05 +08:00
Frantisek Hrbata
c06b3d213e fix(ldgen): don't emit intermediate placements without sections
When a symbol needs to be placed to a different target than the one
designated for the object file, the object file is expanded, which
includes the following steps:

1. Creating a new placement for the symbol's input section with the
   specified target.
2. Excluding the object placement from the orignal target.
3. Creating a new intermediate placement for the object for the original
   target, where its input sections are expanded, excluding the input
   section for the symbol.

Let's illustrate the object expansion process with the following example:

[sections:rodata]
entries:
    .rodata+
    .sdata2+
    .srodata+

[scheme:default]
entries:
    text -> flash_text
    rodata -> flash_rodata

[scheme:noflash]
entries:
    text -> iram0_text
    rodata -> dram0_data

[mapping:soc_pm]
archive: libsoc.a
entries:
    gpio_periph: GPIO_HOLD_MASK (noflash)

gpio_periph section headers:
  [Nr] Name              Type            Addr     Off    Size   ES Flg Lk Inf Al
  [ 0]                   NULL            00000000 000000 000000 00      0   0  0
  [ 1] .text             PROGBITS        00000000 000034 000000 00  AX  0   0  2
  [ 2] .data             PROGBITS        00000000 000034 000000 00  WA  0   0  1
  [ 3] .bss              NOBITS          00000000 000034 000000 00  WA  0   0  1
  [ 4] .rodata.GPIO_HOLD_MASK PROGBITS        00000000 000034 000058 00   A  0   0  4
  [ 5] .rodata.GPIO_PIN_MUX_REG PROGBITS        00000000 00008c 000058 00   A  0   0  4
  [ 6] .debug_info       PROGBITS        00000000 0000e4 0000d8 00      0   0  1
  [ 7] .rela.debug_info  RELA            00000000 0009d4 000108 0c   I 16   6  4
  [ 8] .debug_abbrev     PROGBITS        00000000 0001bc 000070 00      0   0  1
  [ 9] .debug_aranges    PROGBITS        00000000 00022c 000018 00      0   0  1
  [10] .rela.debug_aranges RELA            00000000 000adc 00000c 0c   I 16   9  4
  [11] .debug_line       PROGBITS        00000000 000244 0001ab 00      0   0  1
  [12] .debug_str        PROGBITS        00000000 0003ef 00022d 01  MS  0   0  1
  [13] .comment          PROGBITS        00000000 00061c 000030 01  MS  0   0  1
  [14] .note.GNU-stack   PROGBITS        00000000 00064c 000000 00      0   0  1
  [15] .riscv.attributes RISCV_ATTRIBUTES 00000000 00064c 000044 00      0   0  1
  [16] .symtab           SYMTAB          00000000 000690 000260 10     17  36  4
  [17] .strtab           STRTAB          00000000 0008f0 0000e1 00      0   0  1
  [18] .shstrtab         STRTAB          00000000 000ae8 0000d1 00      0   0  1

1. Creating a new placement
.dram0.data :
{
    *libsoc.a:gpio_periph.*(.rodata.GPIO_HOLD_MASK .sdata2.GPIO_HOLD_MASK .srodata.GPIO_HOLD_MASK)
}

2. Excluding the object placement
.flash.rodata :
{
    *(EXCLUDE_FILE(*libsoc.a:gpio_periph.*) .rodata.* ...)
}

3. Creating a new intermediate placement
.flash.rodata :
{
    *libsoc.a:gpio_periph.*(.rodata.GPIO_PIN_MUX_REG)
}

Now, let's do the same, but also move GPIO_PIN_MUX_REG to noflash with an updated mapping.

[mapping:soc_pm]
archive: libsoc.a
entries:
    gpio_periph: GPIO_HOLD_MASK (noflash)
    gpio_periph: GPIO_PIN_MUX_REG (noflash)

1. Creating a new placement
.dram0.data :
{
    *libsoc.a:gpio_periph.*(.rodata.GPIO_HOLD_MASK .sdata2.GPIO_HOLD_MASK .srodata.GPIO_HOLD_MASK)
    *libsoc.a:gpio_periph.*(.rodata.GPIO_PIN_MUX_REG .sdata2.GPIO_PIN_MUX_REG
                            .srodata.GPIO_PIN_MUX_REG)
}

2. Excluding the object placement
.flash.rodata :
{
    *(EXCLUDE_FILE(*libsoc.a:gpio_periph.*) .rodata.* ...)
}

3. Creating a new intermediate placement
.flash.rodata :
{
    *libsoc.a:gpio_periph.*
}

The *libsoc.a:gpio_periph.* entity in step 3 no longer has input
sections, as there are no remaining .rodata input sections in the object
file. The linker behavior for this mapping is to include all object
input sections that have not yet been placed as described in
https://sourceware.org/binutils/docs/ld.html#Input-Section-Basics
"If you use a file name without a list of sections, then all sections in
the input file will be included in the output section. This is not
commonly done, but it may by useful on occasion."

The map file for such mapping now contains following input sections

 .flash.rodata   0x3c0a0120    0x19b34
     *libsoc.a:gpio_periph.*()
     .debug_info    0x3c0b95bf       0xd8 esp-idf/soc/libsoc.a(gpio_periph.c.obj)
     .debug_abbrev  0x3c0b9697       0x70 esp-idf/soc/libsoc.a(gpio_periph.c.obj)
     .debug_aranges
                    0x3c0b9707       0x18 esp-idf/soc/libsoc.a(gpio_periph.c.obj)
     .debug_line    0x3c0b971f      0x1ab esp-idf/soc/libsoc.a(gpio_periph.c.obj)
     .debug_str     0x3c0b98ca      0x21a esp-idf/soc/libsoc.a(gpio_periph.c.obj)
                                    0x22d (size before relaxing)
     .comment       0x3c0b9ae4       0x30 esp-idf/soc/libsoc.a(gpio_periph.c.obj)
     .note.GNU-stack
                    0x3c0b9ae4        0x0 esp-idf/soc/libsoc.a(gpio_periph.c.obj)
     .riscv.attributes
                    0x3c0b9ae4       0x44 esp-idf/soc/libsoc.a(gpio_periph.c.obj)

This is incorrect, and such intermediate placement should not be
generated. This type of placement can be recognized because it is not
explicitly defined in the mapping and lacks input sections. We can
identify this in the significant function and prevent issuing commands
for such placement.

Signed-off-by: Frantisek Hrbata <frantisek.hrbata@espressif.com>
2025-02-14 08:04:29 +01:00
Mahavir Jain
721b0de1b1 refactor(docs): re-organize security docs for better navigation 2025-02-14 11:45:04 +05:30
Abhinav Kudnar
222d7a7741 feat(nimble): Add offset in GATT server long read context 2025-02-14 11:21:30 +05:30
Rahul Tank
15da152e21 Merge branch 'fix/blesync_periodic_adv_v5.4' into 'release/v5.4'
fix(nimble): Added sync reattempt for periodic adv (v5.4)

See merge request espressif/esp-idf!36789
2025-02-14 13:45:38 +08:00
Zhou Xiao
ec495372ab feat(ble): support esp ble controller spi output interface for ESP32-H2
(cherry picked from commit 9c98c7e040)

Co-authored-by: Zhou Xiao <zhouxiao@espressif.com>
2025-02-14 11:54:23 +08:00
Zhou Xiao
78f1241f78 feat(ble): support esp ble controller spi output interface for ESP32-C6
(cherry picked from commit 58b8775f95)

Co-authored-by: Zhou Xiao <zhouxiao@espressif.com>
2025-02-14 11:54:20 +08:00
Zhou Xiao
8d3fcb78ee feat(ble): support esp ble controller spi output interface for ESP32-C2
(cherry picked from commit 0b57f8ae87)

Co-authored-by: Zhou Xiao <zhouxiao@espressif.com>
2025-02-14 11:54:16 +08:00
Zhou Xiao
2acf21413c feat(ble): add spi output interface for esp ble controller log
(cherry picked from commit 52106c9895)

Co-authored-by: Zhou Xiao <zhouxiao@espressif.com>
2025-02-14 11:54:13 +08:00
Omar Chebib
d3a9545e95 fix(esp_system): add missing arrays attribute in the ESP32-P4 linker script 2025-02-14 10:58:12 +08:00
xiongweichao
44c606e165 fix(bt): Fixed SDP record integrity check bug 2025-02-14 10:21:46 +08:00
David Čermák
462ed8353d Merge branch 'bugfix/ethernet_example_netif_glue_assignment_v5.4' into 'release/v5.4'
fix(ethernet_basic): Fix second Ethernet device not receiving IP address (v5.4)

See merge request espressif/esp-idf!36945
2025-02-13 22:00:31 +08:00
Astha Verma
ff55cabe6d fix(nimble): Added sync reattempt for periodic adv 2025-02-13 18:24:38 +05:30
Bogdan Kolendovskyy
bcf5075278 fix(ethernet_basic): Fix second Ethernet device not receiving IP address 2025-02-13 12:41:14 +01:00
Rahul Tank
18ba5dd4ab Merge branch 'fix/core_err_code_def_v5.4' into 'release/v5.4'
fix(nimble): Enhanced error handling by adding to print core error definitions (v5.4)

See merge request espressif/esp-idf!36654
2025-02-13 19:37:52 +08:00
Mahavir Jain
e348fdd5e6 Merge branch 'bugfix/http_client_select_read_error_v5.4' into 'release/v5.4'
fix(tcp_tranport): Fix handling of select() return value (v5.4)

See merge request espressif/esp-idf!36917
2025-02-13 19:19:11 +08:00
Kapil Gupta
31b88484a6 fix(esp_wifi): Fix stack corruption in wpa3 task 2025-02-13 14:23:08 +05:30
Kapil Gupta
698392735c fix(esp_wifi): fixed Stack corruption in DPP task 2025-02-13 14:23:08 +05:30
Kapil Gupta
a64056fac2 fix(esp_wifi): fixed Stack corruption in WPS processing 2025-02-13 14:23:08 +05:30
Kapil Gupta
c3959700b3 fix(esp_wifi): Fixed memory corruption in wifi enterprise
Closes https://github.com/espressif/esp-idf/issues/15370
2025-02-13 14:23:08 +05:30
Shu Chen
576264c704 Merge branch 'feat/add_ot_br_lib_check_case_v5.4' into 'release/v5.4'
feat(openthread): add br library check case (v5.4)

See merge request espressif/esp-idf!36885
2025-02-13 15:49:45 +08:00
Shreyas Sheth
3cbbcf25c7 fix(wifi): Fixed memory leak occurring in SAE PK connection 2025-02-13 12:02:13 +05:30
Astha Verma
34a8c8ae28 fix(nimble): Enhanced error handling by adding to print core error definitions 2025-02-13 08:57:08 +05:30
Rahul Tank
9555aa0912 Merge branch 'fix/NVS_corruption_v5.4' into 'release/v5.4'
fix(nimble): Handle NVS corruption caused by non removal of security records (v5.4)

See merge request espressif/esp-idf!36894
2025-02-13 11:19:15 +08:00
morris
7d07fe5047 Merge branch 'feat/async_memcpy_any_alignment_v5.4' into 'release/v5.4'
async memcpy destination address doesn't have to be cache aligned (v5.4)

See merge request espressif/esp-idf!36633
2025-02-13 10:36:23 +08:00
morris
5aee72a86f Merge branch 'fix/rgb_lcd_drift_on_esp32s3_v5.4' into 'release/v5.4'
fix(rgb_lcd): drift issue caused by restart (v5.4)

See merge request espressif/esp-idf!36889
2025-02-13 10:10:43 +08:00
David Čermák
1ddbb7bceb Merge branch 'fix/eth_example_stat_ip_v5.4' into 'release/v5.4'
fix(esp_eth): fixed Static IP example for Ethernet (v5.4)

See merge request espressif/esp-idf!36915
2025-02-13 02:14:20 +08:00
nilesh.kale
5ad73e97e8 fix(tcp_tranport): Fix handling of select() return value
When both readset/writeset and errset are set for a single socket,
the HTTP client incorrectly handled the condition, causing premature termination.
Added a check to ensure readset/writeset is prioritized before errset.

Closes https://github.com/espressif/esp-idf/issues/14673
2025-02-12 20:23:23 +05:30
Ondrej Kosta
7b1648f004 fix(esp_eth): fixed Static IP example for Ethernet
Fixed IP event handler unregistering for Ethernet
2025-02-12 13:55:20 +00:00
Alexey Gerenkov
945d750d5a Merge branch 'fix/coredump_note_section_alignment_v5.4' into 'release/v5.4'
Fix/coredump note section headers and alignments (v5.4)

See merge request espressif/esp-idf!36880
2025-02-12 21:31:14 +08:00
Jiang Jiang Jian
97404fa883 Merge branch 'fix/fix_branch_predictor_access_flash_after_cache_diabled_v5.4' into 'release/v5.4'
fix(esp_hw_support): fix branch predictor access flash after cache disabled (v5.4)

See merge request espressif/esp-idf!36558
2025-02-12 17:59:36 +08:00
Jiang Jiang Jian
f8ed34f75f Merge branch 'bugfix/analyzer_issues_supplicant_v5.4' into 'release/v5.4'
fix(esp_wifi): fix some analyzer issues (v5.4)

See merge request espressif/esp-idf!36825
2025-02-12 13:56:16 +08:00
Jiang Jiang Jian
c7a66c0801 Merge branch 'bugfix/wps_scan_freq_v5.4' into 'release/v5.4'
fix(esp_wifi): Reduce scan frequency in WPS (v5.4)

See merge request espressif/esp-idf!36819
2025-02-12 13:56:01 +08:00
Astha Verma
5a9fc48b73 fix(nimble): fix NVS corruption 2025-02-12 10:50:50 +05:30
Rahul Tank
49262fd40c Merge branch 'bugfix/fix_warn_write_string_v5.4' into 'release/v5.4'
fix(nimble): Fixed warnings with COMPILTER_WARN_WRITE_STRINGS set (v5.4)

See merge request espressif/esp-idf!36699
2025-02-12 12:56:26 +08:00
Mahavir Jain
f8c10a5504 Merge branch 'bugfix/fix_blufi_crash_opt_v5.4' into 'release/v5.4'
fix(blufi): Enhance security in BLUFI example (v5.4)

See merge request espressif/esp-idf!36861
2025-02-12 12:31:56 +08:00
morris
1a430290f2 fix(rgb_lcd): drift issue caused by restart
Closes https://github.com/espressif/esp-idf/issues/15013
2025-02-12 10:43:16 +08:00
Shu Chen
f6c304005a Merge branch 'feature/ieee802154_txpower_table_v5.4' into 'release/v5.4'
Feature/ieee802154 txpower table (v5.4)

See merge request espressif/esp-idf!36132
2025-02-12 10:32:19 +08:00
morris
d65c108888 Merge branch 'feat/mmu_find_paddr_caps_by_any_offset_v5.4' into 'release/v5.4'
mmu: supported find paddr caps by any paddr offset (v5.4)

See merge request espressif/esp-idf!36813
2025-02-12 10:30:35 +08:00
yiwenxiu
d4ec677253 feat(openthread): add br library check case 2025-02-12 09:33:46 +08:00
Wang Meng Yang
667c1b6e70 Merge branch 'bugfix/add_bluedroid_init_migration_v5.4' into 'release/v5.4'
docs(bt/bluedroid): Added migration guide for bluedroid init API[backport v5.4]

See merge request espressif/esp-idf!36875
2025-02-12 09:22:17 +08:00
Erhan Kurubas
99b1a685c8 fix(coredump): disable uart txd pullup using gpio hal 2025-02-11 16:53:18 +01:00
Erhan Kurubas
52c1538f01 fix(coredump): fix note section alignments 2025-02-11 16:53:18 +01:00
Erhan Kurubas
f1fbac9dc8 fix(coredump): only clear high bit in PC when set 2025-02-11 16:53:18 +01:00
liqigan
0576fce0c8 docs(bt/bluedroid): Added migration guide for bluedroid init API
Closes https://github.com/espressif/esp-idf/issues/15352
2025-02-11 19:37:27 +08:00
morris
952f1aa2b8 Merge branch 'feature/malloc_cap_simd_flag_v5.4' into 'release/v5.4'
feat(heap): add a MALLOC_CAP_SIMD flag (v5.4)

See merge request espressif/esp-idf!36649
2025-02-11 17:42:09 +08:00
Song Ruo Jing
ed46ec4433 fix(gpio): fix esp_rom_gpio_connect_out_signal for gpio num over 31 on esp32/s2
Closes https://github.com/espressif/esp-idf/issues/15209
2025-02-11 16:05:11 +08:00
Armando
efd8c467d0 test(mmu): test can find paddr caps by any paddr offset 2025-02-11 15:51:45 +08:00
Armando
d7cdbbb07d feat(mmu): supported find paddr caps by any paddr offset
Closes https://github.com/espressif/esp-idf/issues/14988
2025-02-11 15:51:45 +08:00
Zhang Hai Peng
5f93ec3b11 fix(blufi): Enhance security in BLUFI example
(cherry picked from commit 3fc6c93936)

Co-authored-by: zhanghaipeng <zhanghaipeng@espressif.com>
2025-02-11 15:13:50 +08:00
morris
e121a77c92 fix(dma): also consider buffer alignment when calculating the DMA nodes
Closes https://github.com/espressif/esp-idf/issues/15228
2025-02-11 13:46:12 +08:00
morris
5c0611cb3b feat(async_memcpy): support rx buffer unaligned to cache line size 2025-02-11 13:46:12 +08:00
morris
565d0331f1 refactor(dma): split rx buffer to cache aligned ones 2025-02-11 13:46:12 +08:00
zwx
053a67f209 fix(802.15.4): fix a typo for 15.4 Kconfig 2025-02-11 13:23:57 +08:00
zwx
22a5444773 feat(802.15.4): introduce a series of APIs related power table 2025-02-11 13:23:57 +08:00
zwx
86eed3f3ab feat(openthread): support preferred channel mask 2025-02-11 13:22:47 +08:00
Wang Meng Yang
cb19765809 Merge branch 'feat/esp32_set_get_bt_lpclk_src_v5.4' into 'release/v5.4'
feat(bt): Added API to get/set low power clock source(v5.4)

See merge request espressif/esp-idf!36562
2025-02-11 12:14:58 +08:00
xiongweichao
62eaef77ef fix(bt/bluedroid): fixed the format error of passkey printing 2025-02-11 11:57:16 +08:00
xiongweichao
f9ea7a47b1 fix(bt/bluedroid): Fixed incorrect types of some variables in SDP 2025-02-11 11:57:11 +08:00
xiongweichao
26491fbe67 fix(bt): Fix incorrect type returned when searching SAP record 2025-02-11 11:57:07 +08:00
xiongweichao
b8a4d9f74f fix(bt): Fix the incorrect record found using uuid16 search 2025-02-11 11:57:03 +08:00
Shu Chen
b853fc6742 Merge branch 'feature/support_hw_reset_when_handling_rcp_failure_v5.4' into 'release/v5.4'
feat(openthread): support hardware reset RCP while processing RCP failure (v5.4)

See merge request espressif/esp-idf!36553
2025-02-11 11:29:31 +08:00
Island
05eb9d0c4a Merge branch 'bugfix/h2_ble_timer_clk_enable_fix_v5.4' into 'release/v5.4'
fix: H2 ble timer clk enable issue. (v5.4)

See merge request espressif/esp-idf!36545
2025-02-11 10:45:33 +08:00
morris
737cce3c9f Merge branch 'bugfix/fix_i2s_reconfig_slot_issue_v5.4' into 'release/v5.4'
fix(i2s): fixed incorrect logic in slot reconfig (v5.4)

See merge request espressif/esp-idf!36641
2025-02-11 10:40:32 +08:00
Rahul Tank
5ede5942b1 fix(nimble): Fixed warnings with COMPILTER_WARN_WRITE_STRINGS set 2025-02-10 21:50:15 +05:30
Rahul Tank
86a8f691e1 Merge branch 'fix/spp_server_readme_change_v5.4' into 'release/v5.4'
docs: Updated README.md by removing unclear lines (v5.4)

See merge request espressif/esp-idf!36742
2025-02-10 23:59:39 +08:00
Rahul Tank
f9f71f0fa8 Merge branch 'fix/wifi_provisioning_ble_v5.4' into 'release/v5.4'
fix(nimble): Handle nested locks when BT_NIMBLE_DEBUG enabled (v5.4)

See merge request espressif/esp-idf!36497
2025-02-10 23:57:47 +08:00
radek.tandler
b02cb7d552 fix(storage/nvs): Fixed failing test cases in example folder 2025-02-10 16:43:34 +01:00
radek.tandler
03ca56d8fb fix(storage/vfs): Fixed failing test cases in test_apps 2025-02-10 16:43:33 +01:00
radek.tandler
9a21f5fb81 fix(ci): Removed storage related ignore warnings 2025-02-10 16:43:33 +01:00
akshat
767afc9ce4 bugfix(wifi): Fix header file errors and remove esp_supplicant from check_public_headers_exceptions.txt 2025-02-10 18:52:01 +05:30
akshat
22382490ab bugfix(wifi): Add missing brackets in the C++ guard
Closes https://github.com/espressif/esp-idf/issues/14991
2025-02-10 18:51:31 +05:30
Kapil Gupta
cd934c08ab fix(esp_wifi): Add review comments and some cleanup 2025-02-10 15:46:30 +05:30
Kapil Gupta
3c085db83e fix(esp_wifi): fix some analyzer issues
Closes https://github.com/espressif/esp-idf/issues/15097
Closes https://github.com/espressif/esp-idf/issues/15098
Closes https://github.com/espressif/esp-idf/issues/15099
2025-02-10 15:46:30 +05:30
Kapil Gupta
17032b875a fix(esp_wifi): Reduce scan frequency in WPS 2025-02-10 15:11:14 +05:30
Jiang Jiang Jian
5436955fd9 Merge branch 'bugfix/esp32c5_eco1_wifi_ps_v5.4' into 'release/v5.4'
backport v5.4: fix some wifi power save issues and optimize phy sleep for esp32c5 eco1 and beta5

See merge request espressif/esp-idf!36561
2025-02-10 15:22:59 +08:00
Jiang Jiang Jian
1aab4bf1b2 Merge branch 'bugfix/pm-300-v5.4' into 'release/v5.4'
backport v5.4: fix some esp32c5 and esp32c61 light sleep wakeup issues

See merge request espressif/esp-idf!36075
2025-02-10 15:22:22 +08:00
Marius Vikhammer
5c75a994da Merge branch 'fix/esp-event-profiling_v5.4' into 'release/v5.4'
fix(esp_event): Fix event loop profiling in handler_execute function (backport v5.4)

See merge request espressif/esp-idf!36684
2025-02-10 14:45:15 +08:00
xiongweichao
76a66a7879 feat(bt): Added API to get/set low power clock source 2025-02-10 14:10:38 +08:00
laokaiyao
5d4598f986 fix(i2s): fix uninitialize warning for the default macros
Closes https://github.com/espressif/esp-idf/issues/15271
2025-02-10 11:16:19 +08:00
laokaiyao
80ef7b7494 fix(i2s): fixed incorrect logic in slot reconfig
Closes https://github.com/espressif/esp-idf/issues/15256
2025-02-10 11:16:19 +08:00
Wang Meng Yang
8deb26be27 Merge branch 'feat/add_vsc_to_support_test_v5.4' into 'release/v5.4'
feat(bt): add vendor hci command and event to support test (v5.4)

See merge request espressif/esp-idf!36571
2025-02-10 10:49:13 +08:00
Song Ruo Jing
6cb64d7025 feat(heap): add a MALLOC_CAP_SIMD flag
MALLOC_CAP_SIMD can be used to allocate memory to be used for SIMD instructions
2025-02-08 16:28:41 +08:00
Shu Chen
5fa3e381c9 Merge branch 'feat/add_callback_for_esp_ot_radio_spinel_init_v5.4' into 'release/v5.4'
feat(openthread): add an API to set rcp version string (v5.4)

See merge request espressif/esp-idf!36746
2025-02-08 16:26:56 +08:00
morris
35dc076e79 Merge branch 'fix/usb_non_periodic_backport_v5.4' into 'release/v5.4'
fix(usb/host): Set SCHED_INFO for all channels (backport v5.4)

See merge request espressif/esp-idf!36770
2025-02-08 10:07:39 +08:00
Jiang Jiang Jian
ebc370a796 Merge branch 'bugfix/remove_unused_sco_state_v5.4' into 'release/v5.4'
Bugfix/remove unused sco state (v5.4)

See merge request espressif/esp-idf!36729
2025-02-07 19:51:01 +08:00
Tomáš Rohlínek
653fa4a1f5 fix(storage/vfs): incorrect log level in esp_vfs_register_fd_range
Closes https://github.com/espressif/esp-idf/issues/14327
2025-02-07 15:24:08 +08:00
Geng Yu Chao
095d82eb9b fix(esp32h2): H2 ble timer clk enable issue
(cherry picked from commit ac8204c4ba)

Co-authored-by: Geng Yuchao <gengyuchao@espressif.com>
2025-02-07 11:46:50 +08:00
Guillaume Souchere
4b5e246b5b fix(esp_vfs_console): USB CDC read when non blocking
In non blocking mode, the read function is expected
to return weather data is available for reading or not.

In case data are available but the size does not match
the expected size, the function read should return whatever
data is available.

Previously, the function was returning -1 with errno set
to EWOULDBLOCK even if the size of data in the buffer was
less than the requested size. It would only return the
available data if the size in the buffer was greater or equal
to the requested size.

The implementation of cdcacm_read is modified to return the avilable
data from the buffer even is the size is lesser than the requested
size.
2025-02-06 09:01:30 +01:00
Tomas Rezucha
4e4c9dc726 fix(usb/host): Set SCHED_INFO for all channels
Although the hardware documentation suggests that SCHED_INFO is only used
for periodic channels, empirical evidence shows that omitting this configuration
on non-periodic channels can cause them to freeze.
Therefore, we set this field for all channels to ensure reliable operation.
2025-02-06 08:17:59 +01:00
Jiang Jiang Jian
b26d933e08 Merge branch 'change/default_value_for_esp_coex_vsc_in_bluedroid_v5.4' into 'release/v5.4'
change(bt): Set default value for BT_BLUEDROID_ESP_COEX_VSC conditionally (v5.4)

See merge request espressif/esp-idf!36734
2025-02-06 10:50:03 +08:00
Astha Verma
447887de03 fix(nimble): Handle nested locks when BT_NIMBLE_DEBUG enabled 2025-02-05 14:48:43 +05:30
morris
d79e743b79 Merge branch 'fix/move_spi_lcd_cb_fun_to_iram_v5.4' into 'release/v5.4'
feat(spi_lcd): move callback function to iram (v5.4)

See merge request espressif/esp-idf!36739
2025-02-05 14:56:01 +08:00
Xu Si Yu
77fb4e42bd feat(openthread): add an API to set rcp version string 2025-02-05 14:40:17 +08:00
David Cermak
8e8d922edc fix(esp_eth): Fix test code to unregister event correctly 2025-02-05 07:34:27 +01:00
Astha Verma
fbcdf56981 docs: Updated README.md by removing unclear lines 2025-02-05 11:54:58 +05:30
morris
724f762f57 Merge branch 'fix/periodic_fs_usb_on_p4_backport_v5.4' into 'release/v5.4'
fix(usb/host): Fixed Full Speed periodic transfers on ESP32-P4 (backport v5.4)

See merge request espressif/esp-idf!36647
2025-02-05 14:17:43 +08:00
morris
9659998ce3 Merge branch 'fix/usb_host_enum_unchecked_return_coverity_backport_v5.4' into 'release/v5.4'
fix(usb_host): Fixed unchecked return value in enum driver (coverity) (backport to v5.4)

See merge request espressif/esp-idf!36669
2025-02-05 11:49:10 +08:00
Chen Jichang
a05a12526d feat(spi_lcd): move callback function to iram
Closes https://github.com/espressif/esp-idf/issues/15160
2025-02-05 11:21:46 +08:00
Wang Mengyang
d0c2b8337b change(bt): Set default value for BT_BLUEDROID_ESP_COEX_VSC conditionally
- Set default value of BT_BLUEDROID_ESP_COEX_VSC to n if software coexistence is not required,
in host-controller combined Bluetooth stack configuration.
2025-02-05 10:16:05 +08:00
Wang Mengyang
ff6dd1f083 change(bt): Remove unused state variable for (e)SCO disconnect reason in Bluedroid 2025-02-05 10:08:51 +08:00
David Cermak
8763e28c0b fix(esp_event): Fix minor no-ISR post regression
from 15f6775f5d
2025-02-04 09:17:36 +01:00
Alexey Gerenkov
f277fbf24e Merge branch 'fix/coredump_test_uart_data_missing_v5.4' into 'release/v5.4'
Fix missing coredump uart data in tests (v5.4)

See merge request espressif/esp-idf!36711
2025-02-03 23:48:56 +08:00
Erhan Kurubas
9f3a5eb3ab test(coredump): collect all expected uart data first, then process lazily 2025-02-03 15:06:25 +01:00
Rocha Euripedes
4d02ae2562 Merge branch 'fix/test_app_certificate_v5.4' into 'release/v5.4'
Regenerate certificates for testing (v5.4)

See merge request espressif/esp-idf!36672
2025-01-31 15:59:48 +08:00
Mahavir Jain
99601e8e57 Merge branch 'feat/bootloader_nvs_read_encrypted_v5.4' into 'release/v5.4'
fix(esptool_py): NVS partition being incorrectly marked as encrypted by the build system (v5.4)

See merge request espressif/esp-idf!36679
2025-01-30 17:14:11 +08:00
Guillaume Souchere
8c89773e0d fix(esp_event): Handler unregistration by itself issue
when esp_event_handler_unregister_with_internal cannot take
the loop mutex (e.g., when the handler unregisters itself),
create an event with a special base identifier and add it to
the queue of the corresponding loop to postpone the removal
of the handler from the list at a time when the loop mutex can be
successfully taken.
2025-01-30 08:59:12 +01:00
Guillaume Souchere
f870a03223 fix(esp_event): Fix event loop profiling in handler_execute function
handler_execute function is looking to match the handler only in the
list of loop events but does not look in the base event handler list
nor the id event handler list. So unless the event handler is
registered to be triggered for all event bases and all event ids of
an event loop, its profiling fields (invoked and time) are not updated
when it is called.

This commit updates the search for the matching handler to also look
in base event list and ID event list.

Closes https://github.com/espressif/esp-idf/issues/15041
2025-01-30 08:59:02 +01:00
harshal.patil
646492db0c fix(esptool_py): Fix NVS partition being incorrectly marked as encrypted
- The CMake function esptool_py_partition_needs_encryption() in the esptool_py
component used to mark NVS partition as encrypted, instead it should have marked
the NVS keys partition as encrypted.
2025-01-30 12:01:21 +05:30
David Čermák
6b473288c3 Merge branch 'fix/ping_data_race_v5.4' into 'release/v5.4'
fix(lwip): Fix potential data-race in ping tcpip callback (v5.4)

See merge request espressif/esp-idf!36534
2025-01-30 14:15:06 +08:00
David Cermak
e7a0a93a40 fix(lwip): Fix potential data-race in ping tcpip callback
Need to use tcpip_api_call() instead of tcpip_callback(), since the
former waits for the tcpip task to complete and thus prevents potential
data races with subsequent TCP/IP tasks.
2025-01-29 23:34:18 +08:00
David Čermák
433817915c Merge branch 'test/bridge_v5.4' into 'release/v5.4'
[network/examples]: Fix build rules to test builds on for all targets (v5.4)

See merge request espressif/esp-idf!36629
2025-01-29 23:21:27 +08:00
Rocha Euripedes
836b594262 Merge branch 'lwip/dhcp_network_changed_fix_v5.4' into 'release/v5.4'
fix(lwip): Fixed compilation issue with LWIP_DHCP_RESTORE_LAST_IP (v5.4)

See merge request espressif/esp-idf!36619
2025-01-29 22:01:41 +08:00
Euripedes Rocha
ca7cf4de4b fix(mqtt): Regenerate certificates for testing
- Previous fix ommited one of the client certificates by mistaque.
- This regenerates all certificates to clean that up.
2025-01-29 14:03:29 +01:00
Roman Leonov
65aa60f844 fix(usb_host): Fixed unchecked return value in enum driver (coverity) 2025-01-29 12:51:39 +01:00
Zhang Hai Peng
28a78ba1fb fix(ble): Update bt lib for ESP32(194dd63)
- Fix the issue where disconnection events were not reported as a slave.
- Enhance Access Address validation in compatibility mode.


(cherry picked from commit b4e3c5c1e2)

Co-authored-by: zhanghaipeng <zhanghaipeng@espressif.com>
2025-01-27 18:03:17 +08:00
Zhang Hai Peng
806012cc51 feat(bt): add vendor hci command and event to support test
- add afh related vendor hci command and event
- add vendor event mask command


(cherry picked from commit b225703712)

Co-authored-by: gongyantao <gongyantao@espressif.com>
2025-01-27 18:03:17 +08:00
Tomas Rezucha
cd7fab3bdc refactor(usb): Include supported PHYs information in SoC 2025-01-27 08:08:02 +01:00
Tomas Rezucha
d12312bf76 fix(usb): Fixed missing GPIO drive capability on ESP32-P4
All USB PHYs that share their IOs with GPIOs must set
the GPIO's drive capability to maximum.
2025-01-27 08:07:42 +01:00
Tomas Rezucha
febc33a094 fix(usb/host): Fixed Full Speed periodic transfers on ESP32-P4
For FS periodic endpoints 'tokens_per_frame' must be set to 8
LL usb_dwc_ll_hctsiz_set_sched_info() function.
2025-01-27 08:07:34 +01:00
Li Shuai
27f0aef7c1 fix(uart): fix esp32c61 light sleep uart wakeup failed 2025-01-26 14:54:59 +08:00
Li Shuai
e2113d927d fix(esp_hw_support): fix esp32c5 and esp32c61 wakeup failed when TOP rejects PD 2025-01-26 14:54:59 +08:00
Li Shuai
8d303248cd fix(ci): fix some ci build issues to pass ci pipeline 2025-01-26 14:54:33 +08:00
Li Shuai
325f1f33f5 refactor(esp_phy): refactor phy sleep data initialize, split it to support multiple targets 2025-01-26 14:54:33 +08:00
Li Shuai
9e1b5eb173 change(soc): fix idf_size error caused by ldgen to run success for ci pipeline 2025-01-26 14:54:33 +08:00
Li Shuai
c74a5e3e8e change(esp_hw_support): fix wifi mac rx buffer link exception caused by pll clock 2025-01-26 14:54:33 +08:00
Li Shuai
761833493a change(esp_phy): fix some wifi power save issues and optimize phy sleep for esp32c5 eco1 and beta5 2025-01-26 14:54:33 +08:00
Island
998e365a61 Merge branch 'bugfix/fix_esp32c61_eco2_ble_light_sleep_issue_v5.4' into 'release/v5.4'
fix(ble): fix rtc freq div error on esp32c61 (v5.4)

See merge request espressif/esp-idf!36601
2025-01-26 14:26:02 +08:00
David Cermak
d244c98858 fix(network/examples): Fix build rules to test builds on for all targets
Uses wifi defines only if wifi is enabled for this target
2025-01-24 17:01:41 +01:00
Abhik Roy
eed1e02fdc test(lwip): Added LWIP_DHCP_RESTORE_LAST_IP config in lwip test apps
Enabled CONFIG_LWIP_DHCP_RESTORE_LAST_IP configuration to compile and
test the DHCP last IP restore functionality in CI tests.
2025-01-24 21:35:12 +11:00
Abhik Roy
37657757ba fix(lwip): Fixed compilation issue with LWIP_DHCP_RESTORE_LAST_IP
Closes https://github.com/espressif/esp-idf/issues/14582
2025-01-24 21:35:12 +11:00
Jin Chen
4300c344ca fix(ble): fix rtc freq div error on esp32c61
(cherry picked from commit b7571dd711)

Co-authored-by: cjin <jinchen@espressif.com>
2025-01-24 12:12:01 +08:00
Mahavir Jain
649f9a72ae Merge branch 'feat/support_aes_pseudo_round_func_in_esp32h2_eco5_v5.4' into 'release/v5.4'
Support AES and XTS-AES's pseudo round function in ESP32H2-ECO5 (v5.4)

See merge request espressif/esp-idf!36463
2025-01-23 13:20:20 +08:00
Jiang Jiang Jian
52807c1f79 Merge branch 'fix/fix_p4_usb_phy_bad_suspend_on_lslp_v5.4' into 'release/v5.4'
fix(esp_hw_support): fix p4 OTG phy bad suspend cause high power consumption on sleep (v5.4)

See merge request espressif/esp-idf!36365
2025-01-23 11:04:50 +08:00
morris
206b3a22ad Merge branch 'feat/spi_std_timing_and_bit_trans_v5.4' into 'release/v5.4'
feat(driver_spi): support adjust master rx to standard timing (v5.4)

See merge request espressif/esp-idf!36399
2025-01-23 10:38:07 +08:00
wuzhenghui
cfcd8990f6 fix(esp_hw_support): fix branch predictor access flash after cache disabled 2025-01-22 19:24:48 +08:00
morris
473771bc14 Merge branch 'fix/p4_spi_slave_example_not_work_v5.4' into 'release/v5.4'
fix(driver_spi): fixed slave (and slave_hd) driver and example error with alignment check (v5.4)

See merge request espressif/esp-idf!36403
2025-01-22 18:57:59 +08:00
Island
794d8bdad3 Merge branch 'bugfix/fix_blufi_crash_v5.4' into 'release/v5.4'
fix(blufi): Fixed crash issue during memcpy in example (v5.4)

See merge request espressif/esp-idf!36552
2025-01-22 18:18:18 +08:00
Island
b05de813e3 Merge branch 'change/ble_update_lib_20250114_v5.4' into 'release/v5.4'
change(ble): [AUTO_MR] 20250114 - Update ESP BLE Controller Lib (v5.4)

See merge request espressif/esp-idf!36480
2025-01-22 18:17:46 +08:00
zwx
86fe5a7313 feat(openthread): support hardware reset RCP while processing RCP failure 2025-01-22 17:12:15 +08:00
Zhang Hai Peng
f77da0d5b5 fix(blufi): Fixed some security issue in blufi example
(cherry picked from commit abc18e93eb)

Co-authored-by: zhanghaipeng <zhanghaipeng@espressif.com>
2025-01-22 16:34:41 +08:00
Shu Chen
9309dc5670 Merge branch 'feature/support_esp32h2eco5_phylib_v5.4' into 'release/v5.4'
feat(esp_phy): support esp32h2eco5 phylib (v5.4)

See merge request espressif/esp-idf!36208
2025-01-22 11:57:50 +08:00
zhangwenxu
73be9efbfb feat(esp_phy): support esp32h2eco5 phylib 2025-01-21 17:52:43 +08:00
Jiang Jiang Jian
e347bdd44b Merge branch 'fix/backport_wifi_fixes_v5.4' into 'release/v5.4'
fix(Wi-Fi): Backport some Wi-Fi fixes to v5.4

See merge request espressif/esp-idf!36495
2025-01-21 17:45:57 +08:00
Jiang Jiang Jian
f4721d8170 Merge branch 'bugfix/clic_register_issues_v5.4' into 'release/v5.4'
fix(soc): fix clic register definition and description (backport v5.4)

See merge request espressif/esp-idf!35590
2025-01-21 15:52:58 +08:00
renpeiying
69f788024c docs: Update CN trans for security docs 2025-01-21 12:28:23 +05:30
harshal.patil
b06a4c198a feat(bootloader_support): Permanently enable XTS-AES pseudo rounds when FE release mode is enabled 2025-01-21 12:28:23 +05:30
harshal.patil
e3acb360e3 feat(hal/spi_flash_encrypted): Enable pseudo rounds function during XTS-AES operations 2025-01-21 12:28:23 +05:30
harshal.patil
7d803e661e feat(hal/aes): Enable pseudo rounds function during AES operations 2025-01-21 12:28:23 +05:30
C.S.M
82b3f5413c feat(spi_flash): Add config for adding auto check status after suspend to improve performance 2025-01-21 14:50:23 +08:00
C.S.M
c4bb6a3970 feat(spi_flash): support software resume after suspend in unicore 2025-01-21 14:50:23 +08:00
Shu Chen
0fb61ec9e0 Merge branch 'fix/ci_restart_avahi_daemon_v5.4' into 'release/v5.4'
fix(ci): restart avahi-daemon in otbr service discovery test case (v5.4)

See merge request espressif/esp-idf!36433
2025-01-21 14:41:58 +08:00
zwx
138cd7cf24 fix(ci): restart avahi-daemon in otbr service discovery test case 2025-01-21 11:26:10 +08:00
Shu Chen
3341d6ac1b Merge branch 'fix/fix_coex_macro_control_v5.4' into 'release/v5.4'
fix(openthread): use the correct macros to control code compilation (v5.4)

See merge request espressif/esp-idf!36456
2025-01-20 19:14:13 +08:00
Xu Si Yu
149ea88752 fix(openthread): use the correct macros to control code compilation 2025-01-20 16:45:36 +08:00
morris
d512a2999a Merge branch 'refactor/usb_merge_p4_phy_backport_v5.4' into 'release/v5.4'
refactor(usb/phy): Merge P4 and S2/S3 PHYs into one module (backport 5.4)

See merge request espressif/esp-idf!36449
2025-01-20 14:34:43 +08:00
linruihao
e6e09dbc4c feat(coex): add coexist scheme for bt inquiry/page coexist with wifi 2025-01-20 14:20:29 +08:00
zhangyanjiao
9195bcbe22 fix(wifi/mesh): fixed the mesh connection failure in WPA3 mode after erasing flash
Closes https://github.com/espressif/esp-idf/issues/14095
2025-01-20 14:19:37 +08:00
Sarvesh Bodakhe
e789554997 fix(wifi): Fix bug in authmode detection for wpa2/wpa3 enterprise
WPA3-Enterprise mandates the use of AKM suite selector
00:0F:AC:5 (IEEE80211 802.1X with SHA-256)
2025-01-20 14:18:51 +08:00
Kapil Gupta
85156cceff fix(esp_wifi): Address some review comments 2025-01-20 14:18:14 +08:00
Aditi
7900eeca4e fix(wpa_supplicant): Remove the btm_rrm task from supplicant
This commit removes btm_rrm_t task and CONFIG_SUPPLICANT_TASK from
wpa_supplicant and make the functions work in wifi task's context.
2025-01-20 14:17:58 +08:00
Aditi
5f2fb56755 fix(wpa_supplicant): Fix for sending alternate ft-auth in roaming 2025-01-20 14:17:48 +08:00
Aditi
318ad17991 fix(wpa_supplicant): Add two separate flags for RRM and WNM
Added two separate flags CONFIG_RRM(80211k) and CONFIG_WNM(80211v)
    flags under IEEE80211KV support flag.
2025-01-20 14:17:38 +08:00
Aditi
3f3c3d9a14 fix(wpa_supplicant): Add some minor fixes in roaming
1) Add a fix in roaming example for 11kvr
    2) Removed length constraint for neighbor report received.
2025-01-20 14:17:27 +08:00
Aditi
bdc099af7f fix(esp_wifi): Add fix for error handling for FT-Auth 2025-01-20 14:17:17 +08:00
yinqingzhao
c725253d53 feat(wifi): add wifi support for esp32c61 eco2 2025-01-20 14:16:30 +08:00
xuxiao
dd11e4514b feat(wifi): add phy support for esp32c5 beta5 2025-01-20 14:16:12 +08:00
Martin Vychodil
86ace15e10 Merge branch 'fix/broken_fatfsgen_tests_v5.4' into 'release/v5.4'
fix(storage/fatfsgen): broken test_apps scripts for fatfsgen (v5.4)

See merge request espressif/esp-idf!36488
2025-01-18 05:39:01 +08:00
Tomáš Rohlínek
a92d5e9358 fix(storage/fatfsgen): broken test_apps scripts for fatfsgen 2025-01-17 18:31:50 +01:00
Marius Vikhammer
5fdc217858 Merge branch 'docs/correct_ulp_idf_monitor_command_v5.4' into 'release/v5.4'
docs(ulp): Fix esp_idf_monitor command for ulp monitoring (v5.4)

See merge request espressif/esp-idf!36470
2025-01-17 18:05:51 +08:00
Jiang Jiang Jian
ebd04eb2fc Merge branch 'fix/fix_esp32c2_eco4_rx_csa_ld_v54' into 'release/v5.4'
fix(wifi): fix esp32c2eco4 sta_rx_csa ld

See merge request espressif/esp-idf!36203
2025-01-17 17:42:02 +08:00
morris
cad9cc2ab2 Merge branch 'refactor/improve_the_compatible_method_on_h2_v5.4' into 'release/v5.4'
refactor(lpperi): improve compatibility solution (v5.4)

See merge request espressif/esp-idf!36422
2025-01-17 16:56:56 +08:00
Zhou Xiao
1c5f26af2b change(ble): update esp32c2 rom ld file
(cherry picked from commit e5feba6ed3)

Co-authored-by: Zhou Xiao <zhouxiao@espressif.com>
2025-01-17 16:54:09 +08:00
Zhou Xiao
bf0ba2bb51 change(ble): [AUTO_MR] Update lib_esp32c2 to 7b7ee440
(cherry picked from commit c263c75897)

Co-authored-by: zhouxiao <zhouxiao@espressif.com>
2025-01-17 16:54:06 +08:00
Zhou Xiao
cc1b79e98c change(ble): [AUTO_MR] Update lib_esp32c6 to bbc1903d
(cherry picked from commit 06a6b311a8)

Co-authored-by: zhouxiao <zhouxiao@espressif.com>
2025-01-17 16:54:04 +08:00
Zhou Xiao
1f8539e9b3 change(ble): [AUTO_MR] Update lib_esp32h2 to bbc1903d
(cherry picked from commit 4f5f0b0954)

Co-authored-by: zhouxiao <zhouxiao@espressif.com>
2025-01-17 16:54:02 +08:00
Sudeep Mohanty
36139f8620 docs(ulp): Fix esp_idf_monitor command for ulp monitoring
The commit fixes the esp_idf_monitor command for monitoring ulp serial
output as mentioned in the docs.
2025-01-17 08:29:19 +01:00
Jiang Jiang Jian
e7e3d5924e Merge branch 'fix/fix_tsens_power_after_modem_wakeup_v5.4' into 'release/v5.4'
fix(esp_hw_support): fix tsensor power enable failed after modem state wakeup (v5.4)

See merge request espressif/esp-idf!36228
2025-01-17 11:45:25 +08:00
Jiang Jiang Jian
58cc66ac65 Merge branch 'ci/iperf_esp32p4_v5.4' into 'release/v5.4'
ci(esp_eth): added ESP32P4 to iperf CI test (v5.4)

See merge request espressif/esp-idf!36389
2025-01-17 11:44:15 +08:00
Jiang Jiang Jian
26fd34b864 Merge branch 'fix/lwip_ping_getnetif_threadsafe_v5.4' into 'release/v5.4'
fix(lwip): Fix ping session calling thread unsafe API (v5.4)

See merge request espressif/esp-idf!36379
2025-01-17 11:43:24 +08:00
Jiang Jiang Jian
192874f939 Merge branch 'change/ble_update_lib_20250103_v5.4' into 'release/v5.4'
change(ble): [AUTO_MR] 20250103 - Update ESP BLE Controller Lib (v5.4)

See merge request espressif/esp-idf!36373
2025-01-17 11:42:18 +08:00
wangtao@espressif.com
18aced40f9 fix(wifi): fix esp32c2eco4 sta_rx_csa ld 2025-01-17 11:41:43 +08:00
gaoxiaojie
58df18a361 fix(soc): fix clic register define and add description 2025-01-17 11:40:50 +08:00
Jiang Jiang Jian
74896d4187 Merge branch 'feature/efuse_update_for_esp32h2_eco5_v5.4' into 'release/v5.4'
feat(efuse): Adds efuses for esp32h2 eco5 (v5.4)

See merge request espressif/esp-idf!36238
2025-01-17 11:39:31 +08:00
Jiang Jiang Jian
054a0be454 Merge branch 'bugfix/sync_buf_crash_v5.4' into 'release/v5.4'
fix(bt/controller): fixed missing critical protections on linked-list structure of (e)SCO buffers (v5.4)

See merge request espressif/esp-idf!36340
2025-01-17 11:38:28 +08:00
wanckl
6c6454357c feat(driver_spi): support using SPI_DEVICE_STD_TIMING to adjust master rx in standard timing 2025-01-17 10:51:47 +08:00
Shu Chen
f4e4591180 Merge branch 'fix/set_154_cca_duration_v5.4' into 'release/v5.4'
fix(15.4): set 15.4 energy scan duration before cca (v5.4)

See merge request espressif/esp-idf!36424
2025-01-17 09:27:19 +08:00
Tomas Rezucha
f1fa7b1408 refactor(usb/phy): Merge P4 and S2/S3 PHYs into one module
P4 had separate PHY implementation for initial bring-up,
now we can merge it with the original PHY driver.
2025-01-16 10:19:31 +01:00
Jiang Jiang Jian
fbd97514df Merge branch 'fix/backport_wifi_fixes_v5.4' into 'release/v5.4'
fix(wifi): backport wifi fixes to v5.4

See merge request espressif/esp-idf!36330
2025-01-16 17:16:13 +08:00
morris
9fb37219a2 Merge branch 'refactor/cleanup_usb_phy_v5.4' into 'release/v5.4'
Cleanup USB PHY (backport v5.4)

See merge request espressif/esp-idf!36236
2025-01-16 16:53:31 +08:00
Xu Si Yu
35a590c437 fix(15.4): set 15.4 energy scan duration before cca 2025-01-16 11:45:29 +08:00
laokaiyao
889537960e refactor(lpperi): improve compatibility solution 2025-01-16 10:21:17 +08:00
Ondrej Kosta
a2eba1e25a ci(esp_eth): added ESP32P4 to iperf CI test
Updated (increased) ETH_THROUGHPUT_SPI_ETH limits.
Improved iperf optimization description
2025-01-15 22:53:04 +08:00
Nachiket Kukade
ba8494eb87 fix(wpa_supplicant): Fix some coverity issues in wpa_supplicant
1. Fix leak in SoftAP while sending SAE Confirm
2. Move NULL check before pointer is getting used
3. Remove some dead code
2025-01-15 19:42:12 +05:30
wangtao@espressif.com
08db2390e5 fix(wifi): fix build issue when disable wpa3 sae 2025-01-15 19:42:12 +05:30
Shreyas Sheth
29a95d30cc fix(wifi): Resolve comments for softap fixes 2025-01-15 19:42:12 +05:30
Shreyas Sheth
913999b8c3 fix(wifi): Resolve comments on feature/softap_fixes_for_ceritification 2025-01-15 19:42:11 +05:30
Shreyas Sheth
98c47bbfae fix(wifi): Make sure auth is sent after sae process 2025-01-15 19:42:11 +05:30
Shreyas Sheth
81070bce92 feat(wifi): Add support for transition_disable for softAP
Bugfix rsnxe len for assoc req
2025-01-15 19:42:11 +05:30
liuning
ce124478f1 fix(wifi): fix double max active time, fix coex pwr period cant been updated by ps type set 2025-01-15 19:42:11 +05:30
liuning
fbe0e5a358 feat(coex): update coexist debug default event 2025-01-15 19:42:11 +05:30
Sarvesh Bodakhe
716c5731ec feat(wpa_supplicant): Add WIFI_EVENT_AP_WRONG_PASSWORD in SoftAP
This event is triggered when external station tries connecting to softAP
with wrong password.

Currently supported softAP AUTH modes: WPA-PSK, WPA2-PSK and WPA3-PSK (SAE-auth)
2025-01-15 19:42:11 +05:30
yinqingzhao
3fca3a1223 fix(wifi): expend bit width of channel in rxctrl 2025-01-15 19:42:11 +05:30
yinqingzhao
f890bbe616 feat(wifi): wifi support 80211tx using 11ax and 11ac rate 2025-01-15 19:42:11 +05:30
wangtao@espressif.com
3c8926d3b6 fix(wifi): fix hostap recv unassoc pspoll send deauth issue 2025-01-15 19:42:11 +05:30
Rahul Tank
2ebbfef5f4 Merge branch 'bugfix/fix_compilation_warn_v5.4' into 'release/v5.4'
fix(nimble): Address compilation warnings for different flag combination (v5.4)

See merge request espressif/esp-idf!36392
2025-01-15 21:33:32 +08:00
Roland Dobai
a84b03dd41 Merge branch 'fix/remove_duplicates_from_sdkconfig_renames_v5.4' into 'release/v5.4'
fix: remove duplicit lines from sdkconfig.rename files (v5.4)

See merge request espressif/esp-idf!36346
2025-01-15 17:58:26 +08:00
morris
1cb5c64fc0 Merge branch 'refactor/update_lpperi_regs_for_h2_eco5_v5.4' into 'release/v5.4'
refactor(lpperi): compatible refactor for H2 ECO5 (v5.4)

See merge request espressif/esp-idf!36335
2025-01-15 16:09:59 +08:00
wanckl
86741aebd4 fix(driver_spi): fixed slave example error on esp32p4 2025-01-15 16:03:12 +08:00
wanckl
273f2be226 fix(driver_spi): fixed slave_hd driver transaction alignment check 2025-01-15 16:03:12 +08:00
Rahul Tank
7029c169cb fix(nimble): Fix compilation issues for different flag combinations 2025-01-15 10:09:52 +05:30
morris
a75eab44ba Merge branch 'change/bs_cmake_cleanup_v5.4' into 'release/v5.4'
feat(gdma): added help function to count the bytes in the receive buffer (v5.4)

See merge request espressif/esp-idf!36375
2025-01-15 12:27:10 +08:00
morris
bd5c6b0645 Merge branch 'contrib/github_pr_15144_v5.4' into 'release/v5.4'
fix(twai): TWAI_GENERAL_CONFIG_DEFAULT_V2 initialize general_flags (GitHub PR) (v5.4)

See merge request espressif/esp-idf!36323
2025-01-15 12:26:58 +08:00
Shu Chen
3b41c1a5a0 Merge branch 'feat/update_thread_lib_v5.4' into 'release/v5.4'
fix(openthread): update SRP server to support zero subtype (v5.4)

See merge request espressif/esp-idf!36345
2025-01-15 10:57:46 +08:00
David Cermak
d715abb8fd fix(lwip): Fix ping session calling thread unsafe API
Closes https://github.com/espressif/esp-idf/issues/14982
2025-01-14 11:25:31 +01:00
Zhou Xiao
dace9697b5 change(ble): updated esp_bt.h controller config for ESP32-C5 2025-01-14 17:52:59 +08:00
zwl
6bdfda8169 fix(ble): fixed esp_ble_tx_power_set api issue on ESP32-C5 2025-01-14 17:50:56 +08:00
zwl
be796ba6c7 feat(ble): support for putting ble code into flash on ESP32-C5 2025-01-14 17:50:48 +08:00
zhouxiao
4bcbad08ea change(ble): Update lib_esp32c5 to 3422b706 2025-01-14 17:50:37 +08:00
Zhou Xiao
d4ebd1ec26 fix(ble): fixed ld file for c2eco0 and c2eco4
(cherry picked from commit 937fe2a6e3)

Co-authored-by: zhouxiao <zhouxiao@espressif.com>
2025-01-14 17:45:32 +08:00
morris
2d6bc67fb5 feat(gdma): added API to count the size of rx buffer until eof 2025-01-14 16:39:05 +08:00
Zhou Xiao
52b06af63f fix(ble): fixed esp_ble_tx_power_set api issue on ESP32-H2
(cherry picked from commit d2b62f2130)

Co-authored-by: zwl <zhaoweiliang@espressif.com>
2025-01-14 14:54:51 +08:00
Zhou Xiao
7d6ce29de9 fix(ble): fixed esp_ble_tx_power_set api issue on ESP32-C6
(cherry picked from commit 8d6ec12838)

Co-authored-by: zwl <zhaoweiliang@espressif.com>
2025-01-14 14:54:49 +08:00
Zhou Xiao
a190bae264 fix(ble): fixed esp_ble_tx_power_set api issue on ESP32-C2
(cherry picked from commit 6a752eeb89)

Co-authored-by: zwl <zhaoweiliang@espressif.com>
2025-01-14 14:54:47 +08:00
Zhou Xiao
d1a1156d4d feat(ble): support for putting ble code into flash on ESP32-H2
(cherry picked from commit 5a9acdc379)

Co-authored-by: zwl <zhaoweiliang@espressif.com>
2025-01-14 14:54:45 +08:00
Zhou Xiao
8fb74a1235 feat(ble): support for putting ble code into flash on ESP32-C6
(cherry picked from commit 02d6d6fd73)

Co-authored-by: zwl <zhaoweiliang@espressif.com>
2025-01-14 14:54:43 +08:00
Zhou Xiao
00fb58c133 change(ble): Update lib_esp32c2 to 2a00fb0b
(cherry picked from commit 7cd3fe6953)

Co-authored-by: zhouxiao <zhouxiao@espressif.com>
2025-01-14 14:54:40 +08:00
Zhou Xiao
d63157b914 change(ble): Update lib_esp32c6 to 3422b706
(cherry picked from commit 4fc95fa91f)

Co-authored-by: zhouxiao <zhouxiao@espressif.com>
2025-01-14 14:54:38 +08:00
Zhou Xiao
59a90dd17c change(ble): Update lib_esp32h2 to 3422b706
(cherry picked from commit fe5a12e7e7)

Co-authored-by: zhouxiao <zhouxiao@espressif.com>
2025-01-14 14:54:36 +08:00
wuzhenghui
9b7ce542f2 fix(esp_hw_support): fix p4 OTG phy bad suspend cause high power consumption on sleep 2025-01-14 14:22:39 +08:00
Mahavir Jain
9acf088718 Merge branch 'bugfix/update_api_to_get_url_correctly_v5.4' into 'release/v5.4'
fix(esp_http_client): updated API esp_http_client_get_url() to get URL in correct format (v5.4)

See merge request espressif/esp-idf!36331
2025-01-14 12:45:07 +08:00
Jan Beran
350d38f989 fix: remove duplicit lines from sdkconfig.rename files 2025-01-13 09:07:21 +01:00
Mahavir Jain
c8bb53292d Merge branch 'fix/return_esp_err_t_for_httpd_req_get_url_query_str_v5.4' into 'release/v5.4'
feat(https_server): Added checks to verify if uri is empty (v5.4)

See merge request espressif/esp-idf!36286
2025-01-13 15:57:45 +08:00
Tan Yan Quan
ddd0843d0e fix(openthread): update SRP server to support zero subtype/v5.4 2025-01-13 15:24:47 +08:00
morris
cf1692c96c Merge branch 'bugfix/reset_axi_gdma_gracefully_v5.4' into 'release/v5.4'
fix(gdma): stop the axi gdma gracefully on CPU SW reset (v5.4)

See merge request espressif/esp-idf!36283
2025-01-13 15:12:26 +08:00
Jin Cheng
6d1b21b167 fix(bt/controller): fixed missing critical protections on linked-list structure of (e)SCO buffers 2025-01-13 14:52:28 +08:00
laokaiyao
25f64d9cbd refactor(lpperi): compatible refactor for H2 ECO5 2025-01-13 14:36:00 +08:00
nilesh.kale
90d2dbad99 fix(esp_http_client): updated API esp_http_client_get_url to get URL in correct format
This commit updates the API to include the port number in the URL,
which was previously missing.
2025-01-13 11:14:20 +05:30
Rahul Tank
c6637ae369 Merge branch 'bugfix/fix_few_nimble_issues_v5.4' into 'release/v5.4'
fix(nimble): Fix few nimble issues 11012025 (v5.4)

See merge request espressif/esp-idf!36310
2025-01-13 13:24:50 +08:00
Shu Chen
1ceb4e4682 Merge branch 'feature/154_api_enhancement_for_mp_v5.4' into 'release/v5.4'
feat(802.15.4): support register isr callback (v5.4)

See merge request espressif/esp-idf!36198
2025-01-13 10:57:07 +08:00
morris
6af9dc6934 test(twai): add cxx build test 2025-01-13 10:13:56 +08:00
Nebojsa Cvetkovic
b1abc47d74 fix(twai): TWAI_GENERAL_CONFIG_DEFAULT_V2 initialize general_flags
Closes https://github.com/espressif/esp-idf/pull/15144
2025-01-13 10:13:53 +08:00
morris
93f91c4f0f Merge branch 'ci/re_enable_i2s_pytest_exceptions_v5.4' into 'release/v5.4'
ci(i2s): re-enable example pytest exceptions (v5.4)

See merge request espressif/esp-idf!36312
2025-01-11 22:13:32 +08:00
laokaiyao
c61b2c4095 ci(i2s): re-enable example pytest exceptions 2025-01-10 20:20:04 +08:00
Abhinav Kudnar
3f4dd2bf35 feat(nimble): Additional changes in PAWR IDF Examples/support for ESP IP 2025-01-10 17:11:32 +05:30
Rahul Tank
99af3abadf fix(nimble): Fixed a typo in Kconfig file 2025-01-10 17:11:16 +05:30
Astha Verma
d9de2b7dde fix(nimble): Added HCI_Read_Remote_Version_Information command 2025-01-10 17:10:43 +05:30
Rahul Tank
1bbc6fb9b8 fix(nimble): Clear our and peer security records during unpair 2025-01-10 17:09:51 +05:30
Roland Dobai
72112c3fda Merge branch 'feature/add_utf_8_decoding_v5.4' into 'release/v5.4'
feat(tools): Enforced utf-8 encoding with Python open() functions (v5.4)

See merge request espressif/esp-idf!36125
2025-01-10 19:26:10 +08:00
Roland Dobai
f6ad4d5056 Merge branch 'fix/test_idf_gdb_v5.4' into 'release/v5.4'
test(system): mark gdb test runners properly (v5.4)

See merge request espressif/esp-idf!35586
2025-01-10 18:15:32 +08:00
Island
fe24a1c835 Merge branch 'feat/add_config_for_ble_vs_qa_cmd_v5.4' into 'release/v5.4'
fixed interrupt WDT when shutdown bt controller on ESP32(ba6739f) (v5.4)

See merge request espressif/esp-idf!36176
2025-01-10 14:17:41 +08:00
Marek Fiala
b37383f75b feat(tools): Enforce utf-8 encoding with open() function 2025-01-10 13:52:58 +08:00
Roland Dobai
73d1c139e7 Merge branch 'ci/improve_overall_logging_v5.4' into 'release/v5.4'
ci: target-test job skip installing toolchain, only install python env (v5.4)

See merge request espressif/esp-idf!34905
2025-01-10 13:52:24 +08:00
zwx
699af05b57 feat(802.15.4): introduced a feature for registering 802.15.4 ISR callbacks 2025-01-10 13:51:30 +08:00
hrushikesh.bhosale
f96a118ebf feat(https_server): Added checks to verify if uri is empty
Added the checks if the URI is empty for the funtions httpd_req_get_url_query_len
and httpd_req_get_url_query_str in httpd_parser.c
2025-01-10 11:09:31 +05:30
morris
098ecb1cf1 Merge branch 'bugfix/uart_single_wire_mode_v5.4' into 'release/v5.4'
fix(uart): allow same pin for tx and rx in uart_set_pin; UART_SELECT_READ_NOTIF race conditon fix (v5.4)

See merge request espressif/esp-idf!36250
2025-01-10 11:39:53 +08:00
wuzhenghui
667011cd46 fix(esp_hw_support): fix tsens power enable failed after modem state wakeup 2025-01-10 10:21:39 +08:00
morris
605fb6e894 fix(dma): abort the axi dma gracefully on CPU SW reset 2025-01-10 10:14:36 +08:00
Fu Hanxi
be2ec1615c ci: target-test job skip installing toolchain, only install python env
also run with collapsed time section to better track run time
2025-01-10 02:25:32 +08:00
Fu Hanxi
7e465dd526 ci: ignore test-specific 3rd-party libs while building clang projects 2025-01-10 02:25:32 +08:00
Fu Hanxi
e1781df75b feat: idf_tools.py export support env var "IDF_SKIP_TOOLS_CHECK" 2025-01-10 02:25:32 +08:00
Fu Hanxi
f326d5d7ce ci: print esp-coredump output when failed in panic tests 2025-01-10 02:25:32 +08:00
Fu Hanxi
ffdb0f012e ci: remove gcc dependency in target test 2025-01-10 02:25:32 +08:00
Fu Hanxi
257878ddb4 ci: change logging level from debug to info for build jobs 2025-01-10 02:25:32 +08:00
Fu Hanxi
ffbdd8a145 ci: add timeout for build jobs 2025-01-10 02:25:32 +08:00
Fu Hanxi
e0f374d92b ci: stop print presigned url, since the credential is masked 2025-01-10 02:25:32 +08:00
Erhan Kurubas
8aabaea4f5 change(cmake): use board configuration file for ftdi interface 2025-01-09 12:39:23 +01:00
Erhan Kurubas
e565643a3b test(system): mark gdb test runners properly 2025-01-09 12:37:19 +01:00
Roland Dobai
5bb41c4932 Merge branch 'feature/move-gdb-options-to_project_description_json_v5.4' into 'release/v5.4'
feat(debugging): move gdbinit generation to CMake (v5.4)

See merge request espressif/esp-idf!35175
2025-01-09 18:58:23 +08:00
morris
a45778a028 Merge branch 'feat/ldo_can_output_3v3_v5.4' into 'release/v5.4'
feat(ldo): support output rail voltage (3.3V) (v5.4)

See merge request espressif/esp-idf!36130
2025-01-09 17:15:00 +08:00
Jiang Jiang Jian
db6e451f14 Merge branch 'bugfix/channel_resolution_calculation_v5.4' into 'release/v5.4'
fix(rmt): channel resolution divider rounding issue (v5.4)

See merge request espressif/esp-idf!36032
2025-01-09 11:38:53 +08:00
Jiang Jiang Jian
5747e16f74 Merge branch 'fix/blufi_example_mem_access_v5.4' into 'release/v5.4'
fix(ble/blufi): Fixed blufi example security issue (v5.4)

See merge request espressif/esp-idf!36164
2025-01-09 11:38:08 +08:00
Jiang Jiang Jian
dd00aa1776 Merge branch 'fix/heap-allocate-in-rtc-iram_v5.4' into 'release/v5.4'
fix(heap): MALLOC_CAP_EXEC does not allocate in RTC IRAM (backport v5.4)

See merge request espressif/esp-idf!35623
2025-01-09 11:36:16 +08:00
Jiang Jiang Jian
7317a6213c Merge branch 'docs/update_cn_vfs_v5.4' into 'release/v5.4'
docs: Update CN translation for vfs.rst (v5.4)

See merge request espressif/esp-idf!35404
2025-01-09 11:35:25 +08:00
Island
4986601e66 Merge branch 'bugfix/fix_some_ble_bugs_241224_esp32c3_v5.4' into 'release/v5.4'
Fixed some BLE bugs 241224 on ESP32C3(fd62b31) (v5.4)

See merge request espressif/esp-idf!36196
2025-01-09 11:35:07 +08:00
chenjianhua
ecf663cb7d fix(bt): Update bt lib for ESP32(ba6739f)
- Fixed assert in lld_evt.c at line 2353
- Fixed interrupt WDT when shutdown bt controller
- Added config for BLE vendor HCI QA command
- Added config for BLE channel assessment and ping procedure
2025-01-09 10:39:10 +08:00
Island
96c2beeef2 Merge branch 'docs/refactor_ceva_bt_controller_api_v5.4' into 'release/v5.4'
docs(ble): Refactored the API reference for esp32/c3/s3 BT controller (v5.4)

See merge request espressif/esp-idf!35353
2025-01-09 10:36:03 +08:00
Wei Yu Han
3e49a5fb68 docs(ble): Refactored the API reference for esp32/c3/s3 BT controller (v5.4) 2025-01-09 10:36:03 +08:00
Marius Vikhammer
8612033b17 Merge branch 'fix/ringbuf_receives_after_aq_wraparound_v5.4' into 'release/v5.4'
fix(esp_ringbuf): Fixed no-split ringbuf issue where acquire pointer  wraps around (v5.4)

See merge request espressif/esp-idf!35867
2025-01-09 09:30:18 +08:00
morris
ac6e1341c4 Merge branch 'fix/flash_noos_issues_v5.4' into 'release/v5.4'
flash: fixed some no_os API issues (v5.4)

See merge request espressif/esp-idf!35791
2025-01-08 22:12:16 +08:00
Rahul Tank
92fab01566 Merge branch 'bugfix/fix_csfc_write_nvs_v5.4' into 'release/v5.4'
fix(nimble): Corrected storing method of csfc to nvs (v5.4)

See merge request espressif/esp-idf!36165
2025-01-08 21:47:47 +08:00
Alex Bethel
441effd499 docs: Fix gpio_dump_io_configuration typo in docs
The mentioned `gpio_dump_all_io_configuration` function doesn't exist,
the correct function is `gpio_dump_io_configuration`.

Merges https://github.com/espressif/esp-idf/pull/15031
2025-01-08 20:40:53 +08:00
Song Ruo Jing
131330034a fix(uart): allow same pin for tx and rx in uart_set_pin
Closes https://github.com/espressif/esp-idf/issues/14787
2025-01-08 20:38:11 +08:00
Sergei Silnov
6d888a9584 Merge branch 'ci/pre-commit-idf-build-apps-version_v5.4' into 'release/v5.4'
ci: update idf-build-apps version in pre-commit (v5.4)

See merge request espressif/esp-idf!35465
2025-01-08 19:58:56 +08:00
Song Ruo Jing
f693485ad0 fix(uart): fix race condition with the use of UART_SELECT_READ_NOTIF
UART_SELECT_READ_NOTIF needs to be sent after received data got processed
to avoid the potential race condition
2025-01-08 19:44:36 +08:00
Konstantin Kondrashov
a98c20d4e0 feat(espefuse): Adds efuses for esp32h2 eco5
- Support efuses that are not present in the main efuse table
2025-01-08 11:16:49 +02:00
Tomas Rezucha
f93e1bc43b refactor(usb/phy): Start using values from usb_dwc_info in PHY driver
Add tests for PHY sanity checks
2025-01-08 09:26:48 +01:00
Tomas Rezucha
b78bcaea36 refactor(usb/phy): Do not use deprecated variables in usb_phy 2025-01-08 09:26:41 +01:00
Tomas Rezucha
ac3a3f801d feat(hal/usb): Explicitly enable clock and reset USB WRAP on init 2025-01-08 09:25:42 +01:00
Shu Chen
d43f647f80 Merge branch 'feat/support_setting_event_for_154_txrx_5_4' into 'release/v5.4'
feat(15.4): support setting 15.4 txrx pti when coex is enabled (backport to 5.4)

See merge request espressif/esp-idf!36109
2025-01-08 16:09:36 +08:00
Rahul Tank
128534dd66 fix(nimble): Corrected storing method of csfc to nvs 2025-01-08 13:04:31 +05:30
Marius Vikhammer
dc23968cc2 Merge branch 'fix/esp32p4_unexpected_reset_v5.4' into 'release/v5.4'
fix(system): avoid unexcpected hp_sys_wdt reset (v5.4)

See merge request espressif/esp-idf!35801
2025-01-08 13:40:40 +08:00
morris
c4b2f65031 Merge branch 'feat/rmt_return_real_channel_resolution_v5.4' into 'release/v5.4'
feat(rmt): add API to return the real clock resolution of a channel (v5.4)

See merge request espressif/esp-idf!35901
2025-01-08 11:23:31 +08:00
Marius Vikhammer
589020f0df Merge branch 'docs/remove_coex_doxy_v5.4' into 'release/v5.4'
docs(doxygen): removed coex header from doxyfile (v5.4)

See merge request espressif/esp-idf!36222
2025-01-08 10:32:51 +08:00
morris
cfc878a650 Merge branch 'refactor/cleanup_usb_phy_backport_v5.4' into 'release/v5.4'
fix(usb/host): Fix reaction on High-Speed NYET packet (backport v5.4)

See merge request espressif/esp-idf!36119
2025-01-08 10:22:50 +08:00
Marius Vikhammer
ef9bbf344b docs(doxygen): removed coex header from doxyfile
Failing to build due to missing comments, but the header was
never included in the docs anyway, so might as well remove it.
2025-01-08 09:38:35 +08:00
Rahul Tank
ad9e0d5b7c Merge branch 'bugfix/ble_common_issues_v5.4' into 'release/v5.4'
Bugfix/ble common issues v5.4

See merge request espressif/esp-idf!35790
2025-01-07 23:35:21 +08:00
Armando
4a9fb951cf fix(cache): fixed cache hal ctx not initialised in app issue 2025-01-07 20:08:02 +08:00
Armando
8c8f8836e5 fix(spi_flash): fixed no_os flash API not consider branch predictor on c5/c61 2025-01-07 20:08:02 +08:00
Armando
49826c241b fix(spi_flash): fixed no_os flash API not consider cache states issue on h2/p4/c6/c5/c61 2025-01-07 20:08:02 +08:00
Erhan Kurubas
954132b68a fix(system): avoid unexcpected hp_sys_wdt reset 2025-01-07 20:07:17 +08:00
Rahul Tank
71b0d14b21 fix(nimble): Fix compilation issue in esp_hid_host example 2025-01-07 16:27:20 +05:30
Rahul Tank
8163aa8496 fix(nimble): Address few coverity reported issues
1. Overflowed constant (INTEGER_OVERFLOW): Added change to typecast
value
2. Structurally dead code: Removed dead code
3. Resource leak: Added a free for allocated memory, in case of failure
4. too_few_printf_args: Corrected print statement to pass arguments
5. Fixed nesting levels
6. Fixed unused value warnings
7. Illegal memory access fix
2025-01-07 16:27:18 +05:30
Abhinav Kudnar
c28509987c fix(nimble): Save the gatt context in case of preemption 2025-01-07 16:23:19 +05:30
Rahul Tank
594137b0e3 fix(nimble): Fix compilation issue for combination of Ext Adv and Reattempt conn flag 2025-01-07 16:23:19 +05:30
Rahul Tank
8108f35850 fix(nimble): Add ATT Tx queue cleanup during link disconnection 2025-01-07 16:23:19 +05:30
Rahul Tank
0dc38beb81 fix(nimble): Fix compilation issues when BLE_MAX_STORE_BOND is set to 0 2025-01-07 16:23:19 +05:30
Shreeyash
b5dd19e613 fix(nimble): Added a check for invalid offset 2025-01-07 16:23:19 +05:30
shreeyash
0aab10f023 fix(nimble): Updated peer OTA address type 2025-01-07 16:23:19 +05:30
Astha Verma
53744fe62c fix(nimble): fix memory leak issue in Blufi example 2025-01-07 16:23:19 +05:30
Astha Verma
f84739cce0 fix(nimble): Added a function for printing HCI error definition 2025-01-07 16:23:19 +05:30
Abhinav Kudnar
408d841dfe fix(nimble): Changing esp_rom_printf to ESP_LOGI when memory allocation fails 2025-01-07 16:23:18 +05:30
Rahul Tank
fc3ecc2527 fix(nimble): Corrected link_estab event handling parameters 2025-01-07 16:23:17 +05:30
Shu Chen
ebd77e121d Merge branch 'feat/set_get_ack_timeout_v5.4' into 'release/v5.4'
feat(802.15.4): add api for set/get ack timeout (v5.4)

See merge request espressif/esp-idf!36085
2025-01-07 14:54:16 +08:00
Zhuang Hang
e9220ca8e6 feat(802.15.4): add api for set/get ack timeout (v5.4) 2025-01-07 14:54:16 +08:00
Chen Jian Hua
331e368647 fix(bt): Update bt lib for ESP32-C3 and ESP32-S3(fd62b31)
- Fixed periodic adv enable params checking
- Fixed BLE assert lld_scan.c 1728 when receiving directed adv
- Support resolving RPA to identity address when creating connection
- Fixed BLE assert rwble.c 505 param 00400010
- Fixed peer address type error in HCI LE meta event
- Fixed setting random address failed when extended adv is enabled


(cherry picked from commit 326f391f9c)

Co-authored-by: chenjianhua <chenjianhua@espressif.com>
2025-01-07 14:33:39 +08:00
Rahul Tank
03a4e24394 fix(nimble): Fixes for security vulnerabilities reported in NimBLE 2025-01-07 10:19:30 +05:30
Astha Verma
bc29f45224 fix(nimble): added a function for printing HCI error definition 2025-01-07 10:19:30 +05:30
Xu Si Yu
59cd4c481d feat(15.4): support setting 15.4 txrx pti when coex is enabled 2025-01-07 12:23:24 +08:00
Xu Si Yu
a4843338e8 fix(openthread): fix openthread radio spinel deinit 2025-01-07 12:22:16 +08:00
Xu Si Yu
17ec36e3e0 fix(openthread): fix a naming error of kconfig 2025-01-07 12:21:38 +08:00
Shu Chen
488c9c6d3f Merge branch 'feature/change_ot_ci_cases_wlan_to_ethernet_v5.4' into 'release/v5.4'
feat(openthread): change wlan to ethernet (Backport v5.4)

See merge request espressif/esp-idf!35742
2025-01-07 10:58:54 +08:00
Jiang Jiang Jian
6345fd74a4 Merge branch 'bugfix/enable_eap_workarounds_v5.4' into 'release/v5.4'
fix(esp_wifi): Enable EAP workarounds by default (v5.4)

See merge request espressif/esp-idf!36152
2025-01-07 10:56:16 +08:00
Jiang Jiang Jian
f58ca2bde3 Merge branch 'fix/fix_flash_clock_changed_after_sleep_bak_v5.4' into 'release/v5.4'
fix(esp_hw_support): fix mspi clock freq changed after lightsleep (v5.4)

See merge request espressif/esp-idf!36002
2025-01-07 10:55:43 +08:00
Jiang Jiang Jian
7cd2a1483e Merge branch 'fix/fix_p4_deepsleep_io_leakage_v5.4' into 'release/v5.4'
fix(esp_hw_support): fix esp32p4 JTAG pad deepsleep current leakage (v5.4)

See merge request espressif/esp-idf!36008
2025-01-07 10:53:13 +08:00
Jiang Jiang Jian
ca4133f2c3 Merge branch 'fix/fix_flash_leakage_workaroud_config_dependcy_v5.4' into 'release/v5.4'
fix(esp_hw_support): fix FLASH leakage workaround kconfig dependcy (v5.4)

See merge request espressif/esp-idf!35990
2025-01-07 10:52:25 +08:00
Jiang Jiang Jian
0cdeed5329 Merge branch 'fix/fix_pm_trace_rtc_domain_keeping_v5.4' into 'release/v5.4'
fix(esp_pm): enable RTC_PERIPH domain once in esp_pm_trace_init (v5.4)

See merge request espressif/esp-idf!35997
2025-01-07 10:52:07 +08:00
Jiang Jiang Jian
805b4d3158 Merge branch 'bugfix/fix_some_wifi_bugs_20241221_v5.4' into 'release/v5.4'
fix some wifi bugs 20241221(Backport v5.4)

See merge request espressif/esp-idf!35861
2025-01-07 10:51:30 +08:00
Jiang Jiang Jian
93f7ae66c2 Merge branch 'ci/add_build_test_eco_versions_v5.4' into 'release/v5.4'
ci: add build test for eco versions (v5.4)

See merge request espressif/esp-idf!35818
2025-01-07 10:50:58 +08:00
Jiang Jiang Jian
19dcf3c1a8 Merge branch 'fix/lwip_autoip_next_addr_after_rate_limit_v5.4' into 'release/v5.4'
fix(lwip): Fix AUTOIP new address after rate limit (v5.4)

See merge request espressif/esp-idf!35842
2025-01-07 10:50:32 +08:00
Jiang Jiang Jian
55fb426d2e Merge branch 'bugfix/fix_sniffer_fail_on_ci_v5.4' into 'release/v5.4'
fix(ci): Enlarge the pcap memory size in sniffer example (v5.4)

See merge request espressif/esp-idf!35698
2025-01-07 10:49:48 +08:00
Jiang Jiang Jian
6d7225f336 Merge branch 'bugfix/ws_head_buf_size_v5.4' into 'release/v5.4'
fix(tcp_transport): Fix websocket header read to handle overflow (v5.4)

See merge request espressif/esp-idf!35667
2025-01-07 10:49:25 +08:00
Jiang Jiang Jian
5b09d8d66e Merge branch 'fix/esp_netif_ppp_nullptr_check_v5.4' into 'release/v5.4'
fix(esp_netif): Prevent null deref when checking netif type (v5.4)

See merge request espressif/esp-idf!35670
2025-01-07 10:48:30 +08:00
Jiang Jiang Jian
95dd312cb0 Merge branch 'bugfix/fix_ble_disconn_error_on_c61_v5.4' into 'release/v5.4'
fix(ble): fix btbb retention register size on esp32c61 (v5.4)

See merge request espressif/esp-idf!35257
2025-01-07 10:47:51 +08:00
Jiang Jiang Jian
176b9c9dba Merge branch 'fix/fix_esp32c2_ld_issue_v54' into 'release/v5.4'
fix(wifi): fix esp32c2 ld issue

See merge request espressif/esp-idf!35610
2025-01-07 10:47:32 +08:00
Jiang Jiang Jian
9b9f991ec5 Merge branch 'enable_esp32c5_ci_test_v5.4' into 'release/v5.4'
fix(ci): enable esp32c5 eco1 ci test (Backport v5.4)

See merge request espressif/esp-idf!34899
2025-01-07 10:46:33 +08:00
morris
8379cd7b92 Merge branch 'feature/isp_dvp_example_v5.4' into 'release/v5.4'
feat(dvp_isp_dsi_example): add new option to connect a DVP camera sensor (ov2640) through ISP_DVP (v5.4)

See merge request espressif/esp-idf!35973
2025-01-07 10:45:23 +08:00
morris
e456840f2c Merge branch 'feat/mcpwm_sleep_retention_support_p4_v5.4' into 'release/v5.4'
feat(mcpwm): support mcpwm sleep retention on p4 (v5.4)

See merge request espressif/esp-idf!35342
2025-01-07 10:42:39 +08:00
morris
92208b309d Merge branch 'feat/support_step_notify_on_h2eco5_v5.4' into 'release/v5.4'
feat(pcnt): support step_notify on esp32h2 eco5 (v5.4)

See merge request espressif/esp-idf!35620
2025-01-07 10:38:10 +08:00
Shu Chen
8b1b4df6f7 Merge branch 'feature/add_rx_buff_statistic_v5.4' into 'release/v5.4'
feat(802.15.4): IEEE802.15.4 add rx buffer statistic (v5.4)

See merge request espressif/esp-idf!35639
2025-01-07 10:34:54 +08:00
Shu Chen
89e47be331 Merge branch 'feat/example_connect_thread_v5_4' into 'release/v5.4'
feat(protocol_examples_common): Add Thread connect to support Thread for the protocol examples(v5.4)

See merge request espressif/esp-idf!36090
2025-01-07 10:34:12 +08:00
Shu Chen
0731b3c14d Merge branch 'feature/use_fixed_dut_in_ot_ci_cases_v5.4' into 'release/v5.4'
feat(openthread): use fixed port in ot ci cases (Backport v5.4)

See merge request espressif/esp-idf!36048
2025-01-07 10:34:02 +08:00
Shu Chen
2e06b60757 Merge branch 'fix/openthread_dns_hook_v5_4' into 'release/v5.4'
fix(openthread): Fix external DNS resolve hook for DNS64 client(v5.4)

See merge request espressif/esp-idf!35983
2025-01-07 10:33:49 +08:00
Shu Chen
97a13a769a Merge branch 'fix/add_macros_for_otbr_v5.4' into 'release/v5.4'
fix(openthread): add macros for ot_br (v5.4)

See merge request espressif/esp-idf!35892
2025-01-07 10:33:38 +08:00
Shu Chen
487b522629 Merge branch 'fix/thread-lib-v54' into 'release/v5.4'
fix(openthread): update esp-thread-lib branch (v5.4)

See merge request espressif/esp-idf!35812
2025-01-07 10:33:31 +08:00
Shu Chen
e2edf1318b Merge branch 'fix/disable_border_agent_default_v5_4' into 'release/v5.4'
fix(openthread): Disable Border Agent features by default(v5.4)

See merge request espressif/esp-idf!35550
2025-01-07 10:33:17 +08:00
Shu Chen
976f186a10 Merge branch 'fix/add_delay_before_command_in_ot_ci_case_v5.4' into 'release/v5.4'
feat(openthread): add delay before execute wifi command in openthread ci cases (Backport v5.4)

See merge request espressif/esp-idf!35422
2025-01-07 10:33:01 +08:00
morris
7a04d353b5 Merge branch 'feat/support_i80_lcd_via_parlio_v5.4' into 'release/v5.4'
refactor(i80_lcd): adapt example to lvgl9 (v5.4)

See merge request espressif/esp-idf!35519
2025-01-07 10:31:48 +08:00
morris
c670044eab Merge branch 'feature/uart_sleep_retention_support_c5_c61_v5.4' into 'release/v5.4'
feat(uart): support uart sleep retention on C5/C61 (v5.4)

See merge request espressif/esp-idf!35400
2025-01-07 10:29:23 +08:00
morris
51bae98066 Merge branch 'bugfix/uart_vfs_read_behavior_v5.4' into 'release/v5.4'
fix(uart_vfs): read() now aligned to POSIX defined behavior (v5.4)

See merge request espressif/esp-idf!35392
2025-01-07 10:28:54 +08:00
morris
2ad251bd1d Merge branch 'bugfix/ledc_get_freq_calc_v5.4' into 'release/v5.4'
fix(ledc): fix ledc_get_freq calculation err due to overflow (v5.4)

See merge request espressif/esp-idf!36005
2025-01-07 10:28:30 +08:00
morris
b8820cf4be Merge branch 'feat/xmc_32d_support_v5.4' into 'release/v5.4'
feat(spi_flash): support 120M on xmc25q32d flash (backport v5.4)

See merge request espressif/esp-idf!36078
2025-01-07 10:28:11 +08:00
morris
f36f04ef0d feat(ldo): support output rail voltage (3.3V) 2025-01-06 18:52:29 +08:00
Island
5bac8a9382 Merge branch 'docs/add_ble_qualification_table_v5.4' into 'release/v5.4'
docs(ble): Added BLE Qualification Information to API Guides (v5.4)

See merge request espressif/esp-idf!35711
2025-01-06 17:33:09 +08:00
Wei Yu Han
6f4b1d8767 docs(ble): Added BLE Qualification Information to API Guides (v5.4) 2025-01-06 17:33:09 +08:00
Island
f4138ade17 Merge branch 'bugfix/fixed_ble_issues_241220_v5.4' into 'release/v5.4'
Bugfix/fixed ble issues 241220 (v5.4)

See merge request espressif/esp-idf!35924
2025-01-06 17:01:07 +08:00
Sudeep Mohanty
334c9ac268 fix(esp_ringbuf): Fixed no-split ringbuf issue where acquire pointer wraps around
This commit fixes an issue with no-split ring buffers where in the the
buffer did not receive items correctly if the acquire pointer wraps
around before items are sent to it.
2025-01-06 16:45:04 +08:00
Marius Vikhammer
c277ec9e6d Merge branch 'fix/intr_alloc_level_bug_v5.4' into 'release/v5.4'
fix(esp_hw_support): fix a bug in the interrupt allocator related to shared interrupts (backport v5.4)

See merge request espressif/esp-idf!35477
2025-01-06 16:01:46 +08:00
Roland Dobai
bbdc6cfe4f Merge branch 'feat/dfu_p4_backport_v5.4' into 'release/v5.4'
feat(dfu): Enable DFU on ESP32-P4 (backport v5.4)

See merge request espressif/esp-idf!35829
2025-01-06 15:41:29 +08:00
Roland Dobai
a85d7cbe21 Merge branch 'fix/failing_create_readonly_test_on_win_v5.4' into 'release/v5.4'
fix(tools): fixed failing Win CI (tests read_only) (v5.4)

See merge request espressif/esp-idf!36122
2025-01-06 15:40:32 +08:00
Roland Dobai
aac6f2c911 Merge branch 'fix/export_fish_esp_python_v5.4' into 'release/v5.4'
fix(tools): Use ESP_PYTHON with activate.py in export.fish (v5.4)

See merge request espressif/esp-idf!36121
2025-01-06 15:40:14 +08:00
Roland Dobai
ed9f2827cc Merge branch 'fix/missing_header_hint_v5.4' into 'release/v5.4'
fix(hints): improve suggestion for missing header file (v5.4)

See merge request espressif/esp-idf!36043
2025-01-06 15:39:41 +08:00
Roland Dobai
1e788836a5 Merge branch 'fix/honor_idf_python_env_path_v5.4' into 'release/v5.4'
fix(tools): honor IDF_PYTHON_ENV_PATH value (v5.4)

See merge request espressif/esp-idf!35873
2025-01-06 15:39:24 +08:00
Roland Dobai
58137e67b2 Merge branch 'change/bump_up_kconfig_precommit_v5.4' into 'release/v5.4'
ci(pre-commit): bump kconfig checker pre-commit version to 2.4.1 (v5.4)

See merge request espressif/esp-idf!35825
2025-01-06 15:39:10 +08:00
Roland Dobai
6030cf5b1b Merge branch 'feat/add_idf_path_setting_info_v5.4' into 'release/v5.4'
feat(tools): Add info message to install/export scripts about IDF_PATH being set/change. (v5.4)

See merge request espressif/esp-idf!35805
2025-01-06 15:38:58 +08:00
Roland Dobai
25a6b4f71c Merge branch 'fix/tools_pip_upgrade_v5.4' into 'release/v5.4'
fix(idf_tools.py): Upgrade pip and setuptools separately (v5.4)

See merge request espressif/esp-idf!35774
2025-01-06 15:38:29 +08:00
morris
f708e43b03 Merge branch 'refactor/cp_dma_use_gdma_link_v5.4' into 'release/v5.4'
refactor(cp_dma): to use gdma_link driver for descriptor config (v5.4)

See merge request espressif/esp-idf!35443
2025-01-06 15:13:08 +08:00
morris
0646301e81 Merge branch 'feat/rgb_lcd_increase_pclk_v5.4' into 'release/v5.4'
feat(lcd): increase the upper limit of pclk frequency for RGB LCD (v5.4)

See merge request espressif/esp-idf!35928
2025-01-06 15:09:42 +08:00
Island
3412026c77 Merge branch 'fix/ble_mesh_bugs_fixed_v5.4' into 'release/v5.4'
fix(ble_mesh): Miscellaneous update (v5.4)

See merge request espressif/esp-idf!35427
2025-01-06 15:08:31 +08:00
Island
05382efdfe Merge branch 'fix/ble_mesh_enable_high_duty_itvl_on_nimble_v5.4' into 'release/v5.4'
feat(ble_mesh): select BT_NIMBLE_HIGH_DUTY_ADV_ITVL when using random adv itvl (v5.4)

See merge request espressif/esp-idf!35599
2025-01-06 15:08:26 +08:00
Island
9909d42b67 Merge branch 'bugfix/fix_ble_ke_mem_267_assert_v5.4' into 'release/v5.4'
fix(bt/controller): Fixed BLE assert ke_mem.c line 267 on ESP32-C3 and ESP32-S3 (backport v5.4)

See merge request espressif/esp-idf!35335
2025-01-06 15:02:59 +08:00
Island
1937a28539 Merge branch 'bugfix/fix_blufi_prepare_write_v5.4' into 'release/v5.4'
fix(blufi): Fixed crash issue in Blufi example during prepare write operation (v5.4)

See merge request espressif/esp-idf!35717
2025-01-06 15:02:54 +08:00
Island
3146964e1a Merge branch 'bugfix/fix_hid_crash_v5.4' into 'release/v5.4'
fix(ble): Fix crash issue during logging (v5.4)

See merge request espressif/esp-idf!35511
2025-01-06 15:02:48 +08:00
morris
446aa359d3 Merge branch 'feature/efuse_s3_adds_psram_cap_bit_v5.4' into 'release/v5.4'
feat(efuse): Adds 3 bit for PSRAM_CAP efuse field (v5.4)

See merge request espressif/esp-idf!35120
2025-01-06 15:02:01 +08:00
Island
aa87a691a6 Merge branch 'refactor/optimize_ble_gatt_api_doc_v5.4' into 'release/v5.4'
refactor(bt/bluedroid): Optimize BLE GATT related APIs reference (v5.4)

See merge request espressif/esp-idf!35919
2025-01-06 15:01:15 +08:00
Island
faca49d791 Merge branch 'bugfix/fix_set_perfer_ext_conn_param_v5.4' into 'release/v5.4'
fix(bt/bluedroid): Fixed setting perfer conn params complete event report (v5.4)

See merge request espressif/esp-idf!35748
2025-01-06 15:01:09 +08:00
Island
05fa0e76f0 Merge branch 'feat/add_get_started_example_on_bluedroid_v5.4' into 'release/v5.4'
feat(bt/bluedroid): Added BLE get started examples for Bluedroid (v5.4)

See merge request espressif/esp-idf!35653
2025-01-06 15:01:04 +08:00
Island
ae31b783f3 Merge branch 'feat/support_bleqabr24_1539_v5.4' into 'release/v5.4'
feat(bt/bluedroid): Added config for saving BLE bonding keys to NVS (v5.4)

See merge request espressif/esp-idf!35604
2025-01-06 15:01:00 +08:00
morris
0a859b5356 Merge branch 'bugfix/test_esp_flash_write_v5.4' into 'release/v5.4'
fix(spi_flash): Fix Test esp_flash_write (v5.4)

See merge request espressif/esp-idf!35384
2025-01-06 15:00:52 +08:00
morris
f04f21b352 Merge branch 'bugfix/modbus_serial_examples_fix_mode_v54' into 'release/v5.4'
fix(modbus): Fix the mode setup in modbus slave (backport v5.4)

See merge request espressif/esp-idf!36158
2025-01-06 15:00:15 +08:00
Island
ffab5890e4 Merge branch 'fix/optimize_ble_example_ci_build_rule_v5.4' into 'release/v5.4'
fix(ble): Optimizied the bluetooth build test rules (v5.4)

See merge request espressif/esp-idf!35327
2025-01-06 15:00:03 +08:00
morris
da06959166 Merge branch 'bugfix/uart_8_16_bit_access_v5.4' into 'release/v5.4'
fix(uart): fix 8/16-bit uart register access (v5.4)

See merge request espressif/esp-idf!35958
2025-01-06 14:59:09 +08:00
morris
7797db32f6 Merge branch 'docs/update_pcnt_pm_lock_docs_v5.4' into 'release/v5.4'
docs(pcnt): update pcnt pm lock docs (v5.4)

See merge request espressif/esp-idf!36069
2025-01-06 14:56:49 +08:00
morris
6011f69d94 Merge branch 'fix/fix_parlio_tx_example_line_address_v5.4' into 'release/v5.4'
fix(parlio_tx): fix line address in simple_rgb_martix example (v5.4)

See merge request espressif/esp-idf!36070
2025-01-06 14:55:45 +08:00
morris
edb344b56d Merge branch 'feat/allow_to_skip_legacy_driver_conflict_check_v5.4' into 'release/v5.4'
feat(legacy_driver): add kconfig to skip legacy confilct check (v5.4)

See merge request espressif/esp-idf!35615
2025-01-06 14:55:22 +08:00
morris
fd31502ca7 Merge branch 'fix/ble_i2c_v5.4' into 'release/v5.4'
fix(i2c_slave): Support 10-bit address on esp32 (backport v5.4)

See merge request espressif/esp-idf!36055
2025-01-06 14:53:48 +08:00
morris
8da106901a Merge branch 'fix/fix_adc_cali_check_scheme_api_issue_v5.4' into 'release/v5.4'
adc: fixed adc_cali_check_scheme wrong return on c2/h2/c6 (v5.4)

See merge request espressif/esp-idf!35718
2025-01-06 14:53:25 +08:00
morris
cab5334de2 Merge branch 'fix/fix_psram_mode_reg_wrong_timing_v5.4' into 'release/v5.4'
psram: fixed mode reg read bad timing on octal and hex psrams (v5.4)

See merge request espressif/esp-idf!35955
2025-01-06 14:52:13 +08:00
Marius Vikhammer
f335a2d6ea Merge branch 'fix/coredump_checksum_error_v5.4' into 'release/v5.4'
Fix/coredump checksum error (v5.4)

See merge request espressif/esp-idf!35762
2025-01-06 14:38:57 +08:00
Marius Vikhammer
012de83f3c Merge branch 'fix/coredump-gcc-analyzer-warnings_v5.4' into 'release/v5.4'
fix(system): fix GCC-14 analyzer warnings for coredump (v5.4)

See merge request espressif/esp-idf!35521
2025-01-06 14:38:23 +08:00
Island
ceffa4fb73 Merge branch 'feat/support_some_vendor_hci_for_qa_v5.4' into 'release/v5.4'
fix(ble): fixed the connect issue when rx error aa on ESP32-C2 (v5.4)

See merge request espressif/esp-idf!35647
2025-01-06 14:08:32 +08:00
Marius Vikhammer
4defdd90c3 Merge branch 'bugfix/h2_wifi_intr_v5.4' into 'release/v5.4'
fix(interrupt): fixed wrongly reserved interrupt for wifi on H2 (v5.4)

See merge request espressif/esp-idf!36108
2025-01-06 13:35:02 +08:00
morris
c02a6fc523 Merge branch 'bugfix/gdma_burst_config_esp32c5_v5.4' into 'release/v5.4'
fix(gdma): burst size should be configurable on esp32c5 (v5.4)

See merge request espressif/esp-idf!35363
2025-01-06 13:20:35 +08:00
morris
cd1ce6164b Merge branch 'refactor/fine_tune_dphy_pll_v5.4' into 'release/v5.4'
feat(mipi): fine tune DPHY PLL clock (v5.4)

See merge request espressif/esp-idf!35291
2025-01-06 13:20:01 +08:00
morris
e293123154 Merge branch 'bugfix/fix_i2s_24b_buf_size_calc_v5.4' into 'release/v5.4'
fix(i2s): fixed some issues in I2S driver (v5.4)

See merge request espressif/esp-idf!35768
2025-01-06 13:18:16 +08:00
Mahavir Jain
7576f17b20 Merge branch 'bug/wifi_provisioning_failure_even_after_connecting_v5.4' into 'release/v5.4'
fix(esp_wifi_prov): Provisioning App failure on first failed attempt (v5.4)

See merge request espressif/esp-idf!35545
2025-01-06 12:56:34 +08:00
Rahul Tank
0880fc007a Merge branch 'feat/pts_changes_v5.4' into 'release/v5.4'
feat(nimble): BLE 5.4 PTS Related Features and Fixes (v5.4)

See merge request espressif/esp-idf!34974
2025-01-06 12:44:49 +08:00
Wang Meng Yang
b8044d0f74 Merge branch 'bugfix/fix_btqabr2023330_v5.4' into 'release/v5.4'
fix(bt): Fix error code returned by create_conn_cancel_cmd at different status (backport v5.4)

See merge request espressif/esp-idf!35577
2025-01-06 12:23:58 +08:00
Wang Meng Yang
84053a42f4 Merge branch 'bugfix/fix_some_bugs_in_bluedroid' into 'release/v5.4'
fix(bt/bluedroid): Fixed some avrcp cover art related bugs

See merge request espressif/esp-idf!35505
2025-01-06 12:21:49 +08:00
Wang Meng Yang
a1c8f06211 Merge branch 'bugfix/sdp_get_uuid_error_v5.4' into 'release/v5.4'
fix(bt/bluedroid): fixed issues introduced by byte alignment (v5.4)

See merge request espressif/esp-idf!35250
2025-01-06 12:21:46 +08:00
Zhang Hai Peng
668a2ab2ef fix(ble/bluedroid): Fixed BLE feature selection configuration
(cherry picked from commit 117aa74705)

Co-authored-by: zhanghaipeng <zhanghaipeng@espressif.com>
2025-01-06 11:14:24 +08:00
Zhang Hai Peng
b592934f0a docs(ble/bluedroid): Added BLE log when bond info was deleted
(cherry picked from commit c9cdf51b05)

Co-authored-by: zhanghaipeng <zhanghaipeng@espressif.com>
2025-01-06 11:14:06 +08:00
Zhang Hai Peng
41e7f893aa docs(ble/bluedroid): Optimize doc for registering BLE callback functions
(cherry picked from commit d84ccadf90)

Co-authored-by: zhanghaipeng <zhanghaipeng@espressif.com>
2025-01-06 11:14:04 +08:00
Zhang Hai Peng
4d7cd8f23b fix(ble/blufi): Fixed blufi example security issue
(cherry picked from commit 3cb2d9c3c6)

Co-authored-by: zhanghaipeng <zhanghaipeng@espressif.com>
2025-01-06 11:14:02 +08:00
aleks
e5c7999f08 fix(modbus): Fix the mode setup in modbus slave
https://github.com/espressif/esp-idf/pull/14878
2025-01-03 14:09:24 +01:00
Kabir Waraich
6925877bea Update slave.c to fix the mode
There is an issue in the lines that I have changed. I think it was copied over from the enum by mistake.
2025-01-03 14:09:12 +01:00
Kapil Gupta
5abadc5b38 fix(esp_wifi): Enable EAP workarounds by default
Enabling this will make sure our behavior is same as upstream
wpa_supplicant.
2025-01-03 17:42:53 +05:30
Michael (XIAO Xufeng)
6b7b8ea3d2 Merge branch 'update/version_5_4_0' into 'release/v5.4'
Update version to 5.4.0

See merge request espressif/esp-idf!36089
2025-01-03 17:26:43 +08:00
Marek Fiala
524f44dfc3 fix(tools): fixed test_create_project_with_idf_readonly on Win 2025-01-02 12:37:24 +01:00
Marek Fiala
0c476d4361 fix(tools): Use ESP_PYTHON with activate.py in export.fish
Closes https://github.com/espressif/esp-idf/issues/15058
2025-01-02 11:10:55 +01:00
Tomas Rezucha
8e35c7854d fix(usb/host): Fix reaction on High-Speed NYET packet
In Scatter-Gather DMA mode, the USB-DWC will automatically enable
PING protocol if an OUT packet is NACKed by the High-Speed device.
The PING bit must be manually reset.
2025-01-02 10:57:14 +01:00
Marius Vikhammer
79fe10fe1c fix(interrupt): fixed wrongly reserved interrupt for wifi on H2 2025-01-02 16:39:10 +08:00
Xiao Xufeng
67c1de1eeb change(version): Update version to 5.4.0 2024-12-31 14:57:04 +08:00
Xu Si Yu
1569b826ad feat(openthread): update build test rules 2024-12-31 14:22:43 +08:00
WanqQixiang
b1a68f5849 fix(openthread): Fix CI failure of ot_trel example build 2024-12-31 14:22:37 +08:00
WanqQixiang
c5a9e39653 feat(protocol_examples_common): Add Thread connect to support Thread for the protocol examples 2024-12-31 14:22:31 +08:00
C.S.M
3952879feb feat(spi_flash): support 120M on xmc25q32d flash 2024-12-31 11:29:42 +08:00
Michael (XIAO Xufeng)
b70331a9b7 Merge branch 'feat/increase_c2_supported_ver_v5.4' into 'release/v5.4'
feat(soc): increase c2 max supported version (v5.4)

See merge request espressif/esp-idf!35970
2024-12-31 03:15:18 +08:00
Chen Jichang
d3dbbf1351 fix(parlio_tx): fix line address in simple_rgb_martix example 2024-12-30 17:08:43 +08:00
Chen Jichang
0f937a7e90 docs(pcnt): remove pm_lock content in glitch_filter
Closes https://github.com/espressif/esp-idf/issues/15027
2024-12-30 17:05:53 +08:00
Chen Jichang
bcf13b4be7 docs(pcnt): update pcnt power down description 2024-12-30 17:05:53 +08:00
Guillaume Souchere
388ed349e5 fix(heap): MALLOC_CAP_EXEC does not allocate in RTC IRAM
This commit fixes the issue when trying to allocate memory
with the MALLOC_CAP_EXEC in RTC memory. Prior to the fix,
the heap allocator was returning an address in RTC DRAM.

To fix this issue:
- modified memory_layout.c of the concerned targets to fill the iram_address
field in the rtc entry of the soc_memory_region array properly.
- modified heap component  related functions to return IRAM address when
an allocation in RTC memory with MALLOC_CAP_EXEC is requested.

Closes https://github.com/espressif/esp-idf/issues/14835
2024-12-30 08:51:14 +01:00
C.S.M
f29110eee7 fix(i2c_slave): Support 10-bit address on esp32 2024-12-30 13:49:51 +08:00
yiwenxiu
88d639f8cb feat(openthread): use fixed port in ot ci cases 2024-12-30 10:06:12 +08:00
Frantisek Hrbata
6237a97b10 fix(hints): improve suggestion for missing header file
Currently, we are only suggesting that the header file is likely not
part of the component's INCLUDE_DIRS. However, the header file may be
missing also because of the configuration settings. For instance, the
component might be disabled in sdkconfig, or the feature that supplies
the header might not be enabled. Enhance the hint message to address
this scenario as well.

Signed-off-by: Frantisek Hrbata <frantisek.hrbata@espressif.com>
2024-12-29 18:56:33 +01:00
morris
d566bd431b fix(rmt): channel resolution divider rounding issue
Closes https://github.com/espressif/esp-idf/issues/15092
2024-12-27 16:57:47 +08:00
wuzhenghui
0609f9111e fix(esp_hw_support): fix mspi clock freq changed after lightsleep 2024-12-26 19:25:48 +08:00
Song Ruo Jing
31d7a2056c fix(ledc): fix ledc_get_freq calculation err due to overflow
Closes https://github.com/espressif/esp-idf/pull/14882
2024-12-26 19:12:07 +08:00
wuzhenghui
c7c70a8ec6 fix(esp_hw_support): fix esp32p4 JTAG pad deepsleep current leakage 2024-12-26 16:03:42 +08:00
wuzhenghui
e49faab8d4 fix(esp_pm): enable RTC_PERIPH domain once in esp_pm_trace_init 2024-12-26 14:09:52 +08:00
Song Ruo Jing
706b5b483e fix(isp): isp_dvp raw->rgb needs a workaround 2024-12-26 12:12:17 +08:00
Song Ruo Jing
274321d82c fix(isp): isp demosaic module should never be disabled for non-raw8 output format 2024-12-26 12:12:17 +08:00
Song Ruo Jing
2830a44495 feat(dvp_isp_dsi_example): add an example shows DVP-ISP-DSI combination 2024-12-26 12:11:21 +08:00
wuzhenghui
7df7db7284 fix(esp_hw_support): fix FLASH leakage workaround kconfig dependcy 2024-12-26 11:35:04 +08:00
WanqQixiang
8af82e8a22 fix(openthread): Fix external DNS resolve hook for DNS64 client 2024-12-26 10:14:30 +08:00
Xiao Xufeng
38b95cf146 feat(soc): increase c2 max supported version 2024-12-25 20:30:15 +08:00
Aditya Patwardhan
0fae01c7b0 Merge branch 'feature/add_support_for_http_1.0_requests_v5.4' into 'release/v5.4'
feat(esp_http_server): add support to handle HTTP 1.0 requests (v5.4)

See merge request espressif/esp-idf!35659
2024-12-25 16:42:32 +08:00
Song Ruo Jing
7167b04e6e fix(uart): fix 8/16-bit uart register access 2024-12-25 15:32:06 +08:00
Armando
e12812a4d7 fix(psram): fixed mode reg read bad timing on octal and hex psrams 2024-12-25 11:00:12 +08:00
morris
00f21c37fe feat(lcd): increase the upper limit of pclk frequency for RGB LCD 2024-12-25 10:29:08 +08:00
zwl
7eaf08631e feat(ble): add dtm configuration command in hci example 2024-12-24 19:26:01 +08:00
Zhao Wei Liang
2e8b169bfe feat(ble): Support get ble controller free heap size on ESP32-C2
(cherry picked from commit 2cb7d2437b)

Co-authored-by: zwl <zhaoweiliang@espressif.com>
2024-12-24 15:21:50 +08:00
Zhao Wei Liang
c881b9e829 feat(ble): Support get ble controller free heap size on ESP32-H2
(cherry picked from commit 12f226be7d)

Co-authored-by: zwl <zhaoweiliang@espressif.com>
2024-12-24 15:21:48 +08:00
Zhao Wei Liang
7ad5dc1fef feat(ble): Support get ble controller free heap size on ESP32-C6
(cherry picked from commit aa7feb9449)

Co-authored-by: zwl <zhaoweiliang@espressif.com>
2024-12-24 15:21:46 +08:00
Zhao Wei Liang
b908018780 feat(ble): fixed some ble issues on ESP32-C2
(cherry picked from commit 5f9a3cdd1a)

Co-authored-by: zwl <zhaoweiliang@espressif.com>
2024-12-24 15:21:44 +08:00
Zhao Wei Liang
e840c84322 feat(ble): adjust bt default scheme position
(cherry picked from commit 446239251c)

Co-authored-by: zwl <zhaoweiliang@espressif.com>
2024-12-24 15:21:42 +08:00
Chen Jian Hua
85bc8bb63c Merge branch 'refactor/optimize_ble_gatt_api_doc' into 'master'
refactor(bt/bluedroid): Optimize BLE GATT related APIs reference

See merge request espressif/esp-idf!34650

(cherry picked from commit 19b5381c99)

7320c77d refactor(bt/bluedroid): Optimize BLE GATT related APIs reference
8a80617c refactor(bt/bluedroid): Optimize BLE GATT related APIs reference
0ac97e98 refactor(bt/bluedroid): Optimize BLE GATT related APIs reference
27b17c69 refactor(bt/bluedroid): Optimize BLE GATT related APIs reference
ea8d7686 docs: Update gattc & gatts api header files
f508772f Apply 3 suggestion(s) to 2 file(s)
03469b52 Apply 2 suggestion(s) to 1 file(s)
aa2cf7a5 docs: fix minor issue
46dc6e96 docs(ble): Replaced "closed" with "terminated" for physical connection.

Co-authored-by: Wei Yu Han <weiyuhan@espressif.com>
2024-12-24 15:20:05 +08:00
laokaiyao
f2f74b8b89 fix(i2s): add check for the tdm frame bits num 2024-12-24 12:12:31 +08:00
Gustavo Litovsky
9dfc163691 change(esp32): undo forcing two slots in I2S
fix(i2s): fixed the issue in PR 14879

Closes https://github.com/espressif/esp-idf/pull/14879

[Kevin: Update to only remove the limitation for PCM short format]
2024-12-24 12:12:31 +08:00
laokaiyao
3d9f6a1299 refactor(i2s): refactor i2s examples common dependencies
Closes https://github.com/espressif/esp-idf/issues/14751

Make the common I2S dependencies as an example common component,
so that to avoid slash & backslash issue on windows
when use absolute include path.
2024-12-24 12:12:31 +08:00
laokaiyao
c828775d8f docs(example): added troubleshooting for i2s_es8311 example
Closes https://github.com/espressif/esp-idf/issues/15047
2024-12-24 12:12:31 +08:00
laokaiyao
7fb15156ae fix(i2s): return error when mclk_div is smaller than 2 2024-12-24 12:12:31 +08:00
laokaiyao
a47e157731 fix(i2s): fixed incorrect buf size calculation 2024-12-24 12:12:31 +08:00
morris
55d5ba38c6 feat(rmt): add API to return the real clock resolution of a channel
Closes https://github.com/espressif/esp-idf/pull/15074
2024-12-24 11:16:50 +08:00
Tan Yan Quan
a3fe6540b6 fix(openthread): add macros for ot_br 2024-12-23 21:30:54 +08:00
muhaidong
e699e8a4ed fix(wifi): fixed blufi connect wep or wpa ap fail issue 2024-12-23 15:49:37 +08:00
muhaidong
9389bde893 fix(phy): fixed calibration warning infomation inaccurate issue
Closes https://github.com/espressif/esp-idf/issues/14963
2024-12-23 15:44:23 +08:00
Marius Vikhammer
25a1ad7e98 Merge branch 'update/version_5_4_0' into 'release/v5.4'
Update version to 5.4.0

See merge request espressif/esp-idf!35879
2024-12-23 14:29:57 +08:00
xiongweichao
0e0588b86f fix(bt): Fixed some controller bugs
- Fix epr not being initiated after authentication is completed
- Fixed the issue HCI_READ_CLOCK returned parameter in slot
- Fixed the missmatching of CLKN and FCNT after clock update
2024-12-23 14:16:49 +08:00
chenqingqing
de01dd8ac8 fix(bt): Fix error code returned by create_conn_cancel_cmd at different status
- Closes https://github.com/espressif/esp-idf/issues/7763
2024-12-23 14:16:49 +08:00
Marius Vikhammer
443e1cfd11 change(version): Update version to 5.4.0 2024-12-23 11:22:27 +08:00
Marius Vikhammer
497858f8d9 Merge branch 'docs/add_html_download_link_v5.4' into 'release/v5.4'
feat(docs): Replace PDF download link with HTML zip download link (v5.4)

See merge request espressif/esp-idf!35832
2024-12-23 09:21:18 +08:00
Frantisek Hrbata
a87fe7aa3a fix(tools): honor IDF_PYTHON_ENV_PATH value
The active.py script is currently clearing the IDF_PYTHON_ENV_PATH,
preventing it from being set to a custom location for the python virtual
environment directory. Although the install script checks to ensure that
an existing python virtual environment is not overwritten with one for a
different ESP-IDF version than it was originally created for, we should
still permit setting a custom path for the python virtual environment.

Closes https://github.com/espressif/esp-idf/issues/15006

Signed-off-by: Frantisek Hrbata <frantisek.hrbata@espressif.com>
2024-12-21 09:55:08 +01:00
Zhang Shuxian
d7a8b7374e docs: Update CN translation for dfu 2024-12-20 11:13:40 +01:00
Tomas Rezucha
53135e389c feat(dfu): Enable DFU on ESP32-P4 2024-12-20 11:12:33 +01:00
David Cermak
1816632e65 fix(lwip): Fix AUTOIP new address after rate limit
submodule update: git log --oneline a587d929..fa4dffdf
  - autoip: Choose next address after rate limit (espressif/esp-lwip@fa4dffdfa)
2024-12-20 08:41:17 +01:00
Tan Yan Quan
7564ff78d2 fix(openthread): update esp-thread-lib branch 2024-12-20 12:30:20 +08:00
Marius Vikhammer
50948285c1 feat(docs): Replace PDF download link with HTML zip download link
PDF build would randomly fail after S3 docs grew to a certain size.

At 3k+ pages PDF is not very usable anyways.
For offline use an HTML archive makes more sense.
2024-12-20 10:27:09 +08:00
Jan Beran
5a5a86a16b ci(pre-commit): bump kconfig checker pre-commit version to 2.4.1 2024-12-19 15:45:01 +01:00
Chen Yudong
8c1cad3a67 ci: add build test for eco versions 2024-12-19 21:02:40 +08:00
Marek Fiala
d8296b1fda fix(tools): Enable to use IDF_PATH with export.sh 2024-12-19 13:00:47 +01:00
renpeiying
bd9db4e08c docs: Update CN translation for idf-tools.rst 2024-12-19 10:28:50 +01:00
Marek Fiala
79031f1905 feat(tools): Inform user about IDF_PATH set/change in install/export scripts 2024-12-19 10:28:49 +01:00
Roland Dobai
b6e0bb91e8 fix(idf_tools.py): Upgrade pip and setuptools separately
This way the setuptools version dependency resolution will be done by
the upgraded pip.
2024-12-18 12:57:07 +01:00
Erhan Kurubas
e5079eb28e change(coredump): include coredump own stack into coredump file 2024-12-18 13:15:56 +03:00
Erhan Kurubas
3c22283b6b change(coredump): make sure consistency with written data and calculated checksum 2024-12-18 13:15:56 +03:00
chenjianhua
183e810422 fix(bt/bluedroid): Fixed LE channel selection algorithm event reporting 2024-12-18 11:49:15 +08:00
Chen Jian Hua
7cfafa1d4b fix(bt/bluedroid): Fixed setting perfer conn params complete event report
(cherry picked from commit 4b352d1c4f)

Co-authored-by: xuzhekai <xuzhekai@espressif.com>
2024-12-18 11:33:38 +08:00
Marius Vikhammer
034245938c Merge branch 'ci/docs_master_build_v5.4' into 'release/v5.4'
ci(docs): revert d98e77a4a7 to simplify CI (v5.4)

See merge request espressif/esp-idf!35684
2024-12-18 11:08:35 +08:00
yiwenxiu
a5bde4c061 feat(openthread): change wlan to ethernet 2024-12-18 10:11:03 +08:00
Zhang Hai Peng
e09ef803d6 fix(blufi): Fixed crash issue in Blufi example during prepare write operation
(cherry picked from commit 5acb9c9b5f)

Co-authored-by: zhanghaipeng <zhanghaipeng@espressif.com>
2024-12-17 16:13:44 +08:00
Armando
886a9acbcf fix(adc): fixed adc_cali_check_scheme wrong return on c2/h2/c6 2024-12-17 16:12:43 +08:00
zhangyanjiao
1b84759d02 fix(ci): Enlarge the pcap memory size in sniffer example 2024-12-17 11:15:43 +08:00
Troy
f33430deb4 fix(wifi/mesh): Modify examples/mesh/internal_communication
Delete the secondary judgment of whether it is the root node in the sending task

Closes https://github.com/espressif/esp-idf/pull/14373

Signed-off-by: zhangyanjiao <zhangyanjiao@espressif.com>
2024-12-17 11:15:35 +08:00
xiongweichao
f9e0f46f47 fix(ble): fixed that the resolvable private address does not change when light sleep is enabled 2024-12-17 10:59:15 +08:00
zhanghaipeng
4b1d137342 fix(bt): Update bt lib for ESP32-C3 and ESP32-S3(555b0a2)
- Check Access Address when receive connection request PDU
- Fix issue with BLE5.0 duplicate scan for chained packets
2024-12-17 10:59:05 +08:00
Marius Vikhammer
66c456ab59 ci(docs): revert d98e77a4a7 to simplify CI 2024-12-17 10:08:44 +08:00
David Cermak
ce8af835b2 fix(esp_netif): Prevent null deref when checking netif type
Most esp_netif public API check for invalid arguments, but when enabling
PPP the macros to check netif type could potentially dereference
esp_netif without any null-check.

Releted to https://github.com/espressif/esp-idf/issues/14816
2024-12-16 11:14:50 +01:00
David Cermak
89ef743876 fix(tcp_transport): Fix websocket header read to handle overflow 2024-12-16 11:13:52 +01:00
nilesh.kale
4026e64c32 feat(esp_http_server): add support to handle HTTP 1.0 requests
This commit adds support to handle HTTP/1.0 requests alongside HTTP/1.1 for
legacy compliance purposes.
2024-12-16 14:10:30 +05:30
Chen Jian Hua
a767bcc509 feat(bt/bluedroid): Added BLE get started examples for Bluedroid
(cherry picked from commit d051a2a39d)

Co-authored-by: xuzhekai <xuzhekai@espressif.com>
2024-12-16 11:33:57 +08:00
Zhao Wei Liang
cb90787ac5 fix(ble): fixed the connect issue when rx error aa on ESP32-C2
(cherry picked from commit 6b01a56e09)

Co-authored-by: zwl <zhaoweiliang@espressif.com>
2024-12-16 11:03:53 +08:00
Zhao Wei Liang
a2cc9fc69b feat(ble): support some vendor hci commands on ESP32-H2
(cherry picked from commit 15203f9f35)

Co-authored-by: zwl <zhaoweiliang@espressif.com>
2024-12-16 11:03:51 +08:00
Zhao Wei Liang
5f1053ef43 feat(ble): support some vendor hci commands on ESP32-C6
(cherry picked from commit 5bd66eaa57)

Co-authored-by: zwl <zhaoweiliang@espressif.com>
2024-12-16 11:03:49 +08:00
Tan Yan Quan
ff5d32aa53 feat(802.15.4): add some documentation for txrx statistics and debug record 2024-12-16 10:38:51 +08:00
Tan Yan Quan
ad2846b830 feat(802.15.4): IEEE802.15.4 add documentation and refactor component structure 2024-12-16 10:38:51 +08:00
Tan Yan Quan
52d5a4321c feat(802.15.4): IEEE802.15.4 add some minor edits for readability 2024-12-16 10:38:51 +08:00
Tan Yan Quan
fc1b1b129c feat(802.15.4): IEEE802.15.4 add rx buffer statistic 2024-12-16 10:38:51 +08:00
Ivan Grokhotkov
9dcd2990a7 Merge branch 'feat/vfs_ops_make_all_op_pointers_const_v5.4' into 'release/v5.4'
feat(storage/vfs): make all member pointer of vfs_ops struct const (v5.4)

See merge request espressif/esp-idf!35624
2024-12-13 18:03:24 +08:00
Ivan Grokhotkov
bd0fc67f13 Merge branch 'feature/std_filesystem_supported_v5.4' into 'release/v5.4'
storage: make std::filesystem supported (v5.4)

See merge request espressif/esp-idf!35430
2024-12-13 17:56:42 +08:00
Jiang Jiang Jian
e8e8e2bc2a Merge branch 'bugfix/periph_clk_init_p4_v5.4' into 'release/v5.4'
fix(esp_system): hp periph clk should not be gated on core/system reset (v5.4)

See merge request espressif/esp-idf!35403
2024-12-13 13:55:16 +08:00
Jiang Jiang Jian
829419cef9 Merge branch 'fix/fix_esp32c2eco4_wifi_deinit_crash_issue_v54' into 'release/v5.4'
fix(wifi): fix esp32c2eco4 wifi deinit crash issue v54

See merge request espressif/esp-idf!35391
2024-12-13 13:48:50 +08:00
Song Ruo Jing
77e88f98cd 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 21:03:37 +08:00
Song Ruo Jing
192f01c65f fix(esp_system): hp periph clk should not be gated on core/system reset 2024-12-12 21:03:37 +08:00
Tomáš Rohlínek
d6d4de0907 feat(storage/vfs): make all member pointer of vfs_ops struct const 2024-12-12 13:49:46 +01:00
Chen Jichang
3779757cd3 feat(pcnt): support step_notify on esp32h2 eco5 2024-12-12 19:40:20 +08:00
Chen Jichang
3b3a6b4725 feat(legacy_driver): add kconfig to skip legacy confilct check 2024-12-12 18:39:11 +08:00
Michael (XIAO Xufeng)
a0a85db5f5 Merge branch 'fix/adc_monitor_not_work_v5.4' into 'release/v5.4'
fix(esp_adc): fixed adc continue monitor don't work issue (v5.4)

See merge request espressif/esp-idf!35165
2024-12-12 16:55:04 +08:00
wangtao@espressif.com
7f844e0e0f fix(wifi): fix esp32c2 ld issue 2024-12-12 15:02:44 +08:00
Chen Jian Hua
d70e7d6534 fix(bt/bluedroid): Fixed failure to get host status when host is not enabled
(cherry picked from commit 23455ea9c2)

Co-authored-by: chenjianhua <chenjianhua@espressif.com>
2024-12-12 12:33:47 +08:00
Chen Jian Hua
4eda7b124d feat(bt/bluedroid): Added config for saving BLE bonding keys to NVS
(cherry picked from commit 6d1160b2e6)

Co-authored-by: chenjianhua <chenjianhua@espressif.com>
2024-12-12 12:33:44 +08:00
Luo Xu
f6fede26b7 feat(ble_mesh): select BT_NIMBLE_HIGH_DUTY_ADV_ITVL
(cherry picked from commit 6faf0a59fdcf063d40fc1000a209341318131185)

Co-authored-by: luoxu <luoxu@espressif.com>

(cherry picked from commit a7622efd0c)

Co-authored-by: Luo Xu <luoxu@espressif.com>
2024-12-12 12:23:37 +08:00
Chen Jichang
6aa4f8b63e feat(mcpwm): support mcpwm sleep retention on p4 2024-12-12 11:43:54 +08:00
Michael (XIAO Xufeng)
944329fff4 Merge branch 'fix/enhance_i2c_slave_test_stability_v5.4' into 'release/v5.4'
fix(i2c): Fix i2c read from fifo issue when enabling bt/wifi/uart, etc... (backport v5.4)

See merge request espressif/esp-idf!35434
2024-12-12 11:16:24 +08:00
Michael (XIAO Xufeng)
0f1bec184d Merge branch 'bugfix/warn_rc32k_use_in_kconfig_v5.4' into 'release/v5.4'
fix(clk): add an inevitable kconfig option to be selected to use rc32k (v5.4)

See merge request espressif/esp-idf!35285
2024-12-11 23:39:34 +08:00
morris
183834a82c Merge branch 'feat/add_pcnt_gpio_input_config_v5.4' into 'release/v5.4'
docs(pcnt): add gpio input mode documentation (v5.4)

See merge request espressif/esp-idf!35518
2024-12-11 22:09:10 +08:00
morris
714c7738cd Merge branch 'fix/fix_esp32_pico_v3_psram_not_ignored_issue_v5.4' into 'release/v5.4'
psram: fixed esp32p pico-v3 psram init not ignored issue (v5.4)

See merge request espressif/esp-idf!35377
2024-12-11 22:07:25 +08:00
Jiang Jiang Jian
25346eb694 Merge branch 'fix/fix_tg_retention_failure_v5.4' into 'release/v5.4'
fix(esp_driver_gptimer): do gptimer retention by timer unit rather than timer group (v5.4)

See merge request espressif/esp-idf!35354
2024-12-11 20:55:15 +08:00
Jiang Jiang Jian
b3f2e1957b Merge branch 'bugfix/access_null_in_hf_cb_v5.4' into 'release/v5.4'
fix(bt/bluedroid): fixed access NULL in HFP callback handler (v5.4)

See merge request espressif/esp-idf!35407
2024-12-11 20:54:38 +08:00
wanckl
5703a780af fix(esp_adc): fixed adc continue monitor don't work issue
Closes https://github.com/espressif/esp-idf/issues/14769
Closes https://github.com/espressif/esp-idf/issues/14814
2024-12-11 17:36:57 +08:00
Island
b06209230c Merge branch 'bugfix/fix_ble_create_conn_params_copy_v5.4' into 'release/v5.4'
fix(bt/bluedroid): Fixed connection params copying when creating LE connection (v5.4)

See merge request espressif/esp-idf!35406
2024-12-11 14:27:20 +08:00
WanqQixiang
68fbe1dd83 fix(openthread): Disable Border Agent features by default 2024-12-11 10:49:48 +08:00
hrushikesh.bhosale
9e9577b3f2 fix(esp_wifi_prov): Send failure msg on first fail
Added new sta state WIFI_PROV_ATTEMPT_FAILED, which is
returned on first failure with attemps_remaining field.
2024-12-10 17:52:47 +05:30
hrushikesh.bhosale
2bde704d1a fix(esp_wifi_prov): Moved the registering of wifi event handler
Moved the registering of of wifi event handler if under the condition
if device is already provisioned
2024-12-10 17:52:47 +05:30
Erhan Kurubas
190f021ba8 fix(espcoredump): prevent null pointer dereference in panic reason handling 2024-12-09 14:48:39 +01:00
Erhan Kurubas
cd913c60be change(tools): enhance expect_reg_dump to support any or specific core values 2024-12-09 14:48:39 +01:00
Erhan Kurubas
2837c83dc9 fix(espcoredump): fix incorrect pointer usage in checksum update call 2024-12-09 14:48:39 +01:00
Alexey Lapshin
3375c87e55 fix(espcoredump): fix GCC-14 analyzer warnings for coredump 2024-12-09 14:48:39 +01:00
Chen Jichang
5a1e5d04d0 feat(parlio_tx): add check of fifo empty event 2024-12-09 20:35:37 +08:00
Chen Jichang
174fa30ade refactor(i80_lcd): adapt example to lvgl9 2024-12-09 20:35:37 +08:00
Chen Jichang
9b112e2a70 docs(pcnt): add pullup and pulldown documentation
Closes https://github.com/espressif/esp-idf/issues/14277
2024-12-09 20:23:06 +08:00
linruihao
76dbdaadf2 fix(bt/bluedroid): Allow adding empty header in OBEX and GOEP 2024-12-09 17:46:01 +08:00
Zhang Hai Peng
285e4ac4f3 feat(bt): Add support for converting BT HCI logs to btsnoop format
(cherry picked from commit decb24f940)

Co-authored-by: zhanghaipeng <zhanghaipeng@espressif.com>
2024-12-09 17:45:49 +08:00
Zhang Hai Peng
304a655804 fix(blufi): Fixed blufi init fail after deinit
(cherry picked from commit 7addb57ccd)

Co-authored-by: zhanghaipeng <zhanghaipeng@espressif.com>
2024-12-09 17:45:33 +08:00
Zhang Hai Peng
efe62a875c fix(ble): Fixed crash in BLE HID host example during logging
(cherry picked from commit ab1e3c1ffd)

Co-authored-by: zhanghaipeng <zhanghaipeng@espressif.com>
2024-12-09 17:15:14 +08:00
linruihao
ee02d14cd6 change(bt/bluedroid): Remove a duplicate macro in OBEX 2024-12-09 14:26:00 +08:00
linruihao
a8f9246123 feat(bt/bluedroid): Allow using bitwise OR on GOEP return value 2024-12-09 14:25:11 +08:00
linruihao
336f22c097 fix(bt/bluedroid): Fix memory leak in AVRCP cover art get image 2024-12-09 14:24:34 +08:00
linruihao
b9f2be9200 fix(bt/bluedroid): Fix l2cap psm not dereister when obex disconnect 2024-12-09 14:24:25 +08:00
shenmengjing
12f8c24846 docs: Update CN translation for docs in jtag-degugging 2024-12-06 19:36:47 +07:00
Alexey Lapshin
0e57dc044e feat(debugging): move gdbinit generation to CMake
This feature is useful for 3rd-party software to run GDB with predefined
options that described in project_description.json file

allow to pass custom options to "idf.py gdb":

  --gdb-commands: command line arguments for gdb. (without changes)
  -ex: pass command to gdb.
  -x: pass gdbinit file to gdb. Alias for old --gdbinit command
2024-12-06 19:36:41 +07:00
Omar Chebib
ce9bbd66ba fix(esp_hw_support): fix a bug in the interrupt allocator related to shared interrupts
On RISC-V targets, when allocating a shared interrupt, the provided level would
override the current level of the allocated interrupt. As such, a medium level
interrupt could become a low level one and vice versa.
2024-12-06 18:15:38 +08:00
Omar Chebib
1468e5aff2 fix(esp_hw_support): fix the interrupt allocator test app's CMakeLists.txt 2024-12-06 15:11:37 +08:00
igor.udot
6f28a59a27 ci: update idf-build-apps version in pre-commit 2024-12-06 12:04:47 +08:00
C.S.M
37101f5e0f fix(i2c): Fix some issue in programming guide,
Closes https://github.com/espressif/esp-idf/issues/14794
2024-12-05 13:22:51 +08:00
C.S.M
82903b0bc6 fix(i2c): Add bus handle check so that it will not be panic when there is no free bus,
Closes https://github.com/espressif/esp-idf/issues/14819
2024-12-05 13:22:43 +08:00
Jin Cheng
e7e7605d22 fix(bt/bluedroid): fixed access NULL in HFP callback handler 2024-12-05 13:20:50 +08:00
morris
bd45800cd5 refactor(cp_dma): to use gdma_link driver for descriptor config 2024-12-05 11:41:55 +08:00
C.S.M
36834f34cd fix(i2c_slave): Fix the wrong semaphore take in isr 2024-12-04 19:29:05 +08:00
C.S.M
2ab0921a80 fix(i2c): Fix lose byte during data reading in i2c master on esp32,
Closes https://github.com/espressif/esp-idf/issues/12860
2024-12-04 19:28:43 +08:00
C.S.M
2803aed082 fix(i2c): Enhance lp clock source and avoid deadlock,
Closes https://github.com/espressif/esp-idf/issues/14908,
Closes https://github.com/espressif/esp-idf/issues/14906
2024-12-04 19:28:18 +08:00
C.S.M
122b579024 test(i2c): Enhance the stability for i2c tests 2024-12-04 19:28:10 +08:00
Ivan Grokhotkov
da2c883622 docs(cxx): add a section about std::filesystem limitations
Co-authored-by: Shen Meng Jing <shenmengjing@espressif.com>
2024-12-04 11:22:02 +01:00
Ivan Grokhotkov
e3f5a5a347 feat(storage): add a test app for std::filesystem features 2024-12-04 11:22:02 +01:00
Ivan Grokhotkov
80d4c75b89 feat(fatfs): add support for a few fcntl commands 2024-12-04 11:22:02 +01:00
Ivan Grokhotkov
7a214c1fab feat(newlib): add dummy implementations of pathconf, chmod, dirfd
Closes https://github.com/espressif/esp-idf/issues/14174
2024-12-04 11:22:02 +01:00
Nebojša Cvetković
d79c4f7e28 docs(cxx): mark std::filesystem as generally supported (#5003)
Closes https://github.com/espressif/esp-idf/pull/13736
2024-12-04 11:22:01 +01:00
yiwenxiu
9695a404f2 feat(openthread): add delay before execute wifi command in openthread ci cases 2024-12-04 16:52:36 +08:00
Luo Xu
5d7d1a180a fix(ble_mesh): Miscellaneous update
(cherry picked from commit 589ebfc1d6)

Co-authored-by: luoxu <luoxu@espressif.com>
2024-12-04 16:23:41 +08:00
Abhinav Kudnar
1d5cf825b4 feat(nimble): Added PAwR support for nimble with IDF examples 2024-12-03 18:19:00 +05:30
Sumeet Singh
668e739263 fix(nimble): Added
1. Option to disable automatic discovery when receiving out-of-sync
2. Fixed bugs related to robust caching
2024-12-03 18:19:00 +05:30
Sumeet Singh
29d92facf6 feat(nimble): Added ways to enable/disable some menuconfig options at runtime 2024-12-03 18:19:00 +05:30
Sumeet Singh
c93bd21056 feat(nimble): Added option to disable automatically sending extra credits to peer 2024-12-03 18:19:00 +05:30
Sumeet Singh
e2f24fb9fd feat(nimble): Added support for persisting csf characteristic for bonded devices 2024-12-03 18:18:59 +05:30
chenjianhua
526e1b6970 fix(bt/bluedroid): Fixed connection params copying when creating LE connection 2024-12-03 17:52:49 +08:00
shenmengjing
d80b192e89 docs: Update CN translation for vfs.rst 2024-12-03 17:41:44 +08:00
Song Ruo Jing
cfcedfe42d feat(uart): support uart sleep retention on C5/C61 2024-12-03 17:17:14 +08:00
Song Ruo Jing
43175ff671 fix(uart_vfs): read() now aligned to POSIX defined behavior
- For blocking mode, block until data available
- Return with the bytes available in the file at the time,
  it should not block until reaching the requested size

And read() should not realy return on the newline character
Closes https://github.com/espressif/esp-idf/issues/14155
2024-12-03 16:32:01 +08:00
wangtao@espressif.com
84bd87231d fix(wifi): fix esp32c2eco4 wifi deinit crash issue 2024-12-03 16:02:07 +08:00
Konstantin Kondrashov
d00f8b7898 fix(spi_flash): Fix Test esp_flash_write 2024-12-03 09:54:56 +02:00
Armando
a5eb720a9f fix(psram): fixed esp32p pico-v3 psram init not ignored issue
Closes https://github.com/espressif/esp-idf/issues/14970
2024-12-03 15:21:05 +08:00
morris
b5c5c046d6 fix(gdma): burst size should be configurable on esp32c5 2024-12-03 11:21:03 +08:00
Sumeet Singh
ef47084025 feat(nimble): Added option in menuconfig to enable Secure Connections Only mode 2024-12-02 21:04:58 +08:00
Sumeet Singh
0694880e5b fix(nimble): fix and enable connection subrating 2024-12-02 21:04:58 +08:00
Sumeet Singh
ecedb5fc5e fix(nimble): Added option to enable code under Enhanced COC 2024-12-02 21:04:58 +08:00
Sumeet Singh
cc9520b3dc fix(nimble): Fixed Device Information and Scan Parameters service 2024-12-02 21:04:58 +08:00
Sumeet Singh
29ab5643dc fix(nimble): Fixed encrypted advertisement data example 2024-12-02 21:04:58 +08:00
Sumeet Singh
31c8a6ee77 feat(nimble): Added LE GATT Security Levels Characteristic 2024-12-02 21:04:58 +08:00
Sumeet Singh
53a064274f feat(nimble): Added support for EATT Credit Based Flow Control Mode 2024-12-02 21:04:58 +08:00
wuzhenghui
afa697bd74 fix(esp_driver_gptimer): do gptimer retention by timer unit rather than timer group 2024-12-02 19:07:50 +08:00
wuzhenghui
4db067f8dc fix(esp_hw_support): remove p4 wdt retention on entry2 2024-12-02 19:05:04 +08:00
wuzhenghui
6f13d341c6 fix(esp_hw_support): fix retention link dump helper functions 2024-12-02 19:04:06 +08:00
zhiweijian
6103fc1430 fix(bt/controller): Fixed BLE assert ke_mem.c line 267 on ESP32-C3 and ESP32-S3 2024-12-02 15:58:56 +08:00
Wei Yu Han
47605ef8c4 Merge branch 'fix/optimize_ble_example_ci_build_rule' into 'master'
fix(ble): Optimizied the bluetooth build test rules

See merge request espressif/esp-idf!35259

(cherry picked from commit 0163cb8ed0)

67da5f4e fix(ble): Optimizied the bluetooth build test rules
c7deda66 fix(ble): Added ESP32C5 to the supported targets in...
d12fdfed fix(ble): Fixed a typo in nimble/throughput_app/blecent_throughput/README.md
c8288e17 fix(ble): Fixed the rule for esp_hid_device and esp_hid_host examples
fddf6403 fix(ble): enable esp_hid_host testing on ESP32 only
db31513d fix(ble): Added build rule for hci/ble_adv_scan_combined and controller_vhci_ble_adv examples
e76086f1 fix(ble): Added supported chip for examples hci/ble_adv_scan_combined and...
1b05f9e1 docs(ble): Replaced dbm with dBm in esp32c2 controller API reference

Co-authored-by: Island <island@espressif.com>
2024-12-02 14:27:05 +08:00
Song Ruo Jing
623351e791 fix(clk): add an inevitable kconfig option to be selected to use rc32k 2024-12-02 11:15:17 +08:00
Jiang Jiang Jian
daf465c038 Merge branch 'bugfix/pm-215_pm-259_v5.4' into 'release/v5.4'
fix(Power Management): fix_esp32c5_and_esp32c61_ext1_wakeup_failed_after_changing_io

See merge request espressif/esp-idf!35276
2024-11-30 11:24:47 +08:00
Marius Vikhammer
fb271d25d2 Merge branch 'fix/ulp_riscv_interrupt_bug_v5.4' into 'release/v5.4'
fix(ulp): fix ULP RISC-V interrupt handler corrupting the stack (backport v5.4)

See merge request espressif/esp-idf!35225
2024-11-30 10:51:31 +08:00
Jiang Jiang Jian
e767502c6a Merge branch 'bugfix/esp_ringbuf_static_analyzer_v5.4' into 'release/v5.4'
fix(ringbuf): fixed logic errors when compiling with CONFIG_COMPILER_STATIC_ANALYZER (v5.4)

See merge request espressif/esp-idf!35300
2024-11-30 10:37:00 +08:00
Jiang Jiang Jian
25039926a6 Merge branch 'fix/duplicated_enc_restart_request_when_change_key_type_v5.4' into 'release/v5.4'
fix(bt): fixed some issues in esp32 bt controller(backport v5.4)

See merge request espressif/esp-idf!35295
2024-11-30 01:57:46 +08:00
Jiang Jiang Jian
1b4e4d7f83 Merge branch 'backport/backport_some_changes_to_v5.4' into 'release/v5.4'
backport some changes to release/v5.4

See merge request espressif/esp-idf!35283
2024-11-30 01:57:25 +08:00
morris
e7b555de8d feat(mipi): fine tune DPHY PLL clock 2024-11-30 00:29:15 +08:00
Jiang Jiang Jian
3f63fd91ec Merge branch 'bugfix/fix_ble_creat_conn_fail_enh_v5.4' into 'release/v5.4'
fix(ble/bluedroid): Fixed BLE create connection fail because of invalid own address type (v5.4)

See merge request espressif/esp-idf!35019
2024-11-29 23:40:55 +08:00
Li Shuai
7d4af9aedd fix(Power Management): fix_esp32c5_and_esp32c61_ext1_wakeup_failed_after_changing_io 2024-11-29 23:37:52 +08:00
yinqingzhao
0af23ceb2b fix(wifi): fix esp32c5 schan and nchan not take effect on 2.4G 2024-11-29 23:36:51 +08:00
xuxiao
bd21db34b2 fix(wifi): fix esp32c6 can receive data frames where the SA (Source Address) matches its own address 2024-11-29 23:36:51 +08:00
wangtao@espressif.com
8886dba9d1 change(wifi): change softap default dtim period to 1 2024-11-29 23:36:51 +08:00
morris
bbdcabe250 Merge branch 'fix/sdmmc_test_various_cmds_sdmmc_test_sd_skip_if_board_incompatible_emmc_parameter' into 'release/v5.4'
fix: Add missing parameter to a function in sdmmc_tests

See merge request espressif/esp-idf!35294
2024-11-29 22:22:01 +08:00
David Čermák
a47b17e4e0 Merge branch 'fix/lwip_dhcp_timeout_u32_v5.4' into 'release/v5.4'
fix(lwip): Fix DHCP lease overlow using u32 type (v5.4)

See merge request espressif/esp-idf!35274
2024-11-29 18:27:51 +08:00
morris
0f24828900 Merge branch 'docs/update_vscode_extension_link_v5.4' into 'release/v5.4'
docs: Update vscode extension link in get started (v5.4)

See merge request espressif/esp-idf!35302
2024-11-29 18:14:26 +08:00
luweike
c166bf306f docs: Update vscode extension link in get started 2024-11-29 16:06:18 +08:00
Marius Vikhammer
2a04297e64 fix(ringbuf): fixed logic errors when compiling with CONFIG_COMPILER_STATIC_ANALYZER
ESP_STATIC_ANALYZER_CHECK was added to remove some static analyzer warning about
null pointer dereferences that should never happen, but the logic was wrong.

We return pdFALSE if prvReceiveGeneric was called with any of the input pointers
as NULL, but pvItem2 and xItemSize2 will only be non-null for split buffers.

Closes https://github.com/espressif/esp-idf/issues/14905
2024-11-29 15:11:19 +08:00
gongyantao
a3774cae8a fix(bt): fixed some issues in esp32 bt controller
1: fix duplicated lc_enc_restart_req when new lk type is semi-permanent
   key
2: reset PreventEncEvt flag at the end of restart encryption procedure
2024-11-29 14:10:01 +08:00
Jiang Jiang Jian
da9e87a711 Merge branch 'feature/switch_to_new_vfs_api_v5.4' into 'release/v5.4'
feat(storage): switch to new VFS API (v5.4)

See merge request espressif/esp-idf!35282
2024-11-29 13:52:03 +08:00
Jiang Jiang Jian
34a35b9591 Merge branch 'fix/usb_device_msc_storage_example_backport_v5.4' into 'release/v5.4'
fix(tusb_msc): Added SD power supply configuration for p4 (backport v5.4)

See merge request espressif/esp-idf!35102
2024-11-29 13:49:46 +08:00
Adam Múdry
1bc92b46fd fix: Add missing parameter to a function in sdmmc_tests
In sdmmc_test_various_cmds.c in sdmmc_test_sd_skip_if_board_incompatible function
2024-11-29 04:10:10 +01:00
Jiang Jiang Jian
023d772d90 Merge branch 'bugfix/chip823_pll_bug_v5.4' into 'release/v5.4'
fix(H2):fix pll low temp bug(v5.4)

See merge request espressif/esp-idf!35242
2024-11-29 10:47:55 +08:00
Jiang Jiang Jian
20bd6add52 Merge branch 'feature/mmu_page_size_from_app_bin_v5.4' into 'release/v5.4'
feat(bootloader): add support to use MMU page size from app binary (v5.4)

See merge request espressif/esp-idf!35070
2024-11-29 10:44:26 +08:00
Jiang Jiang Jian
236affbff2 Merge branch 'fix/tusb_midi_task_stack_overflow_v5.4' into 'release/v5.4'
fix(examples): tusb_midi task stack overflow fix (v5.4)

See merge request espressif/esp-idf!34933
2024-11-29 10:42:21 +08:00
Jiang Jiang Jian
985090a453 Merge branch 'feature/adds_efuse_adc_calib_data2_v5.4' into 'release/v5.4'
feat(efuse): Adds efuse ADC calib data for P4 C5 C61 (v5.4)

See merge request espressif/esp-idf!35118
2024-11-29 10:41:33 +08:00
Jiang Jiang Jian
850d102ea5 Merge branch 'fix/ble_mesh_heartbeat_bug_v5.4' into 'release/v5.4'
fix(ble_mesh): fixed heartbeat issue (v5.4)

See merge request espressif/esp-idf!34966
2024-11-29 10:29:03 +08:00
Konstantin Kondrashov
223b99aad5 feat(efuse): Adds 3 bit for PSRAM_CAP efuse field 2024-11-29 00:44:51 +08:00
Tomáš Rohlínek
def8b9b639 feat(storage/vfs): move semihost to new vfs API 2024-11-28 13:56:34 +01:00
Tomáš Rohlínek
7fe45180db feat(storage/vfs): move l2tap to new vfs API 2024-11-28 13:56:34 +01:00
Tomáš Rohlínek
0cd2e72dc1 feat(storage/esp_vfs_console): move console to new vfs API 2024-11-28 13:56:33 +01:00
Tomáš Rohlínek
4ff53bc9c7 feat(storage/vfs): move jtag driver to new vfs API 2024-11-28 13:56:33 +01:00
Tomáš Rohlínek
0aa10dcb43 feat(storage/vfs): move uart driver to new vfs API 2024-11-28 13:56:33 +01:00
Tomáš Rohlínek
906b3df54b feat(storage/vfs): move nullfs to new API 2024-11-28 13:56:32 +01:00
Tomáš Rohlínek
39197864a1 feat(storage/vfs): make part of nullfs API private 2024-11-28 13:56:32 +01:00
Tomáš Rohlínek
bb305bd109 feat(storage/esp_vfs_console): move cdcacm driver to new vfs API 2024-11-28 13:56:32 +01:00
Tomáš Rohlínek
e5ab487e3c feat(storage/vfs): update docs to new version of API 2024-11-28 13:56:31 +01:00
Tomáš Rohlínek
6b07039281 feat(storage/spiffs): move spiffs to new VFS API 2024-11-28 13:56:31 +01:00
Tomáš Rohlínek
09d222c38d feat(storage/fatfs): move fatfs to new VFS API 2024-11-28 13:56:31 +01:00
Tomáš Rohlínek
ced490fc6e feat(storage/vfs): make subcomponent pointers const 2024-11-28 13:56:26 +01:00
Jiang Jiang Jian
05b6d92042 Merge branch 'bugfix/esp32c3_eco7_usj_console_v5.4' into 'release/v5.4'
fix(esp_rom): fix esp32c3 eco7 console rom function address (v5.4)

See merge request espressif/esp-idf!34738
2024-11-28 19:55:38 +08:00
David Cermak
d85744af43 fix(lwip): Fix DHCP lease overlow using u32 type 2024-11-28 10:06:14 +01:00
Rahul Tank
5af12cf722 Merge branch 'bugfix/resolve_watchdog_crash_v5.4' into 'release/v5.4'
fix(nimble): Resolved watchdog due to memory exceed prints (v5.4)

See merge request espressif/esp-idf!35209
2024-11-28 14:46:54 +08:00
Jin Chen
a3c9a39304 fix(ble): fix btbb retention register size on esp32c61
(cherry picked from commit ce85e113a9)

Co-authored-by: cjin <jinchen@espressif.com>
2024-11-28 11:34:50 +08:00
morris
830d836fb1 Merge branch 'change/use_uart0_for_ram_app_c5_v5.4' into 'release/v5.4'
ci(ram_app): use uart0 config (v5.4)

See merge request espressif/esp-idf!35245
2024-11-28 11:23:55 +08:00
Island
5e0fe45c25 Merge branch 'bugfix/add_aa_check_on_esp32c2_and_esp32c6_v5.4' into 'release/v5.4'
Bugfix/add aa check on esp32c2 and esp32c6 (v5.4)

See merge request espressif/esp-idf!35234
2024-11-28 11:02:34 +08:00
Shu Chen
dac9e60690 Merge branch 'fix/enhance_wifi_connection_check_in_ot_ci_case_v5.4' into 'release/v5.4'
feat(openthread): enhance wifi connection check in openthread ci cases (Backport v5.4)

See merge request espressif/esp-idf!35164
2024-11-28 10:46:26 +08:00
xiongweichao
92780d3f88 fix(bt/bluedroid): fixed issues introduced by byte alignment
- esp_bt_uuid_t is byte aligned, tBT_UUID is 4-byte aligned.
2024-11-28 10:12:32 +08:00
Armando
138b3390c5 ci(ram_app): use uart0 config 2024-11-28 10:08:43 +08:00
Martin Vychodil
60c561792c Merge branch 'fix/sdmmc_send_acmd22_after_multiple_write_cmd_v5.4' into 'release/v5.4'
fix(sdmmc): Send ACMD22 if CMD25 fails (v5.4)

See merge request espressif/esp-idf!34860
2024-11-28 02:11:25 +08:00
Martin Vychodil
f48f07a418 Merge branch 'feature/storage_nvs_bootloader_v5.4' into 'release/v5.4'
feat(storage/nvs): NVS bootloader support (v5.4)

See merge request espressif/esp-idf!35249
2024-11-28 01:55:03 +08:00
Anton Maklakov
b88913ca27 Merge branch 'feature/update-toolchain-to-esp-14.2.0_20241119_v5.4' into 'release/v5.4'
feat(tools): update toolchain version to esp-14.2.0_20241119 (v5.4)

See merge request espressif/esp-idf!35140
2024-11-27 22:26:47 +08:00
radek.tandler
4e8bb8a082 feat(nvs_flash): Implemented basic nvs_flash support for bootloader 2024-11-27 15:22:46 +01:00
Alexey Gerenkov
c2ae806661 Merge branch 'change/sysview_test_config_v5.4' into 'release/v5.4'
change(sysview): run heap_log tracing tests on existing cores (v5.4)

See merge request espressif/esp-idf!35195
2024-11-27 19:04:02 +08:00
Abhinav Kudnar
2f6a7ec1ae fix(nimble): Resolved watchdog due to memory exceed prints 2024-11-27 18:00:37 +08:00
zlq
7a92f14df6 fix(H2):fix pll low temp bug 2024-11-27 17:46:10 +08:00
chenjianhua
02cc012db5 feat(ble/bluedroid): Support setting connection params when creating connection 2024-11-27 17:13:21 +08:00
zhanghaipeng
4ed30165d8 fix(ble/bluedroid): Optimize BLE API "esp_ble_gattc_enh_open" 2024-11-27 17:07:24 +08:00
zhanghaipeng
719a2313be fix(ble/bluedroid): Fixed BLE create connection fail because of invalid own address type 2024-11-27 17:07:24 +08:00
Martin Vychodil
315b1ec4ae Merge branch 'fix/littlefs_image_creation_windows_v5.4' into 'release/v5.4'
fix(littlefs): Allow LittleFS image generation on Windows + version bump (v5.4)

See merge request espressif/esp-idf!34915
2024-11-27 16:21:18 +08:00
Zhao Wei Liang
079acc88a7 fix(ble): fixed the connect issue when rx error aa on ESP32-H2
(cherry picked from commit 093b65e27c)

Co-authored-by: zwl <zhaoweiliang@espressif.com>
2024-11-27 16:03:51 +08:00
Zhao Wei Liang
903307b191 fix(ble): fixed the connect issue when rx error aa on ESP32-C6
(cherry picked from commit 69b535d422)

Co-authored-by: zwl <zhaoweiliang@espressif.com>
2024-11-27 16:03:49 +08:00
yiwenxiu
516e1131a7 feat(openthread): enhance wifi connection check in openthread ci cases 2024-11-27 15:53:37 +08:00
Island
a516ca527d Merge branch 'bugfix/fix_bleqabr24_1646_v5.4' into 'release/v5.4'
Fixed BLE creating connection when the connection already exists on ESP32 (v5.4)

See merge request espressif/esp-idf!35047
2024-11-27 15:45:05 +08:00
Omar Chebib
ab4fa65d0d fix(ulp): fix ULP RISC-V interrupt handler corrupting the stack
* Closes https://github.com/espressif/esp-idf/issues/14930
2024-11-27 11:43:15 +08:00
Konstantin Kondrashov
409a75936a feat(efuse): Adds efuse ADC calib data for ESP32-C61 2024-11-26 22:17:23 +08:00
Konstantin Kondrashov
b1662f643a feat(efuse): Adds efuse ADC calib data for ESP32-C5 2024-11-26 22:17:23 +08:00
morris
8f58a27418 Merge branch 'change/p4_sd_runner_no_use_usj_v5.4' into 'release/v5.4'
ci(sd): use uart0 as usj always serial noise on ci on p4 (v5.4)

See merge request espressif/esp-idf!35191
2024-11-26 18:01:10 +08:00
Erhan Kurubas
e5d377be8d fix(sysview): add prefix to the module desc to avoid stuck in Segger SystemView app
Closes https://github.com/espressif/esp-idf/issues/10483
2024-11-26 10:51:18 +01:00
Guillaume Souchere
0f6adbfd25 fix(heap): Fix wrong config to enable MALLOC_CAP_EXEC in memory_layout.c
In esp32c2 and esp32c61 memory_layout.c files, the config used to allow
MALLOC_CAP_EXEC was CONFIG_ESP_SYSTEM_MEMPROT_FEATURE when
CONFIG_ESP_SYSTEM_PMP_IDRAM_SPLIT should be used.

Closes https://github.com/espressif/esp-idf/issues/14836
2024-11-26 09:24:54 +01:00
Erhan Kurubas
688b86ba24 change(sysview): support single/dual core targets in heap_trace_log test 2024-11-26 08:49:30 +01:00
Island
4cf553509e Merge branch 'feat/remove_unused_sdkconfig_in_ble_examples_v5.4' into 'release/v5.4'
fix(ble/example): Removed unused sdkconfig files (v5.4)

See merge request espressif/esp-idf!35189
2024-11-26 15:46:04 +08:00
morris
ef3c64d006 Merge branch 'fix/fix_jpeg_decode_info_v5.4' into 'release/v5.4'
fix(jpeg_decoder): Fix jpeg decoder get picture information (backport v5.4)

See merge request espressif/esp-idf!35157
2024-11-26 15:36:37 +08:00
Armando
56ec6b8b66 test(emmc): disabled emmc tests on p4 2024-11-26 15:10:28 +08:00
Armando
fbbfa3bab3 ci(sd): use uart0 as usj always serial noise on ci on p4 2024-11-26 15:09:38 +08:00
Armando
5fdf844c0a test(sd): no uhs1 runner 2024-11-26 15:09:34 +08:00
Wang Meng Yang
76d90ba1ca Merge branch 'bugfix/disconn_sdp_upon_wrong_data_v5.4' into 'release/v5.4'
fix(bt/bluedroid): disconnect SDP connection on receiving incorrect response (v5.4)

See merge request espressif/esp-idf!35143
2024-11-26 15:00:07 +08:00
Wang Meng Yang
3eab76508e Merge branch 'feat/add_profile_state_event_v5.4' into 'release/v5.4'
feat(bt/bluedroid): added events to indicate the profile states of HFP (v5.4)

See merge request espressif/esp-idf!35148
2024-11-26 14:59:31 +08:00
chenjianhua
c37e7ced7d fix(bt): Update bt lib for ESP32(c3082c4)
- Fixed BLE creating connection when the connection already exists
2024-11-26 14:46:02 +08:00
Mahavir Jain
9e2decf7df Merge branch 'ci/fix_pytest_otatool_for_c2_v5.4' into 'release/v5.4'
fix(examples): Fix pytest_otatool for C2 (v5.4)

See merge request espressif/esp-idf!35116
2024-11-26 13:05:21 +08:00
Zhou Xiao
8805bf97d3 feat(ble/example): Removed unused sdkconfig files
(cherry picked from commit 57b98f4e1e)

Co-authored-by: Zhou Xiao <zhouxiao@espressif.com>
2024-11-26 12:05:37 +08:00
Island
3915ea30f2 Merge branch 'bugfix/fix_c2_light_sleep_coex_v5.4' into 'release/v5.4'
fix(ble): fix ble light sleep error on esp32c2 (v5.4)

See merge request espressif/esp-idf!35056
2024-11-26 10:50:33 +08:00
Shu Chen
9181ecabf8 Merge branch 'backport/openthread_related_feature_v54_20241125' into 'release/v5.4'
Backport openthread related features to 5.4

See merge request espressif/esp-idf!35172
2024-11-26 09:51:38 +08:00
Roland Dobai
37cb1521a1 Merge branch 'feat/add_activate_debug_information_v5.4' into 'release/v5.4'
feat(tools): Imporve activate.py debug information (v5.4)

See merge request espressif/esp-idf!35170
2024-11-25 17:41:59 +08:00
morris
af5ddf0eb6 Merge branch 'contrib/github_pr_14767_v5.4' into 'release/v5.4'
fix(gptimer): race on FSM state in gptimer_start() (GitHub PR) (v5.4)

See merge request espressif/esp-idf!35134
2024-11-25 17:24:23 +08:00
Marek Fiala
2e2740d20b feat(tools): Imporve activate.py debug information 2024-11-25 10:13:02 +01:00
C.S.M
65ce617a8d fix(jpeg_decoder): Fix jpeg decoder get picture information 2024-11-25 14:37:06 +08:00
Xu Si Yu
aa3e5d9832 feat(openthread): adjusted the default macro configurations of openthread 2024-11-25 14:31:28 +08:00
Xu Si Yu
b813889b62 feat(openthread): support using custom header file 2024-11-25 12:29:56 +08:00
morris
fe3bb073f9 Merge branch 'refactor/i2c_ll_trm_sync_v5.4' into 'release/v5.4'
refactor(i2c): rename some LL functions according to TRM descriptions (v5.4)

See merge request espressif/esp-idf!35107
2024-11-25 10:30:02 +08:00
Jin Cheng
e8c3b6418c feat(bt/bluedroid): added events to indicate the profile states of HFP 2024-11-25 10:21:55 +08:00
Jin Cheng
f22b03cd7e fix(bt/bluedroid): disconnect SDP connection on receiving incorrect response 2024-11-25 10:19:05 +08:00
Alexey Lapshin
bb72e51d6a feat(tools): update toolchain version to esp-14.2.0_20241119 2024-11-23 14:39:35 +07:00
Alexey Lapshin
fd89e9f144 fix(tools): fix adding tar.gz archive to tools.json if tar.xz is present 2024-11-23 14:39:35 +07:00
David Čermák
8a17f7f8c5 Merge branch 'fix/lwip_tcp_pcb_recycle_v5.4' into 'release/v5.4'
fix(lwip): Limit active TCP PCBs and recycle them faster (v5.4)

See merge request espressif/esp-idf!35092
2024-11-23 02:53:41 +08:00
David Cermak
7d9970590a fix(lwip): Limit active TCP PCBs and recycle them faster
Update submodule: git log --oneline c816f0ee..a587d929
  - test: Add tcp-pcb recycle test (espressif/esp-lwip@a587d929)
  - tcp: Apply faster PCB recycling in FIN_WAIT_1 or FIN_WAIT_2 state (espressif/esp-lwip@3bfc85d2)
  - test: Add tcp alloc limitation test (espressif/esp-lwip@0c9c39a9)
  - memp: Employ TCP-PCB allocation limit if libc malloc used (espressif/esp-lwip@9cb96ac1)
2024-11-22 14:45:36 +01:00
David Čermák
b1c4c9ae2f Merge branch 'fix/lwip_ping_ipv6only_v5.4' into 'release/v5.4'
fix(lwip): Fix IP6 raw socket checksum in IPv6-only configuration (v5.4)

See merge request espressif/esp-idf!35083
2024-11-22 21:38:49 +08:00
Wang Meng Yang
c122f727d1 Merge branch 'bugfix/lmp_trans_collision_v5.4' into 'release/v5.4'
fix(bt/controller): Fixed some controller bugs on ESP32 (v5.4)

See merge request espressif/esp-idf!34944
2024-11-22 19:15:02 +08:00
lsita
fa3cdccb18 fix(gptimer): race condition between start and stop
Merges https://github.com/espressif/esp-idf/pull/14767
2024-11-22 18:22:47 +08:00
Island
438c0634af Merge branch 'feat/optimize_cble50y24_110_v5.4' into 'release/v5.4'
feat(bt/bluedroid): Added BLE 5.0 throughput examples (v5.4)

See merge request espressif/esp-idf!35010
2024-11-22 17:53:44 +08:00
Adam Múdry
94aa1c0d5d fix(sdmmc): Fix ACMD22 DMA buffer problem for ESP32-P4 2024-11-22 17:13:07 +08:00
Adam Múdry
2d5d2509fb test(sdmmc): Add test_apps test for sdmmc component 2024-11-22 17:13:07 +08:00
Adam Múdry
68c1423cf3 fix(sdmmc): Generalize waiting for card idle to a function 2024-11-22 17:13:07 +08:00
Adam Múdry
1f0931f6d1 fix(sdmmc): Send ACMD22 if CMD25 fails
Send the number of the written write blocks (ACMD22) after
write multiple blocks fails (CMD25)
2024-11-22 17:13:07 +08:00
morris
47d0a913e0 Merge branch 'doc/vad_programming_guide_v5.4' into 'release/v5.4'
doc: lp_i2s and vad programming guide (v5.4)

See merge request espressif/esp-idf!35108
2024-11-22 15:48:31 +08:00
Jiang Jiang Jian
bc89933ad6 Merge branch 'bugfix/wps_ie_reset_v54' into 'release/v5.4'
fix(wifi): Remove WPS IEs once WPS succeeds (v5.4)

See merge request espressif/esp-idf!35071
2024-11-22 14:39:24 +08:00
Jiang Jiang Jian
b56ad1d633 Merge branch 'fix/ws_transport_head_fragments_v5.4' into 'release/v5.4'
fix(ws_transport): Fix reading WS header in fragments (v5.4)

See merge request espressif/esp-idf!35088
2024-11-22 13:43:19 +08:00
Jiang Jiang Jian
5e65f632a3 Merge branch 'feature/avoid_compiling_wifi_components_when_wifi_is_unsupported_v5.4' into 'release/v5.4'
feat(wifi): avoid compiling components related to wifi when wifi is not supported(Backport v5.4)

See merge request espressif/esp-idf!35062
2024-11-22 13:42:51 +08:00
Jiang Jiang Jian
31ef58d98e Merge branch 'fix/add_sbom_exception_v5.4' into 'release/v5.4'
Add an exception in wpa_supplicant sbom.yml (Backport v5.4)

See merge request espressif/esp-idf!35061
2024-11-22 13:41:52 +08:00
Jiang Jiang Jian
569f6c0213 Merge branch 'fix/fix_modem_module_clock_missing_after_ota_v5.4' into 'release/v5.4'
fix(esp_system): deselect all modem modules lp clock source selection before clk initialization (v5.4)

See merge request espressif/esp-idf!34923
2024-11-22 13:41:23 +08:00
Li Bo
7bba3dfe8a fix(esp_rom): fix esp32c3 eco7 console rom function address 2024-11-22 13:40:05 +08:00
Konstantin Kondrashov
ed5a540439 fix(examples): Fix pytest_otatool for C2
Test for C2 has to be run with flash_4mb
2024-11-22 07:09:03 +02:00
Jin Cheng
5cd5ede2f5 fix(bt/controller): Fixed some controller bugs on ESP32
- Fixed wrong logic in handling sniff transaction collision at slave
      side
    - Fixed the issue ACL is stopped too early before eSCO
2024-11-22 11:01:30 +08:00
gongyantao
dc6fc5a1f5 fix(bt): fix some issues in bt controller
1: Store local device name into NVDS when handling hci_wr_local_name_cmd.
2: Set default device name during link manager initialization.
3: Set the QoS value to the minimum value if the calculated QoS is less
   than the minumum.
2024-11-22 11:01:30 +08:00
zhanghaipeng
5c722289b6 fix(bt/ble): Update esp32 libbtdm_app.a (17db8bd)
- Added a verification step for the Access Address within the CONNECT_IND PDU
2024-11-22 11:01:30 +08:00
Jin Cheng
f4f1d20c82 fix(bt/bluedroid): AG should send OK or other error codes to HF client
when it is driven by HF to initiate a call.
2024-11-22 11:01:30 +08:00
Armando
4207ec8b3b doc(vad): remove vad png 2024-11-22 10:47:05 +08:00
Armando
6aa6883af4 change(lp_i2d): use atomic fsm check 2024-11-22 10:46:53 +08:00
Armando
22f36bea53 change(vad): wakeup driver maitain necessary power domain 2024-11-22 10:46:49 +08:00
Armando
37d8e97a9d doc(lp_vad): lp vad programming guide 2024-11-22 10:46:43 +08:00
Armando
e4a9243517 doc(lp_i2s): lp i2s programming guide 2024-11-22 10:46:39 +08:00
Armando
e83fc30b67 fix(lp_i2s): added cbs iram check 2024-11-22 10:46:34 +08:00
morris
85e86626ff refactor(i2c): rename some LL functions according to TRM descriptions 2024-11-22 10:14:22 +08:00
morris
30f0c6f5db Merge branch 'docs/usb_host_ext_port_driver_backport_v5.4' into 'release/v5.4'
docs(ext_port): Maintainers Notes for the External Port Driver (backport v5.4)

See merge request espressif/esp-idf!35100
2024-11-22 10:06:15 +08:00
Roland Dobai
6048d26493 Merge branch 'fix/import_error_msg_v5.4' into 'release/v5.4'
fix(tools): re-raise ImportError without module name (v5.4)

See merge request espressif/esp-idf!35073
2024-11-22 01:37:20 +08:00
Roman Leonov
8fc6dad7ff fix(tusb_msc): Added SD power supply configuration for p4 2024-11-21 13:10:03 +01:00
Roman Leonov
adb468bade docs(ext_port): Maintainers Notes for the External Port Driver 2024-11-21 12:49:32 +01:00
Mahavir Jain
e1c0ad9189 Merge branch 'fix/aes_cache_failure_when_l2_cache_line_size_greater_than_l1_cache_v5.4' into 'release/v5.4'
Fix memory corruption caused due to unaligned external memory buffers sync in AES (v5.4)

See merge request espressif/esp-idf!35064
2024-11-21 18:35:33 +08:00
David Cermak
2822cc671a fix(lwip): Fix ping_v6 receiving to accept only echo replies
This fixes a bug where we ping our own IP and the request itself
bounces back to the raw receive function and is incorrectly treated as
reply. (this bug was discovered when fixing ICMPv6 pings with incorrect
checksums, while the ping request was dropped in icmpv6.c due to wrong
checksum, but was also fed to raw layers where it was treated as
"correct" response, so the PINGv6 to ourselves still worked)
2024-11-21 11:24:46 +01:00
David Cermak
e390c17f99 fix(common_connect): Fix example's stdin/out to setup UART interrupt once
Function example_configure_stdin_stdout() was used for simple UART I/O
operation in CI to enter test env configuration (wifi ssid, IPs, etc).
It could be called multiple times, but didn't handle the situation where
we install UART interrupt from multiple source (e.g. in ICMP tests,
where we first need to enter wifi credentials of test AP and then we
start ping-cmd console to handle ping commands)
2024-11-21 11:24:46 +01:00
David Cermak
f75e399139 fix(lwip): Fix IP6 raw socket checksum in IPv6-only configuration
* Update submodule: git log --oneline f150e232..c816f0ee
  - sockets: Make IPv6 only netconn type IPv6 aware (espressif/esp-lwip@c816f0ee)
  - test: Make test application scalable (espressif/esp-lwip@3ec12c3b)
  - dns: Handle active DNS entries before clearing cache (espressif/esp-lwip@b15cd2de)
2024-11-21 11:24:30 +01:00
Laukik Hase
9d7a4e5917 change(bootloader): Map only the necessary length when fetching the app description struct 2024-11-21 15:12:55 +05:30
Mahavir Jain
fbe93aa25e test: add configurable mmu page size test app
Test app to ensure that bootloader and application built with
different flash MMU page size are compatible. This is for the
SoCs that support configurable flash MMU page size.
2024-11-21 15:11:45 +05:30
Mahavir Jain
07318a4987 feat(bootloader): add support to use MMU page size from app binary
For the SoCs that support configurable MMU page size, it is possible
that the bootloader and application are built with different MMU page
size configuration. This mismatch is not supported at the moment and
application verification fails (at bootup or during OTA update).

Configuring MMU page size helps to optimize the flash space by having
smaller alignment and padding (secure) requirements. Please note that
the MMU page size is tied with the flash size configuration at the
moment (`ESPTOOLPY_FLASHSIZE_XMB`).

This MR ensures that application verification happens using the MMU page
size configured in its binary header. Thus, bootloader and application
can now have different MMU page sizes and different combinations shall
be supported.
2024-11-21 15:11:38 +05:30
David Cermak
15636a2f14 fix(ws_transport): Unit test on reading WS data byte by byte
Closes https://github.com/espressif/esp-idf/issues/14704
Closes https://github.com/espressif/esp-protocols/issues/679
2024-11-21 10:39:23 +01:00
Richard Allen
b8a7d96e98 fix(ws_transport): Fix reading WS header bytes
Correct split header bytes

When the underlying transport returns header,
length, or mask bytes early, again call the
underlying transport.

This solves the WS parser getting offset when
the server sends a burst of frames where the
last WS header is split across packet boundaries,
so fewer than the needed bytes may be available.

Merges https://github.com/espressif/esp-idf/pull/14706
2024-11-21 10:39:23 +01:00
Frantisek Hrbata
2151f23f46 fix(tools): re-raise ImportError without module name
The ImportError or ModuleNotFoundError might be raised without
specifying a module name. In this not so common situation, re-raise the
exception to print all the information that could assist in identifying
the problem.

Signed-off-by: Frantisek Hrbata <frantisek.hrbata@espressif.com>
2024-11-21 09:37:12 +01:00
Kapil Gupta
234dce0e7f fix(wifi): Remove WPS IEs once WPS succeeds 2024-11-21 13:42:29 +05:30
harshal.patil
e0312feddb fix(mbedtls/aes): Fix external memory corruption caused due to unaligned length cache sync
Fixes the memory corruption issue that arises due to external memory cache sync of unaligned
length bytes when L2 cache line size is greater than the L1 cache line size
2024-11-21 12:15:57 +05:30
yinqingzhao
a34f1eb6f9 feat(wifi): avoid compiling components related to wifi when wifi is not supported 2024-11-21 14:18:41 +08:00
Nachiket Kukade
8580f9f622 fix(wpa_supplicant): Add an exception in wpa_supplicant sbom.yml 2024-11-21 11:48:19 +05:30
Jin Chen
999b10d2d4 fix(ble): change ld for ble scan coex issue
(cherry picked from commit dd499d7b2e)

Co-authored-by: cjin <jinchen@espressif.com>
2024-11-21 11:03:55 +08:00
Jin Chen
43cd3491c9 fix(ble): fix ble light sleep error on esp32c2
(cherry picked from commit 23f7e33a97)

Co-authored-by: cjin <jinchen@espressif.com>
2024-11-21 11:03:53 +08:00
Shu Chen
9240757145 Merge branch 'fix/fix_a_naming_error_of_esp_radio_spinel_v54' into 'release/v5.4'
fix a naming error of esp radio spinel (backport to 5.4)

See merge request espressif/esp-idf!35041
2024-11-21 10:35:23 +08:00
Jiang Jiang Jian
914a4810a9 Merge branch 'bugfix/idf-11064_v5.4' into 'release/v5.4'
backport v5.4: fix some issues on esp32c5 eco1

See merge request espressif/esp-idf!34790
2024-11-20 19:38:13 +08:00
Jiang Jiang Jian
48ed77c9cc Merge branch 'bugfix/rx_invalid_cmd_err_code_v5.4' into 'release/v5.4'
fix(bt/bluedroid): Fixed the incorrect error code returned when receiving an invalid command(v5.4)

See merge request espressif/esp-idf!34987
2024-11-20 19:12:23 +08:00
Jiang Jiang Jian
a61663d63b Merge branch 'bugfix/crash_deauth_fix_5.4' into 'release/v5.4'
Fix for crash while receiving deauth in esp32c2 ECO4(v5.4)

See merge request espressif/esp-idf!34984
2024-11-20 19:10:59 +08:00
Island
b5c02eb3d8 Merge branch 'bugfix/fix_classic_bt_build_fail_v5.4' into 'release/v5.4'
fix(bt/bluedroid): Fixed classic bt build fail when enable dynamic memory and disable BLE (v5.4)

See merge request espressif/esp-idf!34931
2024-11-20 18:05:49 +08:00
Island
28bf5eacb9 Merge branch 'feature/support_moving_code_to_flash_v5.4' into 'release/v5.4'
feat(ble): Support for putting code in flash on ESP32-C2 (v5.4)

See merge request espressif/esp-idf!34786
2024-11-20 17:46:55 +08:00
morris
8d4b04742c Merge branch 'fix/c61_h2_pmu_icg_csv_update_v5.4' into 'release/v5.4'
fix(pmu): c61 and h2 update pmu_icg_mapping.h (v5.4)

See merge request espressif/esp-idf!34795
2024-11-20 17:41:37 +08:00
Jiang Jiang Jian
a09d5747e1 Merge branch 'bugfix/esp_bt_wifi_bt_power_api_v5.4' into 'release/v5.4'
fix(bt): Move esp_wifi_bt_power_domain_on/off to esp_phy_init.h(v5.4)

See merge request espressif/esp-idf!34626
2024-11-20 16:27:01 +08:00
Xu Si Yu
f70bec1cf8 fix(openthread): fix a naming error of esp radio spinel 2024-11-20 15:47:38 +08:00
Jiang Jiang Jian
4cc82c7d66 Merge branch 'feat/sleep_retention_expand_module_bitmap_v5.4' into 'release/v5.4'
backport v5.4: expand the number of sleep retention modules supported on different chips

See merge request espressif/esp-idf!34691
2024-11-20 14:50:52 +08:00
morris
0e966ba0d6 Merge branch 'feat/mipi_dsi_underrun_error_v5.4' into 'release/v5.4'
feat(mipi_dsi): enable underrun error interrupt (v5.4)

See merge request espressif/esp-idf!34980
2024-11-20 14:47:09 +08:00
wanckl
6abf54e150 fix(pmu): c61 and h2 update pmu_icg_mapping.h 2024-11-20 10:32:40 +08:00
morris
9c2a5ac60e Merge branch 'fix/twai_io_init_glitch_v5.4' into 'release/v5.4'
fix(driver_twai): fixed bus-off when twai_init due to wrong gpio config (v5.4)

See merge request espressif/esp-idf!34815
2024-11-20 10:32:05 +08:00
morris
fb52ad1d26 Merge branch 'fix/p4_spi_no_dma_polling_cache_fail_v5.4' into 'release/v5.4'
fix(driver_spi): fixed p4 no dma polling trans cache sync fail (v5.4)

See merge request espressif/esp-idf!34813
2024-11-20 10:18:33 +08:00
Shu Chen
c46fe1fa4f Merge branch 'fix/add_network_reconnectin_in_ot_ci_case_v5.4' into 'release/v5.4'
feat(openthread): flush ipv6 addr in openthread ci cases(Backport v5.4)

See merge request espressif/esp-idf!34675
2024-11-20 10:15:49 +08:00
morris
dfe11ebb47 Merge branch 'doc/isp_lsc_doc_v5.4' into 'release/v5.4'
isp: lsc doc (v5.4)

See merge request espressif/esp-idf!35021
2024-11-20 10:12:19 +08:00
morris
0960a602f4 feat(mipi_dsi): enable underrun error interrupt 2024-11-19 21:42:47 +08:00
morris
15202df249 Merge branch 'ci/fix_i2s_multi_dev_test_potential_overflow_v5.4' into 'release/v5.4'
ci(i2s): fix the potential overflow in multi_dev test (v5.4)

See merge request espressif/esp-idf!35022
2024-11-19 18:15:31 +08:00
Luo Xu
5fef371bad fix(ble_mesh): fixed heartbeat issue
(cherry picked from commit 167cd4762b)

Co-authored-by: luoxu <luoxu@espressif.com>
2024-11-19 18:03:23 +08:00
Rahul Tank
be95e8e14b Merge branch 'bugfix/memory_issue_v5.4' into 'release/v5.4'
fix(nimble): Nimble Error logs in case of memory overflow/failure (v5.4)

See merge request espressif/esp-idf!34997
2024-11-19 16:56:40 +08:00
laokaiyao
3ea47a6cf3 docs(i2s): update i2s cap overview 2024-11-19 15:57:26 +08:00
laokaiyao
1a685b7e1c ci(i2s): fix the potential overflow in multi_dev test 2024-11-19 15:57:24 +08:00
yiwenxiu
cad2ff8de5 feat(openthread): flush ipv6 addr in openthread ci cases 2024-11-19 15:48:40 +08:00
Jiang Jiang Jian
17b7419786 Merge branch 'fix/update_ping_cmd_version_v5.4' into 'release/v5.4'
update: Update ping-cmd component to v1.0.0 (v5.4)

See merge request espressif/esp-idf!35012
2024-11-19 14:59:23 +08:00
Shu Chen
69a9b17587 Merge branch 'backport/openthread_related_feature_v54_20241112' into 'release/v5.4'
Backport openthread related features to 5.4

See merge request espressif/esp-idf!34834
2024-11-19 14:54:03 +08:00
Armando
b873befcd8 doc(isp): isp lsc programming guide 2024-11-19 14:33:55 +08:00
Armando
10b3296085 change(sdmmc): simplify cmd11 enable code 2024-11-19 14:30:31 +08:00
wanckl
b282c41954 fix(driver_spi): fixed p4 no dma polling trans cache sync fail 2024-11-19 11:50:47 +08:00
wanckl
928b7f6efc fix(driver_twai): fixed bus-off when twai_init due to wrong gpio config
Closes https://github.com/espressif/esp-idf/issues/14548
2024-11-19 11:50:29 +08:00
Chen Yudong
e8f76a93a1 change: Update ping-cmd component to v1.0.0 2024-11-19 11:38:16 +08:00
Chen Jian Hua
91fe5d7fa8 feat(bt/bluedroid): Added BLE 5.0 throughput examples
(cherry picked from commit 6d3a82eecf)

Co-authored-by: zhangbowen <zhangbowen@espressif.com>
2024-11-19 10:33:44 +08:00
xiongweichao
91c2390897 fix(bt): Move esp_wifi_bt_power_domain_on/off to esp_phy_init.h 2024-11-19 10:12:59 +08:00
Li Shuai
52bcb74b67 fix(esp_hw_support): fix the issue of wifi rx packet loss when switchng soc root clock source 2024-11-18 21:52:00 +08:00
Li Shuai
ea6dd7344d fix(esp_hw_support): fix the issue of mmu table content loss due to default sd signal 2024-11-18 21:52:00 +08:00
morris
e422e12f17 Merge branch 'feat/dynamic_usb_hal_backport_v5.4' into 'release/v5.4'
feat(hal/usb): Make USB-DWC HAL&LL configuration independent backport v5.4

See merge request espressif/esp-idf!34812
2024-11-18 21:40:16 +08:00
Abhinav Kudnar
16d7351cbc fix(nimble): Nimble Error logs in case of memory overflow/failure 2024-11-18 17:47:05 +08:00
Li Shuai
71f83bd02b change(esp_hw_support): fix some sleep retention build error 2024-11-18 17:46:41 +08:00
Li Shuai
4b0faf47b4 change(soc): define sleep retention module total number to 64 for esp32p4 2024-11-18 17:46:41 +08:00
Li Shuai
a56249f631 change(esp_hw_support): update power domain pd allowed check logic 2024-11-18 17:46:41 +08:00
Li Shuai
bde6b9141f change(esp_hw_support): update some modules sleep retention init dependency bitmap 2024-11-18 17:46:40 +08:00
Rahul Tank
06587938fb Merge branch 'feature/remove_min_max_def_v5.4' into 'release/v5.4'
fix(nimble): Removed min/max macro definition from os.h (v5.4)

See merge request espressif/esp-idf!34909
2024-11-18 17:07:25 +08:00
xiongweichao
8480fb3c6f fix(bt/bluedroid): Fixed the incorrect error code returned
when receiving an invalid command
2024-11-18 16:49:54 +08:00
Li Shuai
00a6f825b0 change(soc): add sleep retention module total number definition 2024-11-18 16:05:34 +08:00
Li Shuai
78b272c092 feat(esp_hw_support): extend sleep retention module bitmap bit width 2024-11-18 15:57:42 +08:00
morris
538b0fc180 Merge branch 'fix/fix_tsens_retention_p4_v5.4' into 'release/v5.4'
fix(temperature_sensor): Fix temperature sensor sleep retention on p4 (backport v5.4)

See merge request espressif/esp-idf!34979
2024-11-18 14:31:15 +08:00
akshat
853a944cd0 fix(esp_rom): Comment out unused function pointers in esp32c2 eco4 linker file 2024-11-18 11:49:50 +05:30
Aditi
1917e7f532 fix(esp_wifi): Fix for crash while receiving deauth in esp32c2 ECO4 2024-11-18 11:45:46 +05:30
Shu Chen
84569bc94f Merge branch 'backport/2015_enhack_v54' into 'release/v5.4'
fix(802.15.4): add case for 2015 frame enh-ack (Backport v5.4)

See merge request espressif/esp-idf!34954
2024-11-18 11:48:48 +08:00
Jiang Jiang Jian
35f0fdcd36 Merge branch 'fix/fix_deadlock_in_pm_mode_switching_v5.4' into 'release/v5.4'
fix(esp_pm): fix deadlock in pm_mode switching (v5.4)

See merge request espressif/esp-idf!34938
2024-11-18 11:20:01 +08:00
C.S.M
479f7bfdc4 fix(temperature_sensor): Fix temperature sensor sleep retention on p4 2024-11-18 10:37:50 +08:00
Shu Chen
75e0cc387e Merge branch 'fix/thread_resolve_invalid_host_v5_4' into 'release/v5.4'
fix(openthread): Fix invalid host resolving for Thread end devices(v5.4)

See merge request espressif/esp-idf!34942
2024-11-17 21:29:26 +08:00
zwx
d5d07b44ef feat(openthread): support alloc nat64 session from psram 2024-11-15 18:53:28 +08:00
Simon Dean
f9ac9f052e enable openthread coap client for mtd 2024-11-15 18:53:28 +08:00
Xu Si Yu
8b098ae53c fix(coex): fix 802.15.4 external coexistence 2024-11-15 18:53:28 +08:00
Xu Si Yu
14bc7c01ea feat(openthread): update openthread submodule and border router lib 2024-11-15 18:53:28 +08:00
morris
71c437767f Merge branch 'feat/i2c_slave_v2_v5.4' into 'release/v5.4'
feat(i2c_slave): Add new i2c slave driver --version two with great stretch handling (backport v5.4)

See merge request espressif/esp-idf!34907
2024-11-15 15:36:46 +08:00
Tan Yan Quan
e3fe456cf9 fix(802.15.4): add case for 2015 frame enh-ack 2024-11-15 15:15:55 +08:00
Jiang Jiang Jian
41ce4c9e07 Merge branch 'fix/fix_cache_stuck_in_esp_restart_v5.4' into 'release/v5.4'
fix(esp_system): writeback L1 Dcache before disable L2 if PSRAM used (v5.4)

See merge request espressif/esp-idf!34801
2024-11-15 13:56:19 +08:00
wuzhenghui
2c35c09742 fix(esp_pm): fix deadlock in pm_mode switching 2024-11-15 11:25:58 +08:00
wuzhenghui
78362aff04 fix(esp_pm): fix missed ccompare update when another core is already in do_switch 2024-11-15 11:25:58 +08:00
WanqQixiang
7cf389deab fix(openthread): Fix invalid host resolving for Thread end devices 2024-11-15 11:24:00 +08:00
Marius Vikhammer
356e7b6954 Merge branch 'feat/esp32p4_unicore_stop_other_core_v5.4' into 'release/v5.4'
feat(esp_system): stop other core for unicore esp32p4 (v5.4)

See merge request espressif/esp-idf!34827
2024-11-15 11:10:48 +08:00
wuzhenghui
a2d26ab56f fix(esp_system): deselect all modem modules clk source selection before clk init 2024-11-15 11:00:54 +08:00
morris
779106e49c Merge branch 'contrib/github_pr_14859_v5.4' into 'release/v5.4'
fix(usb_host): return ESP_ERR_NO_MEM on failed alloc in client register (GitHub PR) (v5.4)

See merge request espressif/esp-idf!34875
2024-11-15 10:56:46 +08:00
morris
63ef26e9ee Merge branch 'ci/backport_i2s_ci_fix_to_v5.4' into 'release/v5.4'
ci(i2s): backport i2s ci fix (v5.4)

See merge request espressif/esp-idf!34586
2024-11-15 10:53:39 +08:00
Tomas Rezucha
68a95f5c94 feat(hal/usb): Make USB-DWC HAL&LL configuration independent
Previously, we included symbols from soc/usb_dwc_cfg.h and configured
the HAL and LL according to it. Now we get the configuration in runtime
from USB-DWC registers.

Added missing definition for USB FS peripheral on ESP32-P4.
2024-11-15 00:36:10 +08:00
Adam Múdry
8b1f8cb20e fix(examples): tusb_midi task stack overflow fix 2024-11-14 16:43:16 +01:00
Zhang Hai Peng
0dea1a84d6 fix(bt/bluedroid): Fixed classic bt build fail when enable dynamic memory and disable BLE
(cherry picked from commit 59d20e80d3)

Co-authored-by: zhanghaipeng <zhanghaipeng@espressif.com>
2024-11-14 22:13:50 +08:00
Marius Vikhammer
af18afd279 Merge branch 'fix/typo-esp-rom_v5.4' into 'release/v5.4'
fix(esp_rom): Fix comment typos (Backport v5.4)

See merge request espressif/esp-idf!34870
2024-11-14 21:49:19 +08:00
Adam Múdry
94e55817d2 fix(littlefs): Allow LittleFS image generation on Windows + version bump
Closes https://github.com/espressif/esp-idf/issues/12900
2024-11-14 13:17:40 +01:00
Abhinav Kudnar
d21a0a9b64 fix(nimble): Removed min/max macro defination from os.h
Closes https://github.com/espressif/esp-idf/issues/14840
2024-11-14 19:04:33 +08:00
C.S.M
32adbe72b6 docs(i2c_slave): Update i2c slave programming guide for new changes 2024-11-14 18:04:25 +08:00
C.S.M
170d44b75d feat(i2c_slave): Add new example for making i2c slave as a network sensor 2024-11-14 18:04:11 +08:00
C.S.M
e27594efc1 test(i2c_slave): Add some new tests for i2c slave version 2 2024-11-14 18:02:27 +08:00
C.S.M
56625cda88 feat(i2c_slave): refactor i2c slave api to version 2 inorder to solve some existing problem 2024-11-14 18:02:15 +08:00
Samuel Obuch
5304897608 feat(esp_system): stop other core for unicore esp32p4 2024-11-14 09:40:08 +01:00
xuxiao
976cf648f7 fix(ci): enable esp32c5 eco1 ci test (Backport v5.4) 2024-11-14 14:37:31 +08:00
Mahavir Jain
6d7fd7a722 Merge branch 'change/disable_stub_bins_v5.4' into 'release/v5.4'
change(esp_system): do not include openocd stub bins by default (v5.4)

See merge request espressif/esp-idf!34871
2024-11-14 12:41:45 +08:00
Shu Chen
0c5d3749f1 Merge branch 'fix/find_and_close_service_in_ot_ci_case_v5.4' into 'release/v5.4'
fix(ci): optimize an openthread ci case (Backport v5.4)

See merge request espressif/esp-idf!34727
2024-11-14 11:59:43 +08:00
morris
3b2eb13199 Merge branch 'feat/sdmmc_uhs_tuning_v5.4' into 'release/v5.4'
sdmmc: UHS-I support for SDR50 (100MHz, 50MB/s), DDR50 (50MHz, 50MB/s) (v5.4)

See merge request espressif/esp-idf!34867
2024-11-14 11:13:45 +08:00
morris
e1aed77c72 Merge branch 'feat/mcpwm_sleep_rentention_v5.4' into 'release/v5.4'
feat(mcpwm): support sleep retention (v5.4)

See merge request espressif/esp-idf!34802
2024-11-14 10:46:49 +08:00
laokaiyao
76d87acd59 fix(i2s): suplimemt of c61 i2s ll 2024-11-14 10:18:16 +08:00
laokaiyao
24a6994471 feat(i2s): support i2s retention on C61 2024-11-14 10:18:16 +08:00
laokaiyao
ecf7f8257f ci(i2s): fix i2s_multi_dev failed case 2024-11-14 10:18:16 +08:00
morris
551cb70a1b Merge branch 'fix/disable_sar_power_when_enter_deepsleep_v5.4' into 'release/v5.4'
fix(esp_hw_support): disable sar power when esp32p4 going to deepsleep (v5.4)

See merge request espressif/esp-idf!34869
2024-11-14 10:09:56 +08:00
Roland Dobai
85a742351c Merge branch 'feat/size_unify_sections_v5.4' into 'release/v5.4'
feat(tools): unify sections in idf.py size reports for NG version (v5.4)

See merge request espressif/esp-idf!34855
2024-11-14 02:18:07 +08:00
morris
6932df2ce8 Merge branch 'change/esp_ldo_reserve_for_spi_flash_v5.4' into 'release/v5.4'
LDO calibration on ESP32-P4 (v5.4)

See merge request espressif/esp-idf!34864
2024-11-13 17:11:39 +08:00
Daniel Mangum
35aaccdbc1 fix(usb_host): return ESP_ERR_NO_MEM on failed alloc in client register
Fixes issue where ESP_ERR_NO_MEM was being silently discarded after
cleaning up after a failed malloc in usb_host_client_register.

Signed-off-by: Daniel Mangum <georgedanielmangum@gmail.com>
2024-11-13 10:08:04 +01:00
morris
09f1411389 Merge branch 'fix/suspend_ci_v5.4' into 'release/v5.4'
test(spi_flash): Fix some failing test related to spi flash (backport v5.4)

See merge request espressif/esp-idf!34819
2024-11-13 17:07:40 +08:00
morris
35ed582ebf Merge branch 'fix/bod_p4eco2_fix_v5.4' into 'release/v5.4'
fix(bod): Remove config for bod on p4 eco1  (backport v5.4)

See merge request espressif/esp-idf!34821
2024-11-13 17:02:59 +08:00
morris
ad8d75222a Merge branch 'fix/jpeg_com_marker_v5.4' into 'release/v5.4'
fix(jpeg): Fix the length of com marker (backport v5.4)

See merge request espressif/esp-idf!34822
2024-11-13 17:02:27 +08:00
Erhan Kurubas
368f71443b change(esp_system): do not include openocd stub bins by default 2024-11-13 07:36:07 +01:00
YAMAMOTO Takashi
dbd394cb4a fix(esp-rom): Fix comment typos in cache.h
Fix typo in parameter names in cache_flash_mmu_set
amd cache_sram_mmu_set functions.

Closes https://github.com/espressif/esp-idf/pull/14518
2024-11-13 07:00:49 +01:00
wuzhenghui
88c345aca8 fix(esp_hw_support): disable sar power when esp32p4 going to deepsleep 2024-11-13 11:44:46 +08:00
Chen Jichang
2e44cb9387 feat(mcpwm): support sleep retention 2024-11-13 11:13:34 +08:00
Chen Jichang
c8fa2a1f42 fix(mcpwm): fix mcpwm register offset on p4 2024-11-13 11:13:34 +08:00
Armando
0f32537b93 fix(i2s): fixed i2s example build warning 2024-11-13 11:12:24 +08:00
Armando
c1a8efaf09 doc(sdmmc): aadd UHS1 support for DDR50 / SDR50 2024-11-13 11:12:19 +08:00
Armando
a89abd5eac example(sdmmc): support hs and uhs1 sdr50/ddr50 2024-11-13 11:12:14 +08:00
Armando
04cd469e4a feat(sdmmc): supported UHS-I SDR50 (100Mhz) and DDR50 mode 2024-11-13 11:12:10 +08:00
Ivan Grokhotkov
31dc34a909 feat(sdmmc): support for voltage switching in protocol layer 2024-11-13 11:11:23 +08:00
Ivan Grokhotkov
a03cbdba2e change(sdmmc): enable UHS-1 support in test_app, swap slots on P4 EV board 2024-11-13 11:08:25 +08:00
Ivan Grokhotkov
b8de3dfb35 change(sdmmc): adapt host state machine for CMD11, commit reg/struct files 2024-11-13 11:08:09 +08:00
Ivan Grokhotkov
a8efd39877 change(sdmmc): disable the logic related to D3 line, it needs to be connected for CMD11 to work 2024-11-13 11:08:05 +08:00
Ivan Grokhotkov
c9e7d09e0a change(sdmmc): allow speciying pins for IOMUX slots as well 2024-11-13 11:07:39 +08:00
Ivan Grokhotkov
646cb24b71 change(sdmmc): make sdmmc_host_clock_update_command compatible with CMD11 2024-11-13 11:07:29 +08:00
C.S.M
8baade44fd test(spi_flash): Fix some failing test related to spi flash 2024-11-13 10:58:53 +08:00
C.S.M
2db5607060 fix(bod): Remove config for bod on p4 v0.x 2024-11-13 10:58:33 +08:00
C.S.M
0aa8d7f7c9 fix(jpeg): Fix the length of com marker 2024-11-13 10:57:48 +08:00
Shen Wei Long
59e3a1f046 feat(ble): Support for putting code in flash on ESP32-C2
(cherry picked from commit 192f13135488a2f8a386ace2dad69da59e81f5b5)

Co-authored-by: Shen Weilong <shenweilong@espressif.com>
2024-11-13 10:45:03 +08:00
morris
e5a5cb8779 feat(ldo): load calibration parameters from efuse 2024-11-13 10:18:30 +08:00
Konstantin Kondrashov
c9be3c2dc6 feat(efuse): Adds efuse ADC calib data for ESP32-P4 2024-11-13 10:18:30 +08:00
Martin Vychodil
8ea7ae7086 Merge branch 'fix/nvs_generator_test_fail_due_to_safer_write_namespace_function_v5.4' into 'release/v5.4'
fix(nvs): Fix the NVS generator test (write_namespace safer behavior change) (v5.4)

See merge request espressif/esp-idf!34857
2024-11-13 03:45:05 +08:00
Adam Múdry
67ab814756 fix(nvs): Fix the nvs generator test (write_namespace safer behavior change) 2024-11-12 14:56:38 +01:00
Frantisek Hrbata
67039c590d feat(tools): unify sections in idf.py size reports for NG version
By default, esp-idf-size.ng displays all sections individually. This can
be confusing, especially if CONFIG_SOC_MEM_NON_CONTIGUOUS_SRAM is
enabled, resulting in sections like .dram0.data and .dram1.data being
abbreviated as two .data sections in the size report. To avoid confusion
for idf.py and cmake users, pass the --unify option to the underlying
esp_idf_size.ng by default.

Signed-off-by: Frantisek Hrbata <frantisek.hrbata@espressif.com>
2024-11-12 14:13:02 +01:00
morris
29003010a3 Merge branch 'feat/mipi_dsi_yuv_converter_v5.4' into 'release/v5.4'
feat(lcd): support YUV422 input color format (v5.4)

See merge request espressif/esp-idf!34760
2024-11-12 15:04:46 +08:00
Marius Vikhammer
7481f7eb9e Merge branch 'ci/known-failure-cases-5.4' into 'release/v5.4'
Ci/known failure cases 5.4

See merge request espressif/esp-idf!34688
2024-11-12 10:37:32 +08:00
morris
bfebd2e3ff Merge branch 'bugfix/gpio_set_level_atomic_v5.4' into 'release/v5.4'
fix(gpio): improve set level performance (v5.4)

See merge request espressif/esp-idf!34764
2024-11-11 14:24:47 +08:00
wuzhenghui
054706c115 fix(esp_system): writeback L1 Dcache before disable L2 if PSRAM used 2024-11-11 14:02:35 +08:00
Jiang Jiang Jian
df64e63bbd Merge branch 'fix/bypass_some_restore_process_if_sleep_rejected_v5.4' into 'release/v5.4'
fix(esp_hw_support): skip some wakeup steps if sleep is rejected (v5.4)

See merge request espressif/esp-idf!34622
2024-11-09 00:37:21 +08:00
Jiang Jiang Jian
3b0cf1a2ea Merge branch 'bugfix/backport_some_wifi_fixes_v5.4' into 'release/v5.4'
fix(wifi): backport some wifi fixes to v5.4

See merge request espressif/esp-idf!34690
2024-11-09 00:33:43 +08:00
Jiang Jiang Jian
12c49601c3 Merge branch 'feature/support_to_query_phy_rf_used_time_v5.4' into 'release/v5.4'
feat(phy): support to query phy used time

See merge request espressif/esp-idf!34624
2024-11-09 00:05:31 +08:00
Jiang Jiang Jian
36e78b3bd3 Merge branch 'bugfix/chip823_pll_low_temp_bug_v5.4' into 'release/v5.4'
[H2]Fix cpu switch fail for bbpll cali fail bug in low temp (v5.4)

See merge request espressif/esp-idf!34598
2024-11-08 23:28:38 +08:00
Jiang Jiang Jian
82802eb460 Merge branch 'bugfix/fix_avrc_absolute_volume_compatibility_v5.4' into 'release/v5.4'
bugfix/fix_avrc_absolute_volume_compatibility[backport v5.4]

See merge request espressif/esp-idf!34769
2024-11-08 22:28:10 +08:00
Sergei Silnov
68d680bafd Merge branch 'ci/fix_macos_ccache_v5.4' into 'release/v5.4'
CI: Fix failing ccache and show ccache statistics for macOS tests (master) (v5.4)

See merge request espressif/esp-idf!34758
2024-11-08 19:46:14 +08:00
Jiang Jiang Jian
b79c8faba4 Merge branch 'fix/fix_writeback_psram_after_vo2_powerdown_v5.4' into 'release/v5.4'
fix(esp_hw_support): fix writeback cache to psram after vo2 powerdown (v5.4)

See merge request espressif/esp-idf!34579
2024-11-08 18:44:13 +08:00
hongshuqing
019afc0f80 fix: fix pll low temp bug 2024-11-08 18:01:54 +08:00
morris
0e43df1a47 Merge branch 'feat/pcnt_sleep_retention_v5.4' into 'release/v5.4'
feat(pcnt): add sleep retention init to avoid light sleep when pcnt is working (v5.4)

See merge request espressif/esp-idf!34728
2024-11-08 17:31:28 +08:00
Jiang Jiang Jian
2afa1cc04d Merge branch 'update/version_5_4_0' into 'release/v5.4'
Update version to 5.4.0

See merge request espressif/esp-idf!34743
2024-11-08 16:23:23 +08:00
liuning
91006fdee1 feat(phy): support to query phy used time 2024-11-08 16:23:16 +08:00
wuzhenghui
59230175df fix(esp_hw_support): skip some wakeup steps if sleep is rejected
1. Skip esp_timer time compensation to avoid introducing errors into rtc_timer
    2. Ignore sleep_time_overhead_out measurements when sleep is rejected
2024-11-08 16:08:32 +08:00
Jiang Jiang Jian
98fccdef20 Merge branch 'bugfix/osi_replace_free_v5.4' into 'release/v5.4'
fix(bt/bluedroid): Replace free/malloc with osi_free/malloc(v5.4)

See merge request espressif/esp-idf!34605
2024-11-08 16:07:08 +08:00
morris
49fbe54bc4 feat(lcd): support color conversion for mipi dsi driver 2024-11-08 15:23:06 +08:00
liqigan
d7dd068478 fix(bt/bluedroid): Fixed AVRCP compatibility issue on absolute volume synchronization 2024-11-08 14:48:03 +08:00
zhangyanjiao
1d87c94ca3 fix(wifi/pm): Fixed the tbtt interval update error when AP's beacon interval changed
Closes https://github.com/espressif/esp-idf/issues/14720
2024-11-08 12:08:59 +08:00
xuxiao
c433d95441 fix(wifi): fix esp32c61 can not tx frame under ht40 above 2024-11-08 12:08:59 +08:00
yinqingzhao
30acf8b5d1 feat(twt): twt add parameter to enable keep alive 2024-11-08 12:08:59 +08:00
yinqingzhao
3d95fd17e3 docs(wifi): add migration guide for types change in wifi 2024-11-08 12:08:59 +08:00
yinqingzhao
504a248ba1 fix(wifi): modify bandwidth in wifi_ap_record_t 2024-11-08 12:08:59 +08:00
zhangyanjiao
295f1576e1 fix(wifi/mesh): Enlarge the mesh TX task stack 2024-11-08 12:08:59 +08:00
zhangyanjiao
e36118f4f0 fix(wifi): Support AES IV with random value in esptouch v2 2024-11-08 12:08:59 +08:00
sibeibei
49b8292f51 fix(wifi): fix some wifi issues 241031
1. fix cant sleep if reconnect to connected ap
    2. clear pmk in internal reconnection
    3. update connect status for init-->auth
    4. add protection for probe request when wifi band is 5g
2024-11-08 12:08:59 +08:00
wangtao@espressif.com
ea05f7f647 fix(wifi): fix spiram ignore issue 2024-11-08 12:08:59 +08:00
xuxiao
e2c732c906 feat(wifi): add wifi support for esp32c5 eco1 2024-11-08 12:08:59 +08:00
morris
a5fee4b8cc fix(gpio): improve set level performance
by avoid "read-modify-write" operation. The registers designed to be
write only.

Related to https://github.com/espressif/esp-idf/issues/14674
2024-11-08 11:44:08 +08:00
Peter Macko
1254494dd8 fix(macos): ccache: re-enable, show stats, set CCACHE_DIR, limit CCACHE_MAXSIZE 2024-11-07 17:39:49 +01:00
Aditya Patwardhan
64b9d85a76 change(version): Update version to 5.4.0 2024-11-07 12:55:42 +05:50
morris
ec8de8a1f9 Merge branch 'feat/mcpwm_dead_time_add_warning_v5.4' into 'release/v5.4'
fix(mcpwm): add warning about generator deadtime (v5.4)

See merge request espressif/esp-idf!34729
2024-11-07 14:52:29 +08:00
Mahavir Jain
c366277e64 Merge branch 'fix/fetch_image_hdr_v5.4' into 'release/v5.4'
fix(esp_system): Correct address used to fetch application image header (v5.4)

See merge request espressif/esp-idf!34627
2024-11-07 13:48:54 +08:00
Chen Jichang
31befbfad3 feat(pcnt): add sleep retention init
Currently, due to the lack of sleep callback feature. We only init
sleep module but don't allocate it. Thus the power domain will be
kept during the light sleep. And temporarily disable pcnt sleep
retention support on P4 due to the lack of retention module ID.
2024-11-07 12:09:26 +08:00
Shu Chen
dd8b4fa06e Merge branch 'backport/upgrade-zigbee-examples-v5.4' into 'release/v5.4'
feat(zigbee): Upgrade the Zigbee lib to v1.6 for Zigbee examples(Backport v5.4)

See merge request espressif/esp-idf!34716
2024-11-07 11:39:54 +08:00
Shu Chen
343bb81729 Merge branch 'fix/esp_prov_ipv6_resolve_v5_4' into 'release/v5.4'
fix(tools/esp_prov): Fix hostname resolving for IPv6-only host(v5.4)

See merge request espressif/esp-idf!34679
2024-11-07 11:07:34 +08:00
Chen Jichang
7946eb51e0 fix(mcpwm): add warning about generator deadtime
Closes https://github.com/espressif/esp-idf/issues/14773
2024-11-07 10:56:57 +08:00
Shu Chen
367059b93d Merge branch 'backport/linker_script_check_missing_function_v54' into 'release/v5.4'
fix(802.15.4): add no inline to some static function(Backport v5.4)

See merge request espressif/esp-idf!34722
2024-11-07 10:53:37 +08:00
Xu Si Yu
454c3140ad fix(ci): optimize an openthread ci case 2024-11-07 10:49:37 +08:00
xieqinan@espressif.com
b0a9704c3d feat(zigbee): Upgrade the Zigbee lib to v1.6 for Zigbee examples
- Optimize the Zigbee light, switch and gateway examples
- Remove the esp_zigbee_rcp example
2024-11-07 10:39:39 +08:00
Michael (XIAO Xufeng)
bab289ca78 Merge branch 'fix/sdio_slave_add_pm_lock_v5.4' into 'release/v5.4'
fix(sdio_slave): fix issue that auto light sleep can happen SDIO slave enabled (v5.4)

See merge request espressif/esp-idf!34646
2024-11-07 02:31:38 +08:00
Island
81020a3748 Merge branch 'feat/support_controller_run_in_flash_only_v5.4' into 'release/v5.4'
feat/support controller run in flash only(backport v5.4)

See merge request espressif/esp-idf!34625
2024-11-06 20:06:08 +08:00
zwx
ab2e360266 fix(802.15.4): add no inline to some static function 2024-11-06 19:49:17 +08:00
xiongweichao
500165ffb3 fix(bt/bluedroid): Replace free/malloc with osi_free/malloc 2024-11-06 19:15:04 +08:00
Mahavir Jain
69d72ca243 Merge branch 'ci/nightly_run_crt_bundle_stress_test_v5.4' into 'release/v5.4'
Run https x509 bundle default crt bundle stress test using QEMU (v5.4)

See merge request espressif/esp-idf!34660
2024-11-06 18:45:15 +08:00
Mahavir Jain
2b12fb6daa Merge branch 'docs/fix_section_visibility_esp32p4_v5.4' into 'release/v5.4'
Fix typo to make a section visible for non-esp32 SPIRAM supported targets (v5.4)

See merge request espressif/esp-idf!34680
2024-11-06 17:45:06 +08:00
Island
7f42ed38fd Merge branch 'bugfix/fix_ble_build_fail_v5.4' into 'release/v5.4'
fix(ble/bluedroid): Fixed BLE build fail when enable dynamic memory and BLE5.0 (v5.4)

See merge request espressif/esp-idf!34665
2024-11-06 16:36:46 +08:00
Island
b763700bc8 Merge branch 'bugfix/fixed_h2_assert_master_1031_v5.4' into 'release/v5.4'
Bugfix/fixed h2 assert master 1031 (v5.4)

See merge request espressif/esp-idf!34541
2024-11-06 15:06:45 +08:00
morris
764f5414ff Merge branch 'ci/run_gdma_after_reset_v5.4' into 'release/v5.4'
fix(gdma): run test cases after reset (v5.4)

See merge request espressif/esp-idf!34689
2024-11-06 15:02:47 +08:00
Island
1e37c32fb6 Merge branch 'bugfix/fix_mem_debug_on_bluedroid_v5.4' into 'release/v5.4'
fix(bt/bluedroid): Fixed error when memory debug enabled (v5.4)

See merge request espressif/esp-idf!34576
2024-11-06 11:50:40 +08:00
Marius Vikhammer
ee5e2798ba Merge branch 'fix/nmi_not_triggering_on_s3_v5.4' into 'release/v5.4'
fix(examples): fix NMI interrupt example to work on ESP32-S3 (release v5.4)

See merge request espressif/esp-idf!34687
2024-11-06 11:31:51 +08:00
morris
eeb4baf17f fix(gdma): run test cases after reset 2024-11-06 11:24:16 +08:00
igor.udot
17a023989b ci: updated known failure cases file env 2024-11-06 10:42:40 +08:00
Omar Chebib
ad910e3ce0 fix(examples): fix NMI interrupt example to work on ESP32-S3 2024-11-06 10:15:09 +08:00
morris
f5c71b8715 Merge branch 'bugfix/wrong_return_type_v5.4' into 'release/v5.4'
fix(i2c_lcd): wrong return type for esp_lcd_new_panel_io_i2c (v5.4)

See merge request espressif/esp-idf!34653
2024-11-05 21:28:26 +08:00
harshal.patil
7c9bec2633 docs(mem_alloc): Fix typo to make a section visible for non-esp32 spiram targets 2024-11-05 16:13:08 +05:30
Alexey Gerenkov
c17aa3e020 Merge branch 'fix/sysview_stack_overflow_v5.4' into 'release/v5.4'
fix(sysview): reduce isr stack usage to avoid stack guard exception (v5.4)

See merge request espressif/esp-idf!34614
2024-11-05 18:36:25 +08:00
WanqQixiang
2980c7f5e5 fix(tools/esp_prov): Fix hostname resolving for IPv6-only host 2024-11-05 17:47:14 +08:00
Zhang Hai Peng
9685b3b4ca fix(ble/bluedroid): Fixed BLE build fail when enable dynamic memory and BLE5.0
(cherry picked from commit 94d1a4f1c0)

Co-authored-by: zhanghaipeng <zhanghaipeng@espressif.com>
2024-11-05 16:13:51 +08:00
harshal.patil
8b8956f7ed ci(examples/protocols): Run the https x509 bundle default crt bundle stress test using QEMU 2024-11-05 13:31:48 +05:30
Shu Chen
1754c8f8e5 Merge branch 'backport/fix_energy_scan_api_para_mismatch_v54' into 'release/v5.4'
fix(openthread): set channel for energy scan(Backport v5.4)

See merge request espressif/esp-idf!34597
2024-11-05 14:28:08 +08:00
morris
2770a95a5f fix(i2c_lcd): wrong return type for esp_lcd_new_panel_io_i2c
when build for C++ project
2024-11-05 13:46:16 +08:00
Shu Chen
f012157cf9 Merge branch 'feat/openthread_dataset_changed_event_v5_4' into 'release/v5.4'
feat(openthread): Add dataset changed event and post it in state change callback(v5.4)

See merge request espressif/esp-idf!34548
2024-11-05 12:17:22 +08:00
Xiao Xufeng
3e0611757b fix(sdio_slave): prevents peripheral power domain being powered off when SDIO slave in use 2024-11-05 03:22:06 +08:00
Xiao Xufeng
802e7b2192 feat(sleep_retention): allow drivers taking TOP power lock
Also add a dump function
2024-11-05 03:22:01 +08:00
Sergei Silnov
a2ffd9e955 Merge branch 'ci/fix_diff_manifest_sha_v5.4' into 'release/v5.4'
ci: use different base commit for merge result pipelines (v5.4)

See merge request espressif/esp-idf!34582
2024-11-05 01:07:13 +08:00
Zhao Wei Liang
0505eb80c9 fix(ble): fixed occasional crash issue in low memory scenarios on ESP32-H2
(cherry picked from commit dbad6a0ca5)

Co-authored-by: zwl <zhaoweiliang@espressif.com>
2024-11-05 00:05:58 +08:00
Zhao Wei Liang
ae6f824fcf fix(ble): fixed occasional crash issue in low memory scenarios on ESP32-C6
(cherry picked from commit dabd66e16f)

Co-authored-by: zwl <zhaoweiliang@espressif.com>
2024-11-05 00:05:58 +08:00
Laukik Hase
e0e285b841 fix(esp_system): Correct address used to fetch application image header 2024-11-04 14:07:17 +05:30
zhiweijian
2a05eb8fd3 feat(bt/controller): Support controller code run in flash only 2024-11-04 15:44:11 +08:00
wuzhenghui
651e5adbda fix(esp_hw_support): only support power down flash after revison v1.0 on esp32p4 2024-11-04 14:08:29 +08:00
wuzhenghui
2558760224 fix(esp_hw_support): fix writeback cache to psram after vo2 powerdown 2024-11-04 14:08:28 +08:00
Jiang Jiang Jian
0e6c74e93d Merge branch 'bugfix/fix_memory_leak_in_sco_v5.4' into 'release/v5.4'
fix(bt/bluedroid): Fix memory leak in sco when bluedroid disable (v5.4)

See merge request espressif/esp-idf!34564
2024-11-04 11:35:39 +08:00
Jiang Jiang Jian
b21b7294c6 Merge branch 'feature/add_ledc_output_in_sleep_test_v5.4' into 'release/v5.4'
feat(ledc): added a multi device test for testing ledc output in sleep (v5.4)

See merge request espressif/esp-idf!34522
2024-11-04 11:35:11 +08:00
Jiang Jiang Jian
131609cf29 Merge branch 'fix/fix_ota_slowclock_switching_v5.4' into 'release/v5.4'
fix(esp_hw_support): fix rtc slow clock missing after the OTA app changes the slow clock source (v5.4)

See merge request espressif/esp-idf!34488
2024-11-04 11:34:40 +08:00
Erhan Kurubas
92cc8a5512 fix(sysview): reduce isr stack usage to avoid stack guard exception 2024-11-01 22:30:37 +01:00
zwx
7c03514a28 fix(openthread): set channel for energy scan 2024-11-01 16:40:51 +08:00
Fu Hanxi
5f62667aba ci: use different base commit for merge result pipelines 2024-10-31 13:53:50 +01:00
chenjianhua
c6810a102b fix(bt/bluedroid): Fixed error when memory debug enabled 2024-10-31 19:12:47 +08:00
WanqQixiang
9677b9bfaf feat(openthread): Add dataset changed event and post it in state change callback 2024-10-31 19:04:00 +08:00
linruihao
6fe128ac6f fix(bt/bluedroid): Fix memory leak in sco when bluedroid disable 2024-10-31 17:52:31 +08:00
Song Ruo Jing
33103306a6 feat(ledc): added a multi device test for testing ledc output in sleep 2024-10-30 14:06:42 +08:00
Ivan Grokhotkov
851679e63a Merge branch 'maint/release_v5.4_codeowners' into 'release/v5.4'
change(gitlab): simplify approvals for backports (v5.4)

See merge request espressif/esp-idf!34481
2024-10-29 17:26:54 +08:00
wuzhenghui
280f6cb4e9 fix(esp_hw_support): disable unused clock sources after rtc clock switching complete 2024-10-28 20:16:01 +08:00
wuzhenghui
cf5bdf5e9f fix(esp_hw_support): enable all supported slow clock at pmu_init 2024-10-28 20:15:55 +08:00
Ivan Grokhotkov
661a487610 change(gitlab): simplify approvals for backports (v5.4) 2024-10-28 10:38:15 +01:00
6075 changed files with 79530 additions and 592373 deletions

View File

@@ -1,4 +1,4 @@
[codespell]
skip = build,*.yuv,components/fatfs/src/*,alice.txt,*.rgb,components/wpa_supplicant/*,components/esp_wifi/*,*.pem,components/newlib/COPYING.*,docs/sphinx-known-warnings.txt
skip = build,*.yuv,components/fatfs/src/*,alice.txt,*.rgb,components/wpa_supplicant/*,components/esp_wifi/*,*.pem
ignore-words-list = ser,dout,rsource,fram,inout,shs,ans,aci,unstall,unstalling,hart,wheight,wel,ot,fane,assertIn,registr,oen,parms
write-changes = true

165
.flake8 Normal file
View File

@@ -0,0 +1,165 @@
[flake8]
select =
# Full lists are given in order to suppress all errors from other plugins
# Full list of pyflakes error codes:
F401, # module imported but unused
F402, # import module from line N shadowed by loop variable
F403, # 'from module import *' used; unable to detect undefined names
F404, # future import(s) name after other statements
F405, # name may be undefined, or defined from star imports: module
F406, # 'from module import *' only allowed at module level
F407, # an undefined __future__ feature name was imported
F601, # dictionary key name repeated with different values
F602, # dictionary key variable name repeated with different values
F621, # too many expressions in an assignment with star-unpacking
F622, # two or more starred expressions in an assignment (a, *b, *c = d)
F631, # assertion test is a tuple, which are always True
F701, # a break statement outside of a while or for loop
F702, # a continue statement outside of a while or for loop
F703, # a continue statement in a finally block in a loop
F704, # a yield or yield from statement outside of a function
F705, # a return statement with arguments inside a generator
F706, # a return statement outside of a function/method
F707, # an except: block as not the last exception handler
F721, F722, # doctest syntax error syntax error in forward type annotation
F811, # redefinition of unused name from line N
F812, # list comprehension redefines name from line N
F821, # undefined name name
F822, # undefined name name in __all__
F823, # local variable name referenced before assignment
F831, # duplicate argument name in function definition
F841, # local variable name is assigned to but never used
F901, # raise NotImplemented should be raise NotImplementedError
# Full list of pycodestyle violations:
E101, # indentation contains mixed spaces and tabs
E111, # indentation is not a multiple of four
E112, # expected an indented block
E113, # unexpected indentation
E114, # indentation is not a multiple of four (comment)
E115, # expected an indented block (comment)
E116, # unexpected indentation (comment)
E121, # continuation line under-indented for hanging indent
E122, # continuation line missing indentation or outdented
E123, # closing bracket does not match indentation of opening bracket's line
E124, # closing bracket does not match visual indentation
E125, # continuation line with same indent as next logical line
E126, # continuation line over-indented for hanging indent
E127, # continuation line over-indented for visual indent
E128, # continuation line under-indented for visual indent
E129, # visually indented line with same indent as next logical line
E131, # continuation line unaligned for hanging indent
E133, # closing bracket is missing indentation
E201, # whitespace after '('
E202, # whitespace before ')'
E203, # whitespace before ':'
E211, # whitespace before '('
E221, # multiple spaces before operator
E222, # multiple spaces after operator
E223, # tab before operator
E224, # tab after operator
E225, # missing whitespace around operator
E226, # missing whitespace around arithmetic operator
E227, # missing whitespace around bitwise or shift operator
E228, # missing whitespace around modulo operator
E231, # missing whitespace after ',', ';', or ':'
E241, # multiple spaces after ','
E242, # tab after ','
E251, # unexpected spaces around keyword / parameter equals
E261, # at least two spaces before inline comment
E262, # inline comment should start with '# '
E265, # block comment should start with '# '
E266, # too many leading '#' for block comment
E271, # multiple spaces after keyword
E272, # multiple spaces before keyword
E273, # tab after keyword
E274, # tab before keyword
E275, # missing whitespace after keyword
E301, # expected 1 blank line, found 0
E302, # expected 2 blank lines, found 0
E303, # too many blank lines
E304, # blank lines found after function decorator
E305, # expected 2 blank lines after end of function or class
E306, # expected 1 blank line before a nested definition
E401, # multiple imports on one line
E402, # module level import not at top of file
E501, # line too long (82 > 79 characters)
E502, # the backslash is redundant between brackets
E701, # multiple statements on one line (colon)
E702, # multiple statements on one line (semicolon)
E703, # statement ends with a semicolon
E704, # multiple statements on one line (def)
E711, # comparison to None should be 'if cond is None:'
E712, # comparison to True should be 'if cond is True:' or 'if cond:'
E713, # test for membership should be 'not in'
E714, # test for object identity should be 'is not'
E721, # do not compare types, use 'isinstance()'
E722, # do not use bare except, specify exception instead
E731, # do not assign a lambda expression, use a def
E741, # do not use variables named 'l', 'O', or 'I'
E742, # do not define classes named 'l', 'O', or 'I'
E743, # do not define functions named 'l', 'O', or 'I'
E901, # SyntaxError or IndentationError
E902, # IOError
W191, # indentation contains tabs
W291, # trailing whitespace
W292, # no newline at end of file
W293, # blank line contains whitespace
W391, # blank line at end of file
W503, # line break before binary operator
W504, # line break after binary operator
W505, # doc line too long (82 > 79 characters)
W601, # .has_key() is deprecated, use 'in'
W602, # deprecated form of raising exception
W603, # '<>' is deprecated, use '!='
W604, # backticks are deprecated, use 'repr()'
W605, # invalid escape sequence 'x'
W606, # 'async' and 'await' are reserved keywords starting with Python 3.7
# Full list of flake8 violations
E999, # failed to compile a file into an Abstract Syntax Tree for the plugins that require it
# Full list of mccabe violations
C901 # complexity value provided by the user
ignore =
E221, # multiple spaces before operator
E231, # missing whitespace after ',', ';', or ':'
E241, # multiple spaces after ','
W503, # line break before binary operator
W504 # line break after binary operator
max-line-length = 160
show_source = True
statistics = True
exclude =
.git,
__pycache__,
# submodules
components/bootloader/subproject/components/micro-ecc/micro-ecc,
components/bt/host/nimble/nimble,
components/cmock/CMock,
components/json/cJSON,
components/mbedtls/mbedtls,
components/openthread/openthread,
components/unity/unity,
components/spiffs/spiffs,
# autogenerated scripts
components/protocomm/python/constants_pb2.py,
components/protocomm/python/sec0_pb2.py,
components/protocomm/python/sec1_pb2.py,
components/protocomm/python/sec2_pb2.py,
components/protocomm/python/session_pb2.py,
components/wifi_provisioning/python/wifi_ctrl_pb2.py,
components/wifi_provisioning/python/wifi_scan_pb2.py,
components/wifi_provisioning/python/wifi_config_pb2.py,
components/wifi_provisioning/python/wifi_constants_pb2.py,
components/esp_local_ctrl/python/esp_local_ctrl_pb2.py,
per-file-ignores =
# Sphinx conf.py files use star imports to setup config variables
docs/conf_common.py: F405

View File

@@ -95,26 +95,6 @@ body:
render: plain
validations:
required: false
- type: textarea
id: diag
attributes:
label: Diagnostic report archive.
description: |
Diagnostic report for ESP-IDF created using [idf.py diag](https://docs.espressif.com/projects/esp-idf/en/latest/esp32/api-guides/tools/idf-diag.html) or [esp-idf-diag](https://github.com/espressif/esp-idf-diag). The `idf.py diag` command is available beginning with ESP-IDF version 5.5. For older versions, you may want to consider using the `esp-idf-diag` command.
In your project directory, execute the following command:
Using `idf.py diag`
1. idf.py diag
Using `esp-idf-diag`
1. pip install esp-idf-diag
2. esp-idf-diag create
Once the report is generated, the tool will guide you with the next steps.
placeholder: Please attach the diagnostic report zip file here.
validations:
required: false
- type: textarea
id: more-info
attributes:

View File

@@ -123,26 +123,6 @@ body:
render: plain
validations:
required: false
- type: textarea
id: diag
attributes:
label: Diagnostic report archive.
description: |
Diagnostic report for ESP-IDF created using [idf.py diag](https://docs.espressif.com/projects/esp-idf/en/latest/esp32/api-guides/tools/idf-diag.html) or [esp-idf-diag](https://github.com/espressif/esp-idf-diag). The `idf.py diag` command is available beginning with ESP-IDF version 5.5. For older versions, you may want to consider using the `esp-idf-diag` command.
In your project directory, execute the following command:
Using `idf.py diag`
1. idf.py diag
Using `esp-idf-diag`
1. pip install esp-idf-diag
2. esp-idf-diag create
Once the report is generated, the tool will guide you with the next steps.
placeholder: Please attach the diagnostic report zip file here.
validations:
required: false
- type: textarea
id: more-info
attributes:

View File

@@ -27,7 +27,6 @@ jobs:
- name: Vulnerability scan
env:
SBOM_CHECK_LOCAL_DB: ${{ vars.SBOM_CHECK_LOCAL_DB }}
SBOM_MATTERMOST_WEBHOOK: ${{ secrets.SBOM_MATTERMOST_WEBHOOK }}
NVDAPIKEY: ${{ secrets.NVDAPIKEY }}
uses: espressif/esp-idf-sbom-action@master

View File

@@ -2,253 +2,5 @@
#
# https://docs.gitlab.com/ee/user/project/code_owners.html#the-syntax-of-code-owners-files
#
# If more than one rule matches a given file, the latest rule is used.
# The file should be generally kept sorted, except when it is necessary
# to use a different order due to the fact above. In that case, use
# '# sort-order-reset' comment line to reset the sort order.
#
# Recipes for a few common cases:
#
# 1. Specific directory with all its contents:
#
# /components/app_trace/
#
# Note the trailing slash!
#
# 2. File with certain extension in any subdirectory of a certain directory:
#
# /examples/**/*.py
#
# This includes an *.py files in /examples/ directory as well.
#
# 3. Contents of a directory with a certain name, anywhere in the tree:
#
# test_*_host/
#
# Will match everything under components/efuse/test_efuse_host/,
# components/heap/test_multi_heap_host/, components/lwip/test_afl_host/, etc.
#
# 4. Same as above, except limited to a specific place in the tree:
#
# /components/esp32*/
#
# Matches everything under /components/esp32, /components/esp32s2, etc.
# Doesn't match /tools/some-test/components/esp32s5.
#
# 5. Specific file:
#
# /tools/tools.json
#
# 6. File with a certain name anywhere in the tree
#
# .gitignore
#
* @esp-idf-codeowners/other
/.* @esp-idf-codeowners/tools
/.codespellrc @esp-idf-codeowners/ci
/.github/workflows/ @esp-idf-codeowners/ci
/.gitlab-ci.yml @esp-idf-codeowners/ci
/.gitlab/ci/ @esp-idf-codeowners/ci
/.pre-commit-config.yaml @esp-idf-codeowners/ci
/.readthedocs.yml @esp-idf-codeowners/docs
/.vale.ini @esp-idf-codeowners/docs
/CMakeLists.txt @esp-idf-codeowners/build-config
/COMPATIBILITY*.md @esp-idf-codeowners/peripherals
/CONTRIBUTING.md @esp-idf-codeowners/docs
/Kconfig @esp-idf-codeowners/build-config
/README*.md @esp-idf-codeowners/docs
/ROADMAP*.md @esp-idf-codeowners/docs
/SUPPORT_POLICY*.md @esp-idf-codeowners/docs
/add_path.sh @esp-idf-codeowners/tools
/conftest.py @esp-idf-codeowners/ci
/export.* @esp-idf-codeowners/tools
/install.* @esp-idf-codeowners/tools
/pytest.ini @esp-idf-codeowners/ci
/ruff.toml @esp-idf-codeowners/tools
/sdkconfig.rename @esp-idf-codeowners/build-config
/sonar-project.properties @esp-idf-codeowners/ci
# sort-order-reset
/components/app_trace/ @esp-idf-codeowners/debugging
/components/app_update/ @esp-idf-codeowners/system @esp-idf-codeowners/app-utilities
/components/bootloader*/ @esp-idf-codeowners/system @esp-idf-codeowners/security
/components/bootloader_support/bootloader_flash/ @esp-idf-codeowners/peripherals
/components/bt/ @esp-idf-codeowners/bluetooth
/components/cmock/ @esp-idf-codeowners/system
/components/console/ @esp-idf-codeowners/system @esp-idf-codeowners/app-utilities/console
/components/cxx/ @esp-idf-codeowners/system
/components/driver/ @esp-idf-codeowners/peripherals
/components/efuse/ @esp-idf-codeowners/system
/components/esp_adc/ @esp-idf-codeowners/peripherals
/components/esp_app_format/ @esp-idf-codeowners/system @esp-idf-codeowners/app-utilities
/components/esp_bootloader_format/ @esp-idf-codeowners/system @esp-idf-codeowners/app-utilities
/components/esp_coex/ @esp-idf-codeowners/wifi @esp-idf-codeowners/bluetooth @esp-idf-codeowners/ieee802154
/components/esp_common/ @esp-idf-codeowners/system
/components/esp_driver_*/ @esp-idf-codeowners/peripherals
/components/esp_driver_sdmmc/ @esp-idf-codeowners/peripherals @esp-idf-codeowners/storage
/components/esp_eth/ @esp-idf-codeowners/network
/components/esp_event/ @esp-idf-codeowners/system
/components/esp_gdbstub/ @esp-idf-codeowners/debugging
/components/esp_hid/ @esp-idf-codeowners/bluetooth
/components/esp_http_client/ @esp-idf-codeowners/app-utilities
/components/esp_http_server/ @esp-idf-codeowners/app-utilities
/components/esp_https_ota/ @esp-idf-codeowners/app-utilities
/components/esp_https_server/ @esp-idf-codeowners/app-utilities
/components/esp_hw_support/ @esp-idf-codeowners/system @esp-idf-codeowners/peripherals
/components/esp_hw_support/lowpower/ @esp-idf-codeowners/power-management
/components/esp_lcd/ @esp-idf-codeowners/peripherals
/components/esp_local_ctrl/ @esp-idf-codeowners/app-utilities
/components/esp_mm/ @esp-idf-codeowners/peripherals
/components/esp_netif/ @esp-idf-codeowners/network
/components/esp_netif_stack/ @esp-idf-codeowners/network
/components/esp_partition/ @esp-idf-codeowners/storage
/components/esp_phy/ @esp-idf-codeowners/bluetooth @esp-idf-codeowners/wifi @esp-idf-codeowners/ieee802154
/components/esp_pm/ @esp-idf-codeowners/power-management @esp-idf-codeowners/bluetooth @esp-idf-codeowners/wifi @esp-idf-codeowners/system
/components/esp_psram/ @esp-idf-codeowners/peripherals
/components/esp_psram/system_layer/ @esp-idf-codeowners/peripherals @esp-idf-codeowners/system
/components/esp_ringbuf/ @esp-idf-codeowners/system
/components/esp_rom/ @esp-idf-codeowners/system @esp-idf-codeowners/bluetooth @esp-idf-codeowners/wifi
/components/esp_security/ @esp-idf-codeowners/security
/components/esp_system/ @esp-idf-codeowners/system
/components/esp_tee/ @esp-idf-codeowners/security
/components/esp_timer/ @esp-idf-codeowners/system
/components/esp-tls/ @esp-idf-codeowners/app-utilities
/components/esp_vfs_*/ @esp-idf-codeowners/storage
/components/esp_vfs_console/ @esp-idf-codeowners/storage @esp-idf-codeowners/system
/components/esp_wifi/ @esp-idf-codeowners/wifi
/components/espcoredump/ @esp-idf-codeowners/debugging
/components/esptool_py/ @esp-idf-codeowners/tools
/components/fatfs/ @esp-idf-codeowners/storage
/components/freertos/ @esp-idf-codeowners/system
/components/hal/ @esp-idf-codeowners/peripherals
/components/hal/test_apps/crypto/ @esp-idf-codeowners/peripherals @esp-idf-codeowners/security
/components/heap/ @esp-idf-codeowners/system
/components/http_parser/ @esp-idf-codeowners/app-utilities
/components/idf_test/ @esp-idf-codeowners/peripherals @esp-idf-codeowners/system
/components/ieee802154/ @esp-idf-codeowners/ieee802154
/components/json/ @esp-idf-codeowners/app-utilities
/components/linux/ @esp-idf-codeowners/system
/components/log/ @esp-idf-codeowners/system
/components/lwip/ @esp-idf-codeowners/lwip
/components/mbedtls/ @esp-idf-codeowners/app-utilities/mbedtls @esp-idf-codeowners/security
/components/mqtt/ @esp-idf-codeowners/network
/components/newlib/ @esp-idf-codeowners/system @esp-idf-codeowners/toolchain
/components/nvs_flash/ @esp-idf-codeowners/storage
/components/nvs_sec_provider/ @esp-idf-codeowners/storage @esp-idf-codeowners/security
/components/openthread/ @esp-idf-codeowners/ieee802154
/components/partition_table/ @esp-idf-codeowners/system
/components/perfmon/ @esp-idf-codeowners/debugging
/components/protobuf-c/ @esp-idf-codeowners/app-utilities
/components/protocomm/ @esp-idf-codeowners/app-utilities/provisioning
/components/pthread/ @esp-idf-codeowners/system
/components/riscv/ @esp-idf-codeowners/system
/components/rt/ @esp-idf-codeowners/system
/components/sdmmc/ @esp-idf-codeowners/storage
/components/soc/ @esp-idf-codeowners/peripherals @esp-idf-codeowners/system
/components/spi_flash/ @esp-idf-codeowners/peripherals
/components/spiffs/ @esp-idf-codeowners/storage
/components/tcp_transport/ @esp-idf-codeowners/network
/components/touch_element/ @esp-idf-codeowners/peripherals
/components/ulp/ @esp-idf-codeowners/system
/components/unity/ @esp-idf-codeowners/peripherals @esp-idf-codeowners/system
/components/usb/ @esp-idf-codeowners/peripherals/usb
/components/vfs/ @esp-idf-codeowners/storage
/components/wear_levelling/ @esp-idf-codeowners/storage
/components/wifi_provisioning/ @esp-idf-codeowners/app-utilities/provisioning
/components/wpa_supplicant/ @esp-idf-codeowners/wifi @esp-idf-codeowners/app-utilities/mbedtls
/components/xtensa/ @esp-idf-codeowners/system
/docs/ @esp-idf-codeowners/docs
/docs/docs_not_updated/ @esp-idf-codeowners/all-maintainers
/docs/**/api-guides/tools/ @esp-idf-codeowners/tools
/docs/en/api-guides/core_dump.rst @esp-idf-codeowners/debugging
/docs/**/api-guides/wifi* @esp-idf-codeowners/wifi
/docs/**/api-guides/esp-wifi-mesh.rst @esp-idf-codeowners/wifi
/docs/en/api-guides/jtag-debugging/ @esp-idf-codeowners/debugging
/docs/**/api-reference/bluetooth/ @esp-idf-codeowners/bluetooth
/docs/**/api-reference/network/ @esp-idf-codeowners/network @esp-idf-codeowners/wifi
/docs/**/api-reference/peripherals/ @esp-idf-codeowners/peripherals
/docs/**/api-reference/peripherals/usb* @esp-idf-codeowners/peripherals @esp-idf-codeowners/peripherals/usb
/docs/**/api-reference/peripherals/usb*/ @esp-idf-codeowners/peripherals @esp-idf-codeowners/peripherals/usb
/docs/**/api-reference/protocols/ @esp-idf-codeowners/network @esp-idf-codeowners/app-utilities
/docs/**/api-reference/provisioning/ @esp-idf-codeowners/app-utilities/provisioning
/docs/**/api-reference/storage/ @esp-idf-codeowners/storage
/docs/**/api-reference/system/ @esp-idf-codeowners/system
/docs/**/security/ @esp-idf-codeowners/security
/docs/**/migration-guides/ @esp-idf-codeowners/docs @esp-idf-codeowners/all-maintainers
/docs/**/contribute/install-pre-commit-hook.rst @esp-idf-codeowners/ci @esp-idf-codeowners/tools
/examples/README.md @esp-idf-codeowners/docs @esp-idf-codeowners/ci
/examples/**/*.py @esp-idf-codeowners/ci @esp-idf-codeowners/tools
/examples/bluetooth/ @esp-idf-codeowners/bluetooth
/examples/build_system/ @esp-idf-codeowners/build-config
/examples/common_components/ @esp-idf-codeowners/system @esp-idf-codeowners/wifi @esp-idf-codeowners/lwip @esp-idf-codeowners/network
/examples/custom_bootloader/ @esp-idf-codeowners/system
/examples/cxx/ @esp-idf-codeowners/system
/examples/ethernet/ @esp-idf-codeowners/network
/examples/get-started/ @esp-idf-codeowners/system
/examples/ieee802154/ @esp-idf-codeowners/ieee802154
/examples/lowpower/ @esp-idf-codeowners/power-management @esp-idf-codeowners/system
/examples/mesh/ @esp-idf-codeowners/wifi
/examples/network/ @esp-idf-codeowners/network @esp-idf-codeowners/wifi
/examples/openthread/ @esp-idf-codeowners/ieee802154
/examples/peripherals/ @esp-idf-codeowners/peripherals
/examples/peripherals/usb/ @esp-idf-codeowners/peripherals @esp-idf-codeowners/peripherals/usb
/examples/phy/ @esp-idf-codeowners/bluetooth @esp-idf-codeowners/wifi @esp-idf-codeowners/ieee802154
/examples/protocols/ @esp-idf-codeowners/network @esp-idf-codeowners/app-utilities
/examples/provisioning/ @esp-idf-codeowners/app-utilities/provisioning
/examples/security/ @esp-idf-codeowners/security
/examples/storage/ @esp-idf-codeowners/storage
/examples/system/ @esp-idf-codeowners/system
/examples/system/ota/ @esp-idf-codeowners/app-utilities
/examples/wifi/ @esp-idf-codeowners/wifi
/examples/zigbee/ @esp-idf-codeowners/ieee802154
/tools/ @esp-idf-codeowners/tools
/tools/ble/ @esp-idf-codeowners/app-utilities
/tools/bt/ @esp-idf-codeowners/bluetooth
/tools/catch/ @esp-idf-codeowners/ci
/tools/ci/ @esp-idf-codeowners/ci
/tools/cmake/ @esp-idf-codeowners/build-config
/tools/cmake/toolchain-*.cmake @esp-idf-codeowners/toolchain
/tools/esp_app_trace/ @esp-idf-codeowners/debugging
/tools/esp_prov/ @esp-idf-codeowners/app-utilities
/tools/gdb_panic_server.py @esp-idf-codeowners/debugging
/tools/kconfig*/ @esp-idf-codeowners/build-config
/tools/ldgen/ @esp-idf-codeowners/build-config
/tools/mass_mfg/ @esp-idf-codeowners/app-utilities
/tools/mocks/ @esp-idf-codeowners/system
/tools/test_apps/ @esp-idf-codeowners/ci
/tools/test_apps/README.md @esp-idf-codeowners/docs @esp-idf-codeowners/ci
## Note: owners here should be the same as the owners for the same example subdir, above
/tools/test_apps/build_system/ @esp-idf-codeowners/build-config
/tools/test_apps/configs/ @esp-idf-codeowners/system
/tools/test_apps/linux_compatible/ @esp-idf-codeowners/system
/tools/test_apps/peripherals/ @esp-idf-codeowners/peripherals
/tools/test_apps/phy/ @esp-idf-codeowners/bluetooth @esp-idf-codeowners/wifi @esp-idf-codeowners/ieee802154
/tools/test_apps/protocols/ @esp-idf-codeowners/network @esp-idf-codeowners/app-utilities
/tools/test_apps/security/ @esp-idf-codeowners/security
/tools/test_apps/storage/ @esp-idf-codeowners/storage
/tools/test_apps/system/ @esp-idf-codeowners/system
/tools/test_apps/**/*.py @esp-idf-codeowners/ci @esp-idf-codeowners/tools
/tools/test_build_system/ @esp-idf-codeowners/tools @esp-idf-codeowners/build-config
/tools/tools.json @esp-idf-codeowners/tools @esp-idf-codeowners/toolchain @esp-idf-codeowners/debugging
/tools/unit-test-app/ @esp-idf-codeowners/system @esp-idf-codeowners/tools
# sort-order-reset
/components/**/test_apps/**/*.py @esp-idf-codeowners/ci @esp-idf-codeowners/tools
# ignore lists
/tools/ci/check_copyright_config.yaml @esp-idf-codeowners/all-maintainers
/tools/ci/check_copyright_ignore.txt @esp-idf-codeowners/all-maintainers
/tools/ci/mypy_ignore_list.txt @esp-idf-codeowners/tools
* @esp-idf-codeowners/all-maintainers

View File

@@ -145,11 +145,11 @@ check if there's a suitable `.if-<if-anchor-you-need>` anchor
1. if there is, create a rule following [`rules` Template Naming Rules](#rules-template-naming-rules).For detail information, please refer to [GitLab Documentation `rules-if`](https://docs.gitlab.com/ee/ci/yaml/README.html#rulesif). Here's an example.
```yaml
.rules:patterns:clang_tidy:
.rules:patterns:python-files:
rules:
- <<: *if-protected
- <<: *if-dev-push
changes: *patterns-c-files
changes: *patterns-python-files
```
2. if there isn't

View File

@@ -234,7 +234,7 @@ pytest_build_system_macos:
- macos_shell
parallel: 3
variables:
PYENV_VERSION: "3.9"
PYENV_VERSION: "3.8"
# CCACHE_DIR: "/cache/idf_ccache". On macOS, you cannot write to this folder due to insufficient permissions.
CCACHE_DIR: "" # ccache will use "$HOME/Library/Caches/ccache".
CCACHE_MAXSIZE: "5G" # To preserve the limited Macbook storage. CCACHE automatically prunes old caches to fit the set limit.

View File

@@ -40,7 +40,7 @@ variables:
GIT_FETCH_EXTRA_FLAGS: "--no-recurse-submodules --prune --prune-tags"
# we're using .cache folder for caches
GIT_CLEAN_FLAGS: -ffdx -e .cache/
LATEST_GIT_TAG: v5.5-dev
LATEST_GIT_TAG: v5.4.2
SUBMODULE_FETCH_TOOL: "tools/ci/ci_fetch_submodule.py"
# by default we will fetch all submodules
@@ -55,9 +55,9 @@ variables:
CHECKOUT_REF_SCRIPT: "$CI_PROJECT_DIR/tools/ci/checkout_project_ref.py"
# Docker images
ESP_ENV_IMAGE: "${CI_DOCKER_REGISTRY}/esp-env-v6.0:1"
ESP_IDF_DOC_ENV_IMAGE: "${CI_DOCKER_REGISTRY}/esp-idf-doc-env-v6.0:1-1"
TARGET_TEST_ENV_IMAGE: "${CI_DOCKER_REGISTRY}/target-test-env-v6.0:1"
ESP_ENV_IMAGE: "${CI_DOCKER_REGISTRY}/esp-env-v5.4:2"
ESP_IDF_DOC_ENV_IMAGE: "${CI_DOCKER_REGISTRY}/esp-idf-doc-env-v5.4:2-1"
TARGET_TEST_ENV_IMAGE: "${CI_DOCKER_REGISTRY}/target-test-env-v5.4:2"
SONARQUBE_SCANNER_IMAGE: "${CI_DOCKER_REGISTRY}/sonarqube-scanner:5"
PRE_COMMIT_IMAGE: "${CI_DOCKER_REGISTRY}/esp-idf-pre-commit:1"
@@ -70,7 +70,7 @@ variables:
CI_PYTHON_CONSTRAINT_BRANCH: ""
# Update the filename for a specific ESP-IDF release. It is used only with CI_PYTHON_CONSTRAINT_BRANCH.
CI_PYTHON_CONSTRAINT_FILE: "espidf.constraints.v6.0.txt"
CI_PYTHON_CONSTRAINT_FILE: "espidf.constraints.v5.4.txt"
# Set this variable to repository name of a Python tool you wish to install and test in the context of ESP-IDF CI.
# Keep the variable empty when not used.
@@ -88,7 +88,7 @@ variables:
CI_CLANG_DISTRO_URL: ""
# Set this variable to specify the file name for the known failure cases.
KNOWN_FAILURE_CASES_FILE_NAME: "master.txt"
KNOWN_FAILURE_CASES_FILE_NAME: "5.4.txt"
IDF_CI_BUILD: 1
@@ -191,13 +191,21 @@ variables:
fi
# Custom OpenOCD
if [[ ! -z "$OOCD_DISTRO_URL" && "$CI_JOB_STAGE" == "target_test" ]]; then
echo "Using custom OpenOCD from ${OOCD_DISTRO_URL}"
wget $OOCD_DISTRO_URL
ARCH_NAME=$(basename $OOCD_DISTRO_URL)
tar -x -f $ARCH_NAME
export OPENOCD_SCRIPTS=$PWD/openocd-esp32/share/openocd/scripts
export PATH=$PWD/openocd-esp32/bin:$PATH
if [[ "$CI_JOB_STAGE" == "target_test" ]]; then
machine="$(uname -m)"
if [[ "$machine" == "armv7l" ]] ; then
OOCD_DISTRO_URL="$OOCD_DISTRO_URL_ARMHF"
elif [[ "$machine" == "aarch64" ]] ; then
OOCD_DISTRO_URL="$OOCD_DISTRO_URL_ARM64"
fi
if [[ ! -z "$OOCD_DISTRO_URL" ]]; then
echo "Using custom OpenOCD from ${OOCD_DISTRO_URL}"
wget $OOCD_DISTRO_URL
ARCH_NAME=$(basename $OOCD_DISTRO_URL)
tar -x -f $ARCH_NAME
export OPENOCD_SCRIPTS=$PWD/openocd-esp32/share/openocd/scripts
export PATH=$PWD/openocd-esp32/bin:$PATH
fi
fi
if [[ -n "$CI_PYTHON_TOOL_REPO" ]]; then
@@ -319,32 +327,26 @@ variables:
- *git_init
- *git_fetch_from_mirror_url_if_exists
- |
# Store the diff output in a temporary file
TEMP_FILE=$(mktemp)
# merged results pipelines, by default
if [[ -n $CI_MERGE_REQUEST_SOURCE_BRANCH_SHA ]]; then
git fetch origin $CI_MERGE_REQUEST_DIFF_BASE_SHA --depth=1 ${GIT_FETCH_EXTRA_FLAGS}
git fetch origin $CI_MERGE_REQUEST_SOURCE_BRANCH_SHA --depth=1 ${GIT_FETCH_EXTRA_FLAGS}
git diff --name-only $CI_MERGE_REQUEST_DIFF_BASE_SHA $CI_MERGE_REQUEST_SOURCE_BRANCH_SHA > "$TEMP_FILE"
GIT_DIFF_OUTPUT=$(cat "$TEMP_FILE")
export GIT_DIFF_OUTPUT=$(git diff --name-only $CI_MERGE_REQUEST_DIFF_BASE_SHA $CI_MERGE_REQUEST_SOURCE_BRANCH_SHA)
git fetch origin $CI_COMMIT_SHA --depth=1 ${GIT_FETCH_EXTRA_FLAGS}
# merge request pipelines, when the mr got conflicts
elif [[ -n $CI_MERGE_REQUEST_DIFF_BASE_SHA ]]; then
git fetch origin $CI_MERGE_REQUEST_DIFF_BASE_SHA --depth=1 ${GIT_FETCH_EXTRA_FLAGS}
git fetch origin $CI_COMMIT_SHA --depth=1 ${GIT_FETCH_EXTRA_FLAGS}
git diff --name-only $CI_MERGE_REQUEST_DIFF_BASE_SHA $CI_COMMIT_SHA > "$TEMP_FILE"
GIT_DIFF_OUTPUT=$(cat "$TEMP_FILE")
export GIT_DIFF_OUTPUT=$(git diff --name-only $CI_MERGE_REQUEST_DIFF_BASE_SHA $CI_COMMIT_SHA)
# other pipelines, like the protected branches pipelines
elif [[ "$CI_COMMIT_BEFORE_SHA" != "0000000000000000000000000000000000000000" ]]; then
git fetch origin $CI_COMMIT_BEFORE_SHA --depth=1 ${GIT_FETCH_EXTRA_FLAGS}
git fetch origin $CI_COMMIT_SHA --depth=1 ${GIT_FETCH_EXTRA_FLAGS}
git diff --name-only $CI_COMMIT_BEFORE_SHA $CI_COMMIT_SHA > "$TEMP_FILE"
GIT_DIFF_OUTPUT=$(cat "$TEMP_FILE")
export GIT_DIFF_OUTPUT=$(git diff --name-only $CI_COMMIT_BEFORE_SHA $CI_COMMIT_SHA)
else
# pipeline source could be web, scheduler, etc.
git fetch origin $CI_COMMIT_SHA --depth=2 ${GIT_FETCH_EXTRA_FLAGS}
git diff --name-only $CI_COMMIT_SHA~1 $CI_COMMIT_SHA > "$TEMP_FILE"
GIT_DIFF_OUTPUT=$(cat "$TEMP_FILE")
export GIT_DIFF_OUTPUT=$(git diff --name-only $CI_COMMIT_SHA~1 $CI_COMMIT_SHA)
fi
- *git_checkout_ci_commit_sha
- *common-before_scripts

View File

@@ -7,15 +7,11 @@
#
# This file should ONLY be used during bringup. Should be reset to empty after the bringup process
extra_default_build_targets:
- esp32c5
- esp32c61
- esp32h21
- esp32h4
bypass_check_test_targets:
- esp32h21
- esp32h4
- esp32c5
- esp32c61
#
# These lines would

View File

@@ -90,5 +90,3 @@
- windows
specific_rules:
- if-schedule-test-build-system-windows
patterns:
- build_system

View File

@@ -88,15 +88,13 @@ check_docs_lang_sync:
artifacts: false
optional: true
script:
- if [ -n "${BREATHE_ALT_INSTALL_URL_PY39}" ]; then
pip uninstall -y breathe && pip install -U ${BREATHE_ALT_INSTALL_URL_PY39};
fi
- if [ -n "${BREATHE_ALT_INSTALL_URL}" ]; then pip uninstall -y breathe && pip install -U ${BREATHE_ALT_INSTALL_URL}; fi
- cd docs
- build-docs -t $DOCTGT -bs $DOC_BUILDERS -l $DOCLANG build
parallel:
matrix:
- DOCLANG: ["en", "zh_CN"]
DOCTGT: ["esp32", "esp32s2", "esp32s3", "esp32c3", "esp32c2", "esp32c6", "esp32c61", "esp32c5","esp32h2", "esp32h21", "esp32p4"]
DOCTGT: ["esp32", "esp32s2", "esp32s3", "esp32c3", "esp32c2", "esp32c6", "esp32c61", "esp32c5","esp32h2", "esp32p4"]
check_docs_gh_links:
image: $ESP_IDF_DOC_ENV_IMAGE
@@ -146,16 +144,11 @@ build_docs_html_partial:
variables:
DOCS_BUILD_DIR: "${IDF_PATH}/docs/_build/"
PYTHONUNBUFFERED: 1
# ensure all tags are fetched, need to know the latest/stable tag for the docs
GIT_STRATEGY: clone
GIT_DEPTH: 0
stage: test_deploy
tags:
- deploy
- shiny
script:
# ensure all tags are fetched, need to know the latest/stable tag for the docs
- git fetch --tags --prune
- add_doc_server_ssh_keys $DOCS_DEPLOY_PRIVATEKEY $DOCS_DEPLOY_SERVER $DOCS_DEPLOY_SERVER_USER
- export GIT_VER=$(git describe --always ${PIPELINE_COMMIT_SHA} --)
- deploy-docs

View File

@@ -33,8 +33,6 @@ check_public_headers:
- IDF_TARGET=esp32h2 python tools/ci/check_public_headers.py --jobs 4 --prefix riscv32-esp-elf-
- IDF_TARGET=esp32p4 python tools/ci/check_public_headers.py --jobs 4 --prefix riscv32-esp-elf-
- IDF_TARGET=esp32c61 python tools/ci/check_public_headers.py --jobs 4 --prefix riscv32-esp-elf-
- IDF_TARGET=esp32h21 python tools/ci/check_public_headers.py --jobs 4 --prefix riscv32-esp-elf-
- IDF_TARGET=esp32h4 python tools/ci/check_public_headers.py --jobs 4 --prefix riscv32-esp-elf-
test_nvs_coverage:
extends:
@@ -206,14 +204,10 @@ test_tools:
- pytest --noconftest test_idf_py.py --junitxml=${IDF_PATH}/XUNIT_IDF_PY.xml || stat=1
- pytest --noconftest test_hints.py --junitxml=${IDF_PATH}/XUNIT_HINTS.xml || stat=1
- pytest --noconftest test_idf_qemu.py --junitxml=${IDF_PATH}/XUNIT_IDF_PY_QEMU.xml || stat=1
- cd ${IDF_PATH}/tools/test_bsasm
- pytest --noconftest test_bsasm.py --junitxml=${IDF_PATH}/XUNIT_BSASM.xml || stat=1
- cd ${IDF_PATH}/tools/test_mkdfu
- pytest --noconftest test_mkdfu.py --junitxml=${IDF_PATH}/XUNIT_MKDFU.xml || stat=1
- cd ${IDF_PATH}/tools/test_idf_size
- pytest --noconftest test_idf_size.py --junitxml=${IDF_PATH}/XUNIT_IDF_SIZE.xml || stat=1
- cd ${IDF_PATH}/tools/test_idf_diag
- pytest --noconftest test_idf_diag.py --junitxml=${IDF_PATH}/XUNIT_IDF_DIAG.xml || stat=1
- cd ${IDF_PATH}
- shellcheck -s sh tools/detect_python.sh || stat=1
- shellcheck -s bash tools/detect_python.sh || stat=1
@@ -291,11 +285,8 @@ test_pytest_qemu:
matrix:
- IDF_TARGET: "esp32"
INSTALL_EXTRA_TOOLS: "qemu-xtensa"
# Skip Clang + Xtensa tests due to bootloader size issue
IDF_TOOLCHAIN: [gcc]
- IDF_TARGET: "esp32c3"
INSTALL_EXTRA_TOOLS: "qemu-riscv32"
IDF_TOOLCHAIN: [gcc, clang]
script:
- run_cmd python tools/ci/ci_build_apps.py . -v
--target $IDF_TARGET
@@ -357,7 +348,6 @@ test_pytest_macos:
reports:
junit: XUNIT_RESULT.xml
variables:
PYENV_VERSION: "3.9"
PYTEST_IGNORE_COLLECT_IMPORT_ERROR: "1"
script:
- run_cmd python tools/ci/ci_build_apps.py components examples tools/test_apps -v

View File

@@ -11,14 +11,3 @@ generate_failed_jobs_report:
- job_report.html
script:
- python tools/ci/dynamic_pipelines/scripts/generate_report.py --report-type job
sync_support_status:
stage: post_deploy
extends:
- .rules:sync_support_status
needs:
- push_to_github
image: $ESP_ENV_IMAGE
tags: [ brew, github_sync ]
script:
- curl --fail --request POST --form token="$IDF_STATUS_TRIG_TOKEN" --form ref="$IDF_STATUS_BRANCH" --form "variables[UPLOAD_TO_S3]=true" "$IDF_STATUS_TRIG_URL"

View File

@@ -72,7 +72,7 @@ check_chip_support_components:
expire_in: 1 week
script:
- python tools/ci/check_soc_headers_leak.py
- find ${IDF_PATH}/components/soc/**/include/soc/ ${IDF_PATH}/components/soc/**/register/soc/ -name "*_struct.h" -print0 | xargs -0 -n1 ./tools/ci/check_soc_struct_headers.py
- find ${IDF_PATH}/components/soc/**/include/soc/ -name "*_struct.h" -print0 | xargs -0 -n1 ./tools/ci/check_soc_struct_headers.py
- tools/ci/check_esp_memory_utils_headers.sh
check_esp_err_to_name:
@@ -165,6 +165,8 @@ pipeline_variables:
if [ -n "$CI_PYTHON_CONSTRAINT_BRANCH" ]; then
echo "BUILD_AND_TEST_ALL_APPS=1" >> pipeline.env
fi
- echo "OOCD_DISTRO_URL_ARMHF=$OOCD_DISTRO_URL_ARMHF" >> pipeline.env
- echo "OOCD_DISTRO_URL_ARM64=$OOCD_DISTRO_URL_ARM64" >> pipeline.env
- python tools/ci/ci_process_description.py
- cat pipeline.env
- python tools/ci/artifacts_handler.py upload --type modified_files_and_components_report

View File

@@ -35,7 +35,6 @@
# Add folders excluded by "???[!t]" and "??[!s]?"
# pre-commit: tools/ci/check_rules_components_patterns.py
- "components/bt/host/**/*"
- "components/esp_psram/system_layer/*"
.patterns-downloadable-tools: &patterns-downloadable-tools
- "tools/idf_tools.py"
@@ -69,7 +68,6 @@
- "tools/ci/check_public_headers.py"
- "tools/ci/check_register_rw_half_word.cmake"
- "tools/ci/check_register_rw_half_word.py"
- "examples/build_system/**/*"
.patterns-host_test: &patterns-host_test
- ".gitlab/ci/host-test.yml"
@@ -94,8 +92,6 @@
- "tools/idf_size.py"
- "tools/test_idf_size/**/*"
- "tools/test_idf_diag/**/*"
- "tools/tools.json"
- "tools/tools_schema.json"
- "tools/idf_tools.py"
@@ -128,9 +124,6 @@
- "tools/check_python_dependencies.py"
- "tools/bsasm.py"
- "tools/test_bsasm/**/*"
.patterns-docker: &patterns-docker
- "tools/docker/**/*"
@@ -170,9 +163,6 @@
.if-ref-master: &if-ref-master
if: '$CI_COMMIT_REF_NAME == "master"'
.if-ref-master-no_label: &if-ref-master-no_label
if: '$CI_COMMIT_REF_NAME == "master" && $BOT_TRIGGER_WITH_LABEL == null'
.if-tag-release: &if-tag-release
if: '$CI_COMMIT_TAG =~ /^v\d+\.\d+(\.\d+)?($|-)/'
@@ -224,11 +214,6 @@
when: never
- <<: *if-protected-no_label
# Not uploading on release branches
.rules:sync_support_status:
rules:
- <<: *if-ref-master-no_label
.rules:protected-no_label-always:
rules:
- <<: *if-qa-test-tag
@@ -270,6 +255,11 @@
- <<: *if-dev-push
changes: *patterns-c-files
.rules:patterns:python-files:
rules:
- <<: *if-protected
- <<: *if-dev-push
changes: *patterns-python-files
#.rules:patterns:static-code-analysis-preview:
# rules:
@@ -408,8 +398,6 @@
when: never
- <<: *if-schedule-test-build-system-windows
- <<: *if-label-windows
- <<: *if-dev-push
changes: *patterns-build_system
.rules:test:host_test:
rules:

View File

@@ -16,6 +16,28 @@ clang_tidy_check:
--limit-file tools/ci/static-analysis-rules.yml
--xtensa-include-dir
check_pylint:
extends:
- .pre_check_template
- .rules:patterns:python-files
needs:
- pipeline_variables
artifacts:
reports:
codequality: pylint.json
paths:
- pylint.json
expire_in: 1 week
when: always
script:
- |
if [ -n "$CI_MERGE_REQUEST_IID" ]; then
export files=$(echo "$GIT_DIFF_OUTPUT" | grep ".py$" | xargs);
else
export files=$(git ls-files "*.py" | xargs);
fi
- if [ -z "$files" ]; then echo "No python files found"; exit 0; fi
- run_cmd pylint --exit-zero --load-plugins=pylint_gitlab --output-format=gitlab-codeclimate:pylint.json $files
#
## build stage
## Sonarqube related jobs put here for this reason:

View File

@@ -29,7 +29,6 @@ test_cli_installer_win:
expire_in: 1 week
variables:
IDF_PATH: "$CI_PROJECT_DIR"
timeout: 3h
script:
# Tools must be downloaded for testing
- python ${IDF_PATH}\tools\idf_tools.py download required qemu-riscv32 qemu-xtensa cmake

View File

@@ -27,6 +27,3 @@ Test Case Filters:
# This example will include all tests containing 'test_hello_world' in the name,
# and include all tests containing 'test_sdm' but not 'sdmmc' in the name.
``` --><!-- Optional -->
<!-- Don't remove the next line - assigns the MR author as the assignee -->
/assign me

View File

@@ -60,6 +60,3 @@ _If there are any breaking changes, please mention it here. Talking about (1) wh
_Please strictly follow the breaking change restriction, which means, if there is a breaking change but you are merging to non-major versions, you have to separate the breaking part out to another MR for a major version. The breaking change subsection is only accepted in MRs merging to major versions._
* [VFS/UART] Now vfs_uart_set_rts_cts accept one more instance argument, to support configuration to different ports.
<!-- Don't remove the next line - assigns the MR author as the assignee -->
/assign me

4
.gitmodules vendored
View File

@@ -54,8 +54,10 @@
sbom-supplier = Person: Dave Gamble
sbom-url = https://github.com/DaveGamble/cJSON
sbom-description = Ultralightweight JSON parser in ANSI C
sbom-hash = acc76239bee01d8e9c858ae2cab296704e52d916
sbom-hash = 8f2beb57ddad1f94bed899790b00f46df893ccac
sbom-cve-exclude-list = CVE-2024-31755 Resolved in v1.7.18
sbom-cve-exclude-list = CVE-2023-26819 Resolved in commit a328d65ad490b64da8c87523cbbfe16050ba5bf6
sbom-cve-exclude-list = CVE-2023-53154 Resolved in v1.7.18
[submodule "components/mbedtls/mbedtls"]
path = components/mbedtls/mbedtls

View File

@@ -1,35 +1,9 @@
# See https://pre-commit.com for more information
# See https://pre-commit.com/hooks.html for more hooks
default_stages: [pre-commit]
default_stages: [commit]
repos:
- repo: https://github.com/astral-sh/ruff-pre-commit
rev: "v0.9.7"
hooks:
- id: ruff-format
- id: ruff
args: [ "--fix" ]
- repo: local
hooks:
- id: pytest-linter
name: Pytest Linter Check
entry: tools/ci/check_test_files.py
language: python
files: 'pytest_.*\.py$'
require_serial: true
additional_dependencies:
- pytest-embedded-idf[serial]~=1.16
- pytest-embedded-jtag~=1.16
- pytest-embedded-qemu~=1.16
- pytest-ignore-test-results~=0.3
- pytest-rerunfailures
- pytest-timeout
- idf-build-apps~=2.8
- python-gitlab
- minio
- click
- esp-idf-monitor
- repo: https://github.com/pre-commit/pre-commit-hooks
rev: v4.5.0
hooks:
@@ -40,7 +14,6 @@ repos:
# 2 - any file matching *test*/*expected* (for host tests, if possible use this naming pattern always)
# 3 - any directory named 'testdata'
# 4 - protobuf auto-generated files
# 5 - COPYING files
exclude: &whitespace_excludes |
(?x)^(
.+\.(md|rst|map|bin)|
@@ -51,7 +24,6 @@ repos:
.*.pb-c.c|
.*.yuv|
.*.rgb|
.*COPYING.*|
docs/sphinx-known-warnings\.txt
)$
- id: end-of-file-fixer
@@ -66,10 +38,26 @@ repos:
- id: no-commit-to-branch
name: Do not use uppercase letters in the branch name
args: ['--pattern', '^[^A-Z]*[A-Z]']
- repo: https://github.com/PyCQA/flake8
rev: 5.0.4
hooks:
- id: flake8
args: ['--config=.flake8', '--tee', '--benchmark']
- repo: https://github.com/asottile/reorder-python-imports
rev: v3.12.0
hooks:
- id: reorder-python-imports
name: Reorder Python imports
args: [--py38-plus]
exclude: >
(?x)^(
.*_pb2.py
)$
- repo: https://github.com/codespell-project/codespell
rev: v2.3.0
hooks:
- id: codespell
exclude: ^docs/sphinx-known-warnings\.txt$
- repo: local
hooks:
- id: check-executables
@@ -163,7 +151,7 @@ repos:
require_serial: true
additional_dependencies:
- PyYAML == 5.3.1
- idf-build-apps>=2.8,<3
- idf-build-apps~=2.5
- id: sort-yaml-files
name: sort yaml files
entry: tools/ci/sort_yaml.py
@@ -207,7 +195,7 @@ repos:
- id: file-contents-sorter
files: 'tools\/ci\/(executable-list\.txt|mypy_ignore_list\.txt|check_copyright_ignore\.txt)'
- repo: https://github.com/espressif/check-copyright/
rev: v1.1.1
rev: v1.0.3
hooks:
- id: check-copyright
args: ['--ignore', 'tools/ci/check_copyright_ignore.txt', '--config', 'tools/ci/check_copyright_config.yaml']

641
.pylintrc Normal file
View File

@@ -0,0 +1,641 @@
[MAIN]
# Analyse import fallback blocks. This can be used to support both Python 2 and
# 3 compatible code, which means that the block might have code that exists
# only in one or another interpreter, leading to false positives when analysed.
analyse-fallback-blocks=no
# Clear in-memory caches upon conclusion of linting. Useful if running pylint
# in a server-like mode.
clear-cache-post-run=no
# Load and enable all available extensions. Use --list-extensions to see a list
# all available extensions.
#enable-all-extensions=
# In error mode, messages with a category besides ERROR or FATAL are
# suppressed, and no reports are done by default. Error mode is compatible with
# disabling specific errors.
#errors-only=
# Always return a 0 (non-error) status code, even if lint errors are found.
# This is primarily useful in continuous integration scripts.
#exit-zero=
# A comma-separated list of package or module names from where C extensions may
# be loaded. Extensions are loading into the active Python interpreter and may
# run arbitrary code.
extension-pkg-allow-list=
# A comma-separated list of package or module names from where C extensions may
# be loaded. Extensions are loading into the active Python interpreter and may
# run arbitrary code. (This is an alternative name to extension-pkg-allow-list
# for backward compatibility.)
extension-pkg-whitelist=
# Return non-zero exit code if any of these messages/categories are detected,
# even if score is above --fail-under value. Syntax same as enable. Messages
# specified are enabled, while categories only check already-enabled messages.
fail-on=
# Specify a score threshold under which the program will exit with error.
fail-under=10
# Interpret the stdin as a python script, whose filename needs to be passed as
# the module_or_package argument.
#from-stdin=
# Files or directories to be skipped. They should be base names, not paths.
ignore=CVS
# Add files or directories matching the regular expressions patterns to the
# ignore-list. The regex matches against paths and can be in Posix or Windows
# format. Because '\\' represents the directory delimiter on Windows systems,
# it can't be used as an escape character.
ignore-paths=
# Files or directories matching the regular expression patterns are skipped.
# The regex matches against base names, not paths. The default value ignores
# Emacs file locks
ignore-patterns=^\.#
# List of module names for which member attributes should not be checked
# (useful for modules/projects where namespaces are manipulated during runtime
# and thus existing member attributes cannot be deduced by static analysis). It
# supports qualified module names, as well as Unix pattern matching.
ignored-modules=
# Python code to execute, usually for sys.path manipulation such as
# pygtk.require().
#init-hook=
# Use multiple processes to speed up Pylint. Specifying 0 will auto-detect the
# number of processors available to use, and will cap the count on Windows to
# avoid hangs.
jobs=1
# Control the amount of potential inferred values when inferring a single
# object. This can help the performance when dealing with large functions or
# complex, nested conditions.
limit-inference-results=100
# List of plugins (as comma separated values of python module names) to load,
# usually to register additional checkers.
load-plugins=
# Pickle collected data for later comparisons.
persistent=yes
# Minimum Python version to use for version dependent checks. Will default to
# the version used to run pylint.
py-version=3.8
# Discover python modules and packages in the file system subtree.
recursive=no
# Add paths to the list of the source roots. Supports globbing patterns. The
# source root is an absolute path or a path relative to the current working
# directory used to determine a package namespace for modules located under the
# source root.
source-roots=
# When enabled, pylint would attempt to guess common misconfiguration and emit
# user-friendly hints instead of false-positive error messages.
suggestion-mode=yes
# Allow loading of arbitrary C extensions. Extensions are imported into the
# active Python interpreter and may run arbitrary code.
unsafe-load-any-extension=no
# In verbose mode, extra non-checker-related info will be displayed.
#verbose=
[BASIC]
# Naming style matching correct argument names.
argument-naming-style=snake_case
# Regular expression matching correct argument names. Overrides argument-
# naming-style. If left empty, argument names will be checked with the set
# naming style.
#argument-rgx=
# Naming style matching correct attribute names.
attr-naming-style=snake_case
# Regular expression matching correct attribute names. Overrides attr-naming-
# style. If left empty, attribute names will be checked with the set naming
# style.
#attr-rgx=
# Bad variable names which should always be refused, separated by a comma.
bad-names=foo,
bar,
baz,
toto,
tutu,
tata
# Bad variable names regexes, separated by a comma. If names match any regex,
# they will always be refused
bad-names-rgxs=
# Naming style matching correct class attribute names.
class-attribute-naming-style=any
# Regular expression matching correct class attribute names. Overrides class-
# attribute-naming-style. If left empty, class attribute names will be checked
# with the set naming style.
#class-attribute-rgx=
# Naming style matching correct class constant names.
class-const-naming-style=UPPER_CASE
# Regular expression matching correct class constant names. Overrides class-
# const-naming-style. If left empty, class constant names will be checked with
# the set naming style.
#class-const-rgx=
# Naming style matching correct class names.
class-naming-style=PascalCase
# Regular expression matching correct class names. Overrides class-naming-
# style. If left empty, class names will be checked with the set naming style.
#class-rgx=
# Naming style matching correct constant names.
const-naming-style=UPPER_CASE
# Regular expression matching correct constant names. Overrides const-naming-
# style. If left empty, constant names will be checked with the set naming
# style.
#const-rgx=
# Minimum line length for functions/classes that require docstrings, shorter
# ones are exempt.
docstring-min-length=-1
# Naming style matching correct function names.
function-naming-style=snake_case
# Regular expression matching correct function names. Overrides function-
# naming-style. If left empty, function names will be checked with the set
# naming style.
#function-rgx=
# Good variable names which should always be accepted, separated by a comma.
good-names=i,
j,
k,
ex,
Run,
_
# Good variable names regexes, separated by a comma. If names match any regex,
# they will always be accepted
good-names-rgxs=
# Include a hint for the correct naming format with invalid-name.
include-naming-hint=no
# Naming style matching correct inline iteration names.
inlinevar-naming-style=any
# Regular expression matching correct inline iteration names. Overrides
# inlinevar-naming-style. If left empty, inline iteration names will be checked
# with the set naming style.
#inlinevar-rgx=
# Naming style matching correct method names.
method-naming-style=snake_case
# Regular expression matching correct method names. Overrides method-naming-
# style. If left empty, method names will be checked with the set naming style.
#method-rgx=
# Naming style matching correct module names.
module-naming-style=snake_case
# Regular expression matching correct module names. Overrides module-naming-
# style. If left empty, module names will be checked with the set naming style.
#module-rgx=
# Colon-delimited sets of names that determine each other's naming style when
# the name regexes allow several styles.
name-group=
# Regular expression which should only match function or class names that do
# not require a docstring.
no-docstring-rgx=^_
# List of decorators that produce properties, such as abc.abstractproperty. Add
# to this list to register other decorators that produce valid properties.
# These decorators are taken in consideration only for invalid-name.
property-classes=abc.abstractproperty
# Regular expression matching correct type alias names. If left empty, type
# alias names will be checked with the set naming style.
#typealias-rgx=
# Regular expression matching correct type variable names. If left empty, type
# variable names will be checked with the set naming style.
#typevar-rgx=
# Naming style matching correct variable names.
variable-naming-style=snake_case
# Regular expression matching correct variable names. Overrides variable-
# naming-style. If left empty, variable names will be checked with the set
# naming style.
#variable-rgx=
[CLASSES]
# Warn about protected attribute access inside special methods
check-protected-access-in-special-methods=no
# List of method names used to declare (i.e. assign) instance attributes.
defining-attr-methods=__init__,
__new__,
setUp,
asyncSetUp,
__post_init__
# List of member names, which should be excluded from the protected access
# warning.
exclude-protected=_asdict,_fields,_replace,_source,_make,os._exit
# List of valid names for the first argument in a class method.
valid-classmethod-first-arg=cls
# List of valid names for the first argument in a metaclass class method.
valid-metaclass-classmethod-first-arg=mcs
[DESIGN]
# List of regular expressions of class ancestor names to ignore when counting
# public methods (see R0903)
exclude-too-few-public-methods=
# List of qualified class names to ignore when counting class parents (see
# R0901)
ignored-parents=
# Maximum number of arguments for function / method.
max-args=5
# Maximum number of attributes for a class (see R0902).
max-attributes=7
# Maximum number of boolean expressions in an if statement (see R0916).
max-bool-expr=5
# Maximum number of branch for function / method body.
max-branches=12
# Maximum number of locals for function / method body.
max-locals=15
# Maximum number of parents for a class (see R0901).
max-parents=7
# Maximum number of public methods for a class (see R0904).
max-public-methods=20
# Maximum number of return / yield for function / method body.
max-returns=6
# Maximum number of statements in function / method body.
max-statements=50
# Minimum number of public methods for a class (see R0903).
min-public-methods=2
[EXCEPTIONS]
# Exceptions that will emit a warning when caught.
overgeneral-exceptions=builtins.BaseException,builtins.Exception
[FORMAT]
# Expected format of line ending, e.g. empty (any line ending), LF or CRLF.
expected-line-ending-format=
# Regexp for a line that is allowed to be longer than the limit.
ignore-long-lines=^\s*(# )?<?https?://\S+>?$
# Number of spaces of indent required inside a hanging or continued line.
indent-after-paren=4
# String used as indentation unit. This is usually " " (4 spaces) or "\t" (1
# tab).
indent-string=' '
# Maximum number of characters on a single line.
max-line-length=160
# Maximum number of lines in a module.
max-module-lines=1000
# Allow the body of a class to be on the same line as the declaration if body
# contains single statement.
single-line-class-stmt=no
# Allow the body of an if to be on the same line as the test if there is no
# else.
single-line-if-stmt=no
[IMPORTS]
# List of modules that can be imported at any level, not just the top level
# one.
allow-any-import-level=
# Allow explicit reexports by alias from a package __init__.
allow-reexport-from-package=no
# Allow wildcard imports from modules that define __all__.
allow-wildcard-with-all=no
# Deprecated modules which should not be used, separated by a comma.
deprecated-modules=
# Output a graph (.gv or any supported image format) of external dependencies
# to the given file (report RP0402 must not be disabled).
ext-import-graph=
# Output a graph (.gv or any supported image format) of all (i.e. internal and
# external) dependencies to the given file (report RP0402 must not be
# disabled).
import-graph=
# Output a graph (.gv or any supported image format) of internal dependencies
# to the given file (report RP0402 must not be disabled).
int-import-graph=
# Force import order to recognize a module as part of the standard
# compatibility libraries.
known-standard-library=
# Force import order to recognize a module as part of a third party library.
known-third-party=enchant
# Couples of modules and preferred modules, separated by a comma.
preferred-modules=
[LOGGING]
# The type of string formatting that logging methods do. `old` means using %
# formatting, `new` is for `{}` formatting.
logging-format-style=old
# Logging modules to check that the string format arguments are in logging
# function parameter format.
logging-modules=logging
[MESSAGES CONTROL]
# Only show warnings with the listed confidence levels. Leave empty to show
# all. Valid levels: HIGH, CONTROL_FLOW, INFERENCE, INFERENCE_FAILURE,
# UNDEFINED.
confidence=HIGH,
CONTROL_FLOW,
INFERENCE,
INFERENCE_FAILURE,
UNDEFINED
# Disable the message, report, category or checker with the given id(s). You
# can either give multiple identifiers separated by comma (,) or put this
# option multiple times (only on the command line, not in the configuration
# file where it should appear only once). You can also use "--disable=all" to
# disable everything first and then re-enable specific checks. For example, if
# you want to run only the similarities checker, you can use "--disable=all
# --enable=similarities". If you want to run only the classes checker, but have
# no Warning level messages displayed, use "--disable=all --enable=classes
# --disable=W".
disable=raw-checker-failed,
bad-inline-option,
locally-disabled,
file-ignored,
suppressed-message,
useless-suppression,
deprecated-pragma,
use-symbolic-message-instead,
missing-function-docstring, # Modified since here, include this line
missing-class-docstring,
missing-module-docstring,
wrong-import-order,
invalid-name,
too-few-public-methods,
too-many-locals,
ungrouped-imports, # since we have isort in pre-commit
no-name-in-module, # since we have flake8 to check this
too-many-instance-attributes,
# Enable the message, report, category or checker with the given id(s). You can
# either give multiple identifier separated by comma (,) or put this option
# multiple time (only on the command line, not in the configuration file where
# it should appear only once). See also the "--disable" option for examples.
enable=c-extension-no-member
[METHOD_ARGS]
# List of qualified names (i.e., library.method) which require a timeout
# parameter e.g. 'requests.api.get,requests.api.post'
timeout-methods=requests.api.delete,requests.api.get,requests.api.head,requests.api.options,requests.api.patch,requests.api.post,requests.api.put,requests.api.request
[MISCELLANEOUS]
# List of note tags to take in consideration, separated by a comma.
notes=FIXME,
XXX,
TODO
# Regular expression of note tags to take in consideration.
notes-rgx=
[REFACTORING]
# Maximum number of nested blocks for function / method body
max-nested-blocks=5
# Complete name of functions that never returns. When checking for
# inconsistent-return-statements if a never returning function is called then
# it will be considered as an explicit return statement and no message will be
# printed.
never-returning-functions=sys.exit,argparse.parse_error
[REPORTS]
# Python expression which should return a score less than or equal to 10. You
# have access to the variables 'fatal', 'error', 'warning', 'refactor',
# 'convention', and 'info' which contain the number of messages in each
# category, as well as 'statement' which is the total number of statements
# analyzed. This score is used by the global evaluation report (RP0004).
evaluation=max(0, 0 if fatal else 10.0 - ((float(5 * error + warning + refactor + convention) / statement) * 10))
# Template used to display messages. This is a python new-style format string
# used to format the message information. See doc for all details.
msg-template=
# Set the output format. Available formats are text, parseable, colorized, json
# and msvs (visual studio). You can also give a reporter class, e.g.
# mypackage.mymodule.MyReporterClass.
#output-format=
# Tells whether to display a full report or only the messages.
reports=no
# Activate the evaluation score.
score=yes
[SIMILARITIES]
# Comments are removed from the similarity computation
ignore-comments=yes
# Docstrings are removed from the similarity computation
ignore-docstrings=yes
# Imports are removed from the similarity computation
ignore-imports=yes
# Signatures are removed from the similarity computation
ignore-signatures=yes
# Minimum lines number of a similarity.
min-similarity-lines=4
[SPELLING]
# Limits count of emitted suggestions for spelling mistakes.
max-spelling-suggestions=4
# Spelling dictionary name. No available dictionaries : You need to install
# both the python package and the system dependency for enchant to work..
spelling-dict=
# List of comma separated words that should be considered directives if they
# appear at the beginning of a comment and should not be checked.
spelling-ignore-comment-directives=fmt: on,fmt: off,noqa:,noqa,nosec,isort:skip,mypy:
# List of comma separated words that should not be checked.
spelling-ignore-words=
# A path to a file that contains the private dictionary; one word per line.
spelling-private-dict-file=
# Tells whether to store unknown words to the private dictionary (see the
# --spelling-private-dict-file option) instead of raising a message.
spelling-store-unknown-words=no
[STRING]
# This flag controls whether inconsistent-quotes generates a warning when the
# character used as a quote delimiter is used inconsistently within a module.
check-quote-consistency=no
# This flag controls whether the implicit-str-concat should generate a warning
# on implicit string concatenation in sequences defined over several lines.
check-str-concat-over-line-jumps=no
[TYPECHECK]
# List of decorators that produce context managers, such as
# contextlib.contextmanager. Add to this list to register other decorators that
# produce valid context managers.
contextmanager-decorators=contextlib.contextmanager
# List of members which are set dynamically and missed by pylint inference
# system, and so shouldn't trigger E1101 when accessed. Python regular
# expressions are accepted.
generated-members=
# Tells whether to warn about missing members when the owner of the attribute
# is inferred to be None.
ignore-none=yes
# This flag controls whether pylint should warn about no-member and similar
# checks whenever an opaque object is returned when inferring. The inference
# can return multiple potential results while evaluating a Python object, but
# some branches might not be evaluated, which results in partial inference. In
# that case, it might be useful to still emit no-member and other checks for
# the rest of the inferred objects.
ignore-on-opaque-inference=yes
# List of symbolic message names to ignore for Mixin members.
ignored-checks-for-mixins=no-member,
not-async-context-manager,
not-context-manager,
attribute-defined-outside-init
# List of class names for which member attributes should not be checked (useful
# for classes with dynamically set attributes). This supports the use of
# qualified names.
ignored-classes=optparse.Values,thread._local,_thread._local,argparse.Namespace
# Show a hint with possible names when a member name was not found. The aspect
# of finding the hint is based on edit distance.
missing-member-hint=yes
# The minimum edit distance a name should have in order to be considered a
# similar match for a missing member name.
missing-member-hint-distance=1
# The total number of similar names that should be taken in consideration when
# showing a hint for a missing member.
missing-member-max-choices=1
# Regex pattern to define which classes are considered mixins.
mixin-class-rgx=.*[Mm]ixin
# List of decorators that change the signature of a decorated function.
signature-mutators=
[VARIABLES]
# List of additional names supposed to be defined in builtins. Remember that
# you should avoid defining new builtins when possible.
additional-builtins=
# Tells whether unused global variables should be treated as a violation.
allow-global-unused-variables=yes
# List of names allowed to shadow builtins
allowed-redefined-builtins=
# List of strings which can identify a callback function by name. A callback
# name must start or end with one of those strings.
callbacks=cb_,
_cb
# A regular expression matching the name of dummy variables (i.e. expected to
# not be used).
dummy-variables-rgx=_+$|(_[a-zA-Z0-9_]*[a-zA-Z0-9]+?$)|dummy|^ignored_|^unused_
# Argument names that match this expression will be ignored.
ignored-argument-names=_.*|^ignored_|^unused_
# Tells whether we should check for unused import in __init__ files.
init-import=no
# List of qualified module names which can have objects that can redefine
# builtins.
redefining-builtins-modules=six.moves,past.builtins,future.builtins,builtins,io

View File

@@ -15,7 +15,7 @@ python:
install:
- requirements: docs/requirements.txt
# We need to list all the submodules included in documentation build by Doxygen
# We need to list all the submodules included in documenation build by Doxygen
submodules:
include:
- components/mqtt/esp-mqtt

View File

@@ -13,38 +13,7 @@ endif()
# Add the following build specifications here, since these seem to be dependent
# on config values on the root Kconfig.
if(BOOTLOADER_BUILD)
if(CONFIG_BOOTLOADER_COMPILER_OPTIMIZATION_SIZE)
if(CMAKE_C_COMPILER_ID MATCHES "Clang")
list(APPEND compile_options "-Oz")
else()
list(APPEND compile_options "-Os")
endif()
if(CMAKE_C_COMPILER_ID MATCHES "GNU")
list(APPEND compile_options "-freorder-blocks")
endif()
elseif(CONFIG_BOOTLOADER_COMPILER_OPTIMIZATION_DEBUG)
list(APPEND compile_options "-Og")
if(CMAKE_C_COMPILER_ID MATCHES "GNU" AND NOT CONFIG_IDF_TARGET_LINUX)
list(APPEND compile_options "-fno-shrink-wrap") # Disable shrink-wrapping to reduce binary size
endif()
elseif(CONFIG_BOOTLOADER_COMPILER_OPTIMIZATION_NONE)
list(APPEND compile_options "-O0")
elseif(CONFIG_BOOTLOADER_COMPILER_OPTIMIZATION_PERF)
list(APPEND compile_options "-O2")
endif()
elseif(ESP_TEE_BUILD)
if(CMAKE_C_COMPILER_ID MATCHES "Clang")
list(APPEND compile_options "-Oz")
else()
list(APPEND compile_options "-Os")
list(APPEND compile_options "-freorder-blocks")
endif()
else()
if(NOT BOOTLOADER_BUILD)
if(CONFIG_COMPILER_OPTIMIZATION_SIZE)
if(CMAKE_C_COMPILER_ID MATCHES "Clang")
@@ -66,6 +35,28 @@ else()
list(APPEND compile_options "-O2")
endif()
else() # BOOTLOADER_BUILD
if(CONFIG_BOOTLOADER_COMPILER_OPTIMIZATION_SIZE)
if(CMAKE_C_COMPILER_ID MATCHES "Clang")
list(APPEND compile_options "-Oz")
else()
list(APPEND compile_options "-Os")
endif()
if(CMAKE_C_COMPILER_ID MATCHES "GNU")
list(APPEND compile_options "-freorder-blocks")
endif()
elseif(CONFIG_BOOTLOADER_COMPILER_OPTIMIZATION_DEBUG)
list(APPEND compile_options "-Og")
if(CMAKE_C_COMPILER_ID MATCHES "GNU" AND NOT CONFIG_IDF_TARGET_LINUX)
list(APPEND compile_options "-fno-shrink-wrap") # Disable shrink-wrapping to reduce binary size
endif()
elseif(CONFIG_BOOTLOADER_COMPILER_OPTIMIZATION_NONE)
list(APPEND compile_options "-O0")
elseif(CONFIG_BOOTLOADER_COMPILER_OPTIMIZATION_PERF)
list(APPEND compile_options "-O2")
endif()
endif()
if(CONFIG_COMPILER_CXX_EXCEPTIONS)
@@ -207,13 +198,6 @@ if(CONFIG_ESP_SYSTEM_USE_EH_FRAME)
list(APPEND link_options "-Wl,--eh-frame-hdr")
endif()
if(CONFIG_ESP_SYSTEM_USE_FRAME_POINTER)
list(APPEND compile_options "-fno-omit-frame-pointer")
if(CMAKE_C_COMPILER_ID MATCHES "GNU")
list(APPEND compile_options "-mno-omit-leaf-frame-pointer")
endif()
endif()
list(APPEND link_options "-fno-lto")
if(CONFIG_IDF_TARGET_LINUX AND CMAKE_HOST_SYSTEM_NAME STREQUAL "Darwin")

View File

@@ -97,49 +97,18 @@ Supported since ESP-IDF v5.0.
| release/v5.2 | v5.2.2+ | v5.2 |
| release/v5.3 and above | v5.3+ | v5.3 |
#### v2.0
| Release branch | Recommended | Required |
|------------------------|-------------|----------|
| release/v5.0 | v5.0.8+ | v5.0.8 |
| release/v5.1 | v5.1.5+ | v5.1.5* |
| release/v5.2 | v5.2.4+ | v5.2.4 |
| release/v5.3 | v5.3.2+ | v5.3.2* |
| release/v5.4 and above | v5.4+ | v5.4 |
Note: IDF v5.1.5 and v5.3.2 are compatible with C2 v2.0. However the chip revision check hasn't been updated on these releases. Enable `ESP32C2_REV2_DEVELOPMENT` config to bypass the outdated check.
### ESP32-C6
#### v0.0, v0.1
Supported since ESP-IDF v5.1.
#### v0.2
| Release branch | Recommended | Required |
|------------------------|-------------|----------|
| release/v5.1 | v5.1.5+ | v5.1 |
| release/v5.2 | v5.2.4+ | v5.2 |
| release/v5.3 | v5.3.2+ | v5.3 |
| release/v5.4 and above | v5.4+ | v5.4 |
### ESP32-H2
#### v0.1, v0.2
Supported since ESP-IDF v5.1.
#### v1.2
| Release branch | Recommended | Required |
|------------------------|-------------|----------|
| release/v5.1 | v5.1.6+ | v5.1.6 |
| release/v5.2 | v5.2.5+ | v5.2.5 |
| release/v5.3 | v5.3.3+ | v5.3.3 |
| release/v5.4 | v5.4.1+ | v5.4.1 |
| release/v5.5 and above | v5.5+ | v5.5 |
## What If the ESP-IDF Version Is Lower than the `Required` Version?
Latest ESP-IDF versions can prevent from downloading to, or even execute binaries on unsupported chips. ESP-IDF of versions v4.4.5+, v5.0.1+, v5.1 and above have both esptool download check and bootloader loading check against the chip revision. While ESP-IDF v4.3.5 has only esptool downloading check.

View File

@@ -97,49 +97,18 @@
| release/v5.2 | v5.2.2+ | v5.1 |
| release/v5.3 及以上 | v5.3+ | v5.3 |
#### v2.0
| 发布分支 | 推荐版本 | 需求版本 |
|------------------------|-------------|----------|
| release/v5.0 | v5.0.8+ | v5.0.8 |
| release/v5.1 | v5.1.5+ | v5.1.5* |
| release/v5.2 | v5.2.4+ | v5.2.4 |
| release/v5.3 | v5.3.2+ | v5.3.2* |
| release/v5.4 及以上 | v5.4+ | v5.4 |
提示: IDF v5.1.5 及 v5.3.2 与 C2 v2.0 兼容,但芯片版本检查尚未在这些发布版本更新。使能 `ESP32C2_REV2_DEVELOPMENT` 选项来跳过这些过时的检查。
### ESP32-C6
#### v0.0, v0.1
从 ESP-IDF v5.1 开始支持。
#### v0.2
| 发布分支 | 推荐版本 | 需求版本 |
|------------------------|-------------|----------|
| release/v5.1 | v5.1.5+ | v5.1 |
| release/v5.2 | v5.2.4+ | v5.2 |
| release/v5.3 | v5.3.2+ | v5.3 |
| release/v5.4 及以上 | v5.4+ | v5.4 |
### ESP32-H2
#### v0.1, v0.2
从 ESP-IDF v5.1 开始支持。
#### v1.2
| 发布分支 | 推荐版本 | 需求版本 |
|------------------------|-------------|----------|
| release/v5.1 | v5.1.6+ | v5.1.6 |
| release/v5.2 | v5.2.5+ | v5.2.5 |
| release/v5.3 | v5.3.3+ | v5.3.3 |
| release/v5.4 | v5.4.1+ | v5.4.1 |
| release/v5.5 及以上 | v5.5+ | v5.5 |
## 如果 ESP-IDF 版本低于 `需求版本` 会出现什么情况?

28
Kconfig
View File

@@ -118,8 +118,6 @@ mainmenu "Espressif IoT Development Framework Configuration"
default "y" if IDF_TARGET="esp32c5"
select FREERTOS_UNICORE
select IDF_TARGET_ARCH_RISCV
# TODO: [ESPTOOL-1044] remove when stub supported
select IDF_ENV_BRINGUP
config IDF_TARGET_ESP32P4
bool
@@ -138,22 +136,6 @@ mainmenu "Espressif IoT Development Framework Configuration"
select FREERTOS_UNICORE
select IDF_TARGET_ARCH_RISCV
config IDF_TARGET_ESP32H21
bool
default "y" if IDF_TARGET="esp32h21"
select FREERTOS_UNICORE
select IDF_TARGET_ARCH_RISCV
select IDF_ENV_FPGA
select IDF_ENV_BRINGUP
config IDF_TARGET_ESP32H4
bool
default "y" if IDF_TARGET="esp32h4"
select FREERTOS_UNICORE # TODO: [ESP32H4] IDF-12319, need remove
select IDF_TARGET_ARCH_RISCV
select IDF_ENV_FPGA
select IDF_ENV_BRINGUP
config IDF_TARGET_LINUX
bool
default "y" if IDF_TARGET="linux"
@@ -170,8 +152,6 @@ mainmenu "Espressif IoT Development Framework Configuration"
default 0x0012 if IDF_TARGET_ESP32P4
default 0x0017 if IDF_TARGET_ESP32C5
default 0x0014 if IDF_TARGET_ESP32C61
default 0x0019 if IDF_TARGET_ESP32H21
default 0x001C if IDF_TARGET_ESP32H4
default 0xFFFF
@@ -679,13 +659,6 @@ mainmenu "Espressif IoT Development Framework Configuration"
endmenu # Compiler Options
menu "Component config"
comment "!!! MINIMAL_BUILD is enabled !!!"
depends on "${IDF_MINIMAL_BUILD}"
comment "Only common components and those transitively required by the main component are listed"
depends on "${IDF_MINIMAL_BUILD}"
comment "If a component configuration is missing, please add it to the main component's requirements"
depends on "${IDF_MINIMAL_BUILD}"
source "$COMPONENT_KCONFIGS_SOURCE_FILE"
endmenu
@@ -706,4 +679,3 @@ mainmenu "Espressif IoT Development Framework Configuration"
- CONFIG_ESP_WIFI_EAP_TLS1_3
- CONFIG_ESP_WIFI_ENABLE_ROAMING_APP
- CONFIG_USB_HOST_EXT_PORT_RESET_ATTEMPTS
- CONFIG_LIBC_PICOLIBC

View File

@@ -1,6 +1,4 @@
# ESP-IDF Project Roadmap2025
* [中文版](./ROADMAP_CN.md)
# ESP-IDF Project Roadmap2024
This document outlines the goals of ESP-IDF project and is shared for the convenience of our customers. It is important to clarify that this document is not a binding commitment to our customers. Instead, its primary purpose is to offer a clear roadmap and direction for the project's development. By openly sharing this information, we aim to enhance our customers' understanding, promote transparency and ensure alignment with the overarching objectives of the ESP-IDF project.
@@ -12,28 +10,32 @@ In both minor and major releases, we integrate new chip support to enhance our p
Furthermore, we prioritize bugfix releases for active branches, focusing on improving the stability and performance of products already in production. By addressing bugs promptly, we aim to enhance the overall user experience and provide tangible benefits to customers relying on our solutions. This proactive maintenance strategy reflects our commitment to delivering reliable, high-quality products to our valued customer base.
Below are the main objectives that ESP-IDF project/teams would like to implement in 2025.
Below are the main objectives that ESP-IDF project/teams would like to implement in 2024.
- New Chip Support
- Add support for ESP32-P4
- Add support for ESP32-C5
- Add support for ESP32-C61
- More Minor/Major Releases
- More Minor Releases
- Release IDF v5.5 in the middle of 2025
- Release IDF v6.0 at the end of 2025
- Release IDF v5.3 in 2024
- Release IDF v5.4 at the start of 2025
- More Bugfix Releases
- Release v5.0.8 and v5.0.9 before ESP-IDF v5.0 goes End of Life in May 2025
- Release v5.1.6 and v5.1.7 before ESP-IDF v5.1 goes End of Life in December 2025
- Do more bugfix releases for IDF v5.2 and IDF v5.3 before release/5.2 and release/5.3 enter maintenance period
- Do more bug fixes releases for release/5.4 and release/5.5, and push the two releases to be more stable and production-ready
- Release v4.4.8 for IDF v4.4 before ESP-IDF v4.4 goes End of Life in July 2024
- Do more bugfix releases for IDF v5.1 before release/5.1 enters maintenance period in June 2024
- Do more bug fixes releases for release/5.2 and release/5.3, and push the two releases to be more stable and production-ready
- Major Changes
- Updates of Libraries
- We plan to upgrade MbedTLS to v4.x series in IDF v6.0. In addition, we will also be migrating to newer PSA crypto API as part of this upgrade. Please note that this may involve some breaking changes on the application side for the crypto API usage.
- Update GDB to 14.2
- Update LLVM to 18.1.2
- Update MbedTLS to 3.6 (LTS)
- Update LWIP to 2.2.0
- Change minimal Python requirement to 3.9
Please note that support status of previous silicones could be found on [ESP-IDF Release and SoC Compatibility](https://github.com/espressif/esp-idf#esp-idf-release-and-soc-compatibility).
@@ -47,84 +49,75 @@ Below are the main roadmap details for functional areas inside ESP-IDF.
- New Chip Support
- Add the initial support for the mass production version of ESP32-C5 in ESP-IDF v5.5, refer to [ESP32-C5 Support Status](https://github.com/espressif/esp-idf/issues/14021)
- Add the initial support for the mass production version of ESP32-C61 in ESP-IDF v5.5, refer to [ESP32-C61 Support Status](https://developer.espressif.com/pages/chip-support-status/esp32c61/#esp-idf)
- Add full support for ESP32-P4 in ESP-IDF v5.3, refer to [ESP32-P4 Support Status](https://github.com/espressif/esp-idf/issues/12996)
- Add preview support for ESP32-C5 in ESP-IDF v5.3 and full support for ESP32-C5 in ESP-IDF v5.4, refer to [ESP32-C5 Support Status](https://github.com/espressif/esp-idf/issues/14021)
- Add preview support for the early samples of ESP32-C61 in ESP-IDF v5.4 and full support for mass production version in ESP-IDF v5.4.x. Refer to [ESP32-C61 Support Status](https://developer.espressif.com/pages/chip-support-status/esp32c61/#esp-idf)
- Bugfix releases
- Do bugfix releases v5.0.8 and v5.0.9 and stop maintaining ESP-IDF v5.0 in May 2025
- Do bugfix releases v5.1.6 and v5.1.7 and stop maintaining ESP-IDF v5.1 in December 2025
- Release bugfix IDF v5.2.4, IDF v5.2.5 and IDF v5.2.6 in 2025, and push release/5.2 to maintenance period from February 2025
- Release bugfix IDF v5.3.3 and IDF v5.3.4 in 2025, and push release/5.3 to maintenance period from July 2025
- Do more bug fixes releases for release/5.4 (IDF v5.4.1, IDF v5.4.2, IDF v5.4.3) and release/5.5 (IDF v5.5.1, IDF v5.5.2), and push releases to be more stable and more production-ready
- Do bugfix release IDF v4.4.8 and stop maintaining ESP-IDF v4.4 in July 2024
- Release bugfix IDF v5.0.6 and IDF v5.0.7 in 2024 (maintenance period)
- Release bugfix IDF v5.1.3 and IDF v5.1.4 in H1 of 2024, and release IDF v5.1.5 in H2 of 2024
- Push release/5.1 to maintenance period from June 2024
- Do more bug fixes releases for release/5.2 (IDF v5.2.1, IDF v5.2.2, IDF v5.2.3) and release/5.3 (IDF v5.3.1, IDF v5.3.2), and push releases to be more stable and more production-ready
## ESP-IDF Planning information
For the full list of ESP-IDF releases, please visit https://github.com/espressif/esp-idf/releases
All the information provided here is subject to change without notice, due to business reasons and other factors.
### ESP-IDF Major Releases
```mermaid
timeline
No Major Releases planned
title ESP-IDF Major Releases
section 2025 Q1 <br> Major Release Planning
No version planned : N/A
section 2025 Q2 <br> Major Release Planning
No version planned : N/A
section 2025 Q3 <br> Major Release Planning
No version planned : N/A
section 2025 Q4 <br> Major Release Planning
v6.0-beta1 : 2025/11/13
v6.0-beta2 : 2025/12/05
v6.0-RC1 : 2026/01/14
v6.0-RC2 : 2026/02/06
v6.0 : 2026/02/13
```
### ESP-IDF Minor Releases
```mermaid
timeline
#### Quarter One
title ESP-IDF Minor Releases
section 2025 Q1 <br> Minor Release Planning
No version planned : N/A
section 2025 Q2 <br> Minor Release Planning
v5.5-beta1 : 2025/05/14
v5.5-beta2 : 2025/06/04
section 2025 Q3 <br> Minor Release Planning
v5.5-RC1 : 2025/07/07
v5.5-RC2 : 2025/07/28
v5.5 : 2025/08/04
section 2025 Q4 <br> Minor Release Planning
No version planned : N/A
```
- v5.2-RC1, estimate release date: 2024/02/02
- v5.2 final release, estimate release date: 2024/02/08
#### Quarter Two
- v5.3-beta1, estimate release date:: 2024/05/13
- v5.3-beta2, estimate release date:: 2024/05/31
- v5.3-RC1, estimate release date:: 2024/07/08
#### Quarter Three
- v5.3-RC2, estimate release date:: 2024/07/26
- v5.3 final release, estimate release date:: 2024/08/02
#### Quarter Four
- v5.4-beta1, estimate release date:: 2024/11/08
- v5.4-beta2, estimate release date:: 2024/11/29
- v5.4-RC1, estimate release date:: 2025/01/09
- v5.4-RC2, estimate release date:: 2025/01/29
- v5.4 final release, estimate release date: 2025/02/05
### ESP-IDF Bugfix Releases
```mermaid
timeline
#### Quarter One
title ESP-IDF Bugfix Releases
section 2025 Q1 <br> Bugfix Release Planning
v5.0.8 : 2025/01/14
v5.1.6 : 2025/02/18
v5.2.4 : 2025/02/23
v5.2.5 : 2025/02/28
v5.4.1 : 2025/03/27
v5.3.3 : 2025/04/04
section 2025 Q2 <br> Bugfix Release Planning
v5.0.9 : 2025/05/16
v5.4.2 : 2025/06/30
section 2025 Q3 <br> Bugfix Release Planning
v5.3.4 : 2025/08/03
v5.2.6 : 2025/09/04
v5.5.1 : 2025/09/11
v5.4.3 : 2025/10/08
section 2025 Q4 <br> Bugfix Release Planning
v5.5.2 : 2025/11/12
v5.1.7 : 2026/01/06
```
- v5.1.3, estimate release date: 2024/02/08
- v5.0.6, estimate release date: 2024/02/18
- v4.4.7, estimate release date:: 2024/03/19
- v5.2.1, estimate release date:: 2024/03/31
#### Quarter Two
- v5.1.4, estimate release date:: 2024/05/06
- v5.2.2, estimate release date:: 2024/06/17
- v4.4.8, estimate release date:: 2024/07/19
#### Quarter Three
- v5.0.7, estimate release date: 2024/08/22
- v5.3.1, estimate release date: 2024/09/16
- v5.2.3, estimate release date: 2024/10/10
#### Quarter Four
- v5.1.5, estimate release date: 2024/11/04 (Maintenance period since June 2024)
- v5.3.2, estimate release date: 2024/12/31
- v5.2.4, estimate release date: 2025/02/20 (Service period ends Feb. 2025)

View File

@@ -1,6 +1,4 @@
# ESP-IDF 项目路线图 2025
* [English Version](./ROADMAP.md)
# ESP-IDF 项目路线图 2024 (v1.0)
本文档概述了 ESP-IDF 项目的年度计划,方便客户据此规划自己的项目周期。需要说明的是该文档并不是我们对客户的约束性承诺。相反,其主要目的是为客户提供 ESP-IDF 项目开发的路线图和方向。通过公开这些信息,我们希望增进客户对 ESP-IDF 项目的理解,提高透明度,并确保与 ESP-IDF 项目的总体目标保持一致。
@@ -12,28 +10,32 @@
此外ESP-IDF 各活跃分支的 Bugfix 版本发布也是我们项目的重中之重,着力提升已量产产品的稳定性和性能。通过及时解决问题,我们期待提升用户的整体体验,切实惠及使用乐鑫解决方案的客户。通过积极维护 ESP-IDF 的各活跃分支,我们践行了对宝贵的客户群提供可靠、高质量产品的承诺。
以下是 ESP-IDF 项目在 2025 年计划实现的主要目标。
以下是 ESP-IDF 项目在 2024 年计划实现的主要目标。
* 新芯片支持
* 增加对 ESP32-P4 芯片的支持
* 增加对 ESP32-C5 芯片的支持
* 增加对 ESP32-C61 芯片的支持
* 发布更多的次要和主要版本
* 发布更多的次要版本
* 在 2025发布 IDF v5.5
* 在 2025 年发布 IDF v6.0
* 在 2024 年发布 IDF v5.3
* 在 2025 年发布 IDF v5.4
* 发布更多 bugfix 版本
* 发布更多 Bugfix 版本
* 在 20255 月底 IDF v5.0 停止维护之前,发布 IDF v5.0.8 和 IDF v5.0.9
* 在 202512 月底 IDF v5.1 停止维护之前,发布 IDF v5.1.6 和 IDF v5.1.7
* release/5.2 分支和 release/5.3 分支进入维护周期之前,发布更多 bugfix 版本
* release/5.4 分支和 release/5.5 分支发布更多 bugfix 版本,使这两个分支更加稳定和产品化
* 在 20247 月底 IDF v4.4 停止维护之前,发布 IDF v4.4.8
* 在 20246 月底release/5.1 分支进入维护周期之前,发布更多 Bugfix 版本
* release/5.2 分支和 release/5.3 分支发布更多 Bugfix 版本,使这两个分支更加稳定和产品化
* 重大变更
* 上游库与工具链的更新
* 我们计划在 IDF v6.0 中将 MbedTLS 版本升级到 v4.x。另外我们还会在升级中迁移到更新版的 PSA 加密 API但请注意这可能会导致应用程序端在使用加密 API 时出现一些非兼容性更新。
* 将 GDB 升级至 14.2
* 将 LLVM 升级至 18.1.2
* 更新 MbedTLS 至 3.6LTS
* 更新 LWIP 至 2.2.0
* 将最低 Python 要求更改为 3.9
请注意,获取之前芯片的支持状态,请参阅 [ESP-IDF 发布和 SoC 兼容性](https://github.com/espressif/esp-idf/blob/master/README_CN.md#esp-idf-与乐鑫芯片)。
@@ -47,84 +49,75 @@ ESP-IDF 项目重视持续维护和更新,确保我们的客户始终处于技
* 新芯片支持
* 在 ESP-IDF v5.4 中为 ESP32-C5 提供预览支持,并在 ESP-IDF v5.5 中为 ESP32-C5 提供完整支持,参考 [ESP32-C5 支持状态](https://github.com/espressif/esp-idf/issues/14021)
* 在 ESP-IDF v5.4增加对 ESP32-C61 早期样品的预览支持,并在 IDF v5.5增加对 ESP32-C61 量产版本的完整支持,参考 [ESP32-C61 支持状态](https://developer.espressif.com/pages/chip-support-status/esp32c61/#esp-idf)
* 在 ESP-IDF v5.3 中为 ESP32-P4 提供完整支持,参考 [ESP32-P4 支持状态](https://github.com/espressif/esp-idf/issues/12996)
* 在 ESP-IDF v5.3 ESP32-C5 提供预览支持,并在 ESP-IDF v5.4 ESP32-C5 提供完整支持,参考 [ESP32-C5 支持状态](https://github.com/espressif/esp-idf/issues/14021)
* 在 ESP-IDF v5.4 中增加对 ESP32-C61 早期样品的预览支持,并在 IDF v5.4.x 中增加对 ESP32-C61 量产版本的完整支持,参考 [ESP32-C61 支持状态](https://developer.espressif.com/pages/chip-support-status/esp32c61/#esp-idf)
* Bugfix 版本发布
* 发布 Bugfix 版本 IDF v5.0.8 和 IDF v5.0.9,并在 20255 月底停止维护 ESP-IDF v5.0
* 发布 Bugfix 版本 IDF v5.1.6 和 IDF v5.1.7,并在 2025 年 12 月底停止维护 ESP-IDF v5.1
* 发布 Bugfix 版本 IDF v5.2.4IDF v5.2.5 和 IDF v5.2.6release/5.2 分支自 2025 2 月进入维护周期
* 发布 Bugfix 版本 IDF v5.3.3 和 IDF v5.3.4release/5.3 分支自 2025 年 7 月进入维护周期
* release/5.4 分支发布更多 bugfix 版本,包括 IDF v5.4.1、IDF v5.4.2、IDF v5.4.3release/5.5 分支发布更多 bugfix 版本,包括 IDF v5.5.1、IDF v5.5.2。通过发布这些 Bugfix 版本,使 release/5.4 分支和 release/5.5 分支更加稳定和产品化。
* 发布 Bugfix 版本 IDF v4.4.8,并在 20247 月底停止维护 ESP-IDF v4.4
* 2024 年release/5.0 分支已处于维护周期,发布 IDF v5.0.6 和 IDF v5.0.7
* 2024 年上半年发布 Bugfix 版本 IDF v5.1.3 和 IDF v5.1.4,并在 2024下半年发布 IDF v5.1.5
* 自 2024 年 6 月起release/5.1 分支进入维护周期
* release/5.2 分支发布更多 Bugfix 版本,包括 IDF v5.2.1、IDF v5.2.2、IDF v5.2.3release/5.3 分支发布更多 Bugfix 版本,包括 IDF v5.3.1、IDF v5.3.2。通过发布这些 Bugfix 版本,使 release/5.2 分支和 release/5.3 分支更加稳定和产品化。
## ESP-IDF 发布计划
获取 ESP-IDF 的完整发布列表,请访问 https://github.com/espressif/esp-idf/releases
此处提供的所有信息均可因业务原因及其他因素而在没有通知的情况下进行更改。
### ESP-IDF 主要版本发布
```mermaid
timeline
2024 年,无主要版本发布计划
title ESP-IDF Major Releases
section 2025 Q1 <br> Major Release Planning
No version planned : N/A
section 2025 Q2 <br> Major Release Planning
No version planned : N/A
section 2025 Q3 <br> Major Release Planning
No version planned : N/A
section 2025 Q4 <br> Major Release Planning
v6.0-beta1 : 2025/11/13
v6.0-beta2 : 2025/12/05
v6.0-RC1 : 2026/01/14
v6.0-RC2 : 2026/02/06
v6.0 : 2026/02/13
```
### ESP-IDF 次要版本发布
```mermaid
timeline
#### 第一季度
title ESP-IDF Minor Releases
section 2025 Q1 <br> Minor Release Planning
No version planned : N/A
section 2025 Q2 <br> Minor Release Planning
v5.5-beta1 : 2025/05/14
v5.5-beta2 : 2025/06/04
section 2025 Q3 <br> Minor Release Planning
v5.5-RC1 : 2025/07/07
v5.5-RC2 : 2025/07/28
v5.5 : 2025/08/04
section 2025 Q4 <br> Minor Release Planning
No version planned : N/A
```
* v5.2-RC1预计发布日期2024/02/02
* v5.2 正式发布预计发布日期2024/02/08
#### 第二季度
* v5.3-beta1预计发布日期2024/05/13
* v5.3-beta2预计发布日期2024/05/31
* v5.3-RC1,预计发布日期:2024/07/08
#### 第三季度
* v5.3-RC2预计发布日期2024/07/26
* v5.3 正式发布预计发布日期2024/08/02
#### 第四季度
* v5.4-beta1预计发布日期2024/11/08
* v5.4-beta2预计发布日期2024/11/29
* v5.4-RC1预计发布日期2025/01/09
* v5.4-RC2预计发布日期2025/01/29
* v5.4 正式发布预计发布日期2025/02/05
### ESP-IDF Bugfix 版本发布
```mermaid
timeline
#### 第一季度
title ESP-IDF Bugfix Releases
section 2025 Q1 <br> Bugfix Release Planning
v5.0.8 : 2025/01/14
v5.1.6 : 2025/02/18
v5.2.4 : 2025/02/23
v5.2.5 : 2025/02/28
v5.4.1 : 2025/03/27
v5.3.3 : 2025/04/04
section 2025 Q2 <br> Bugfix Release Planning
v5.0.9 : 2025/05/16
v5.4.2 : 2025/06/30
section 2025 Q3 <br> Bugfix Release Planning
v5.3.4 : 2025/08/03
v5.2.6 : 2025/09/04
v5.5.1 : 2025/09/11
v5.4.3 : 2025/10/08
section 2025 Q4 <br> Bugfix Release Planning
v5.5.2 : 2025/11/12
v5.1.7 : 2026/01/06
```
* v5.1.3预计发布日期2024/02/08
* v5.0.6预计发布日期2024/02/18
* v4.4.7,预计发布日期:2024/03/19
* v5.2.1,预计发布日期:2024/03/31
#### 第二季度
* v5.1.4,预计发布日期:2024/05/06
* v5.2.2预计发布日期2024/06/17
* v4.4.8,预计发布日期:2024/07/19
#### 第三季度
* v5.0.7,预计发布日期:2024/08/22
* v5.3.1,预计发布日期:2024/09/16
* v5.2.3,预计发布日期:2024/10/10
#### 第四季度
* v5.1.5预计发布日期2024/11/04自 2024 年 6 月进入维护周期)
* v5.3.2预计发布日期2024/12/31
* v5.2.4预计发布日期2025/02/20服务周期截止至 2025 年 2 月)

View File

@@ -60,9 +60,9 @@ endif()
if(CONFIG_HEAP_TRACING_TOHOST)
list(APPEND srcs "heap_trace_tohost.c")
if(CONFIG_IDF_TARGET_ARCH_XTENSA)
set_source_files_properties(heap_trace_tohost.c PROPERTIES COMPILE_FLAGS -Wno-frame-address)
endif()
set_source_files_properties(heap_trace_tohost.c
PROPERTIES COMPILE_FLAGS
-Wno-frame-address)
endif()
idf_component_register(SRCS "${srcs}"
@@ -121,3 +121,16 @@ if(CONFIG_APPTRACE_GCOV_ENABLE)
else()
target_link_libraries(${COMPONENT_LIB} INTERFACE $<TARGET_FILE:${app_trace}> c)
endif()
# This function adds a dependency on the given component if the component is included into the build.
function(maybe_add_component component_name)
idf_build_get_property(components BUILD_COMPONENTS)
if(${component_name} IN_LIST components)
idf_component_get_property(lib_name ${component_name} COMPONENT_LIB)
target_link_libraries(${COMPONENT_LIB} PUBLIC ${lib_name})
endif()
endfunction()
if(CONFIG_APPTRACE_DEST_UART0 OR CONFIG_APPTRACE_DEST_UART1 OR CONFIG_APPTRACE_DEST_UART2)
maybe_add_component(driver)
endif()

View File

@@ -207,7 +207,7 @@ menu "Application Level Tracing"
depends on APPTRACE_ENABLE
default n
help
Enables support for SEGGER SystemView tracing functionality.
Enables supporrt for SEGGER SystemView tracing functionality.
choice APPTRACE_SV_DEST
prompt "SystemView destination"

View File

@@ -1,5 +1,5 @@
/*
* SPDX-FileCopyrightText: 2021-2024 Espressif Systems (Shanghai) CO LTD
* SPDX-FileCopyrightText: 2021-2025 Espressif Systems (Shanghai) CO LTD
*
* SPDX-License-Identifier: Apache-2.0 OR MIT
*/
@@ -148,6 +148,18 @@ static esp_err_t esp_apptrace_membufs_swap_waitus(esp_apptrace_membufs_proto_dat
if (res != ESP_OK) {
break;
}
#if CONFIG_IDF_TARGET_ESP32S3
/*
* ESP32S3 has a serious data corruption issue with the transferred data to host.
* This delay helps reduce the failure rate by temporarily reducing heavy memory writes
* from RTOS-level tracing and giving OpenOCD more time to read trace memory before
* the current thread continues execution. While this doesn't completely prevent
* memory access from other threads/cores/ISRs, it has shown to significantly improve
* reliability when combined with CRC checks in OpenOCD. In practice, this reduces the
* number of retries needed to read an entire block without corruption.
*/
esp_rom_delay_us(100);
#endif
}
return res;
}
@@ -339,7 +351,7 @@ uint8_t *esp_apptrace_membufs_up_buffer_get(esp_apptrace_membufs_proto_data_t *p
esp_err_t esp_apptrace_membufs_up_buffer_put(esp_apptrace_membufs_proto_data_t *proto, uint8_t *ptr, esp_apptrace_tmo_t *tmo)
{
esp_apptrace_membufs_pkt_end(ptr);
// TODO: mark block as busy in order not to re-use it for other tracing calls until it is completely written
// TODO: mark block as busy in order not to reuse it for other tracing calls until it is completely written
// TODO: avoid potential situation when all memory is consumed by low prio tasks which can not complete writing due to
// higher prio tasks and the latter can not allocate buffers at all
// this is abnormal situation can be detected on host which will receive only uncompleted buffers

View File

@@ -1,11 +1,13 @@
/*
* SPDX-FileCopyrightText: 2015-2024 Espressif Systems (Shanghai) CO LTD
* SPDX-FileCopyrightText: 2015-2022 Espressif Systems (Shanghai) CO LTD
*
* SPDX-License-Identifier: Apache-2.0
*/
#include "sdkconfig.h"
#include <sdkconfig.h>
#define HEAP_TRACE_SRCFILE /* don't warn on inclusion here */
#include "esp_heap_trace.h"
#undef HEAP_TRACE_SRCFILE
#include "esp_heap_caps.h"
#if CONFIG_APPTRACE_SV_ENABLE
#include "esp_app_trace.h"
@@ -14,7 +16,7 @@
#define STACK_DEPTH CONFIG_HEAP_TRACING_STACK_DEPTH
#if CONFIG_HEAP_TRACING_TOHOST
#ifdef CONFIG_HEAP_TRACING_TOHOST
#if !CONFIG_APPTRACE_SV_ENABLE
#error None of the heap tracing backends is enabled! You must enable SystemView compatible tracing to use this feature.

View File

@@ -18,6 +18,6 @@ entries:
archive: libesp_driver_gptimer.a
entries:
if APPTRACE_SV_TS_SOURCE_GPTIMER = y:
gptimer: gptimer_get_raw_count (noflash)
gptimer (noflash)
else:
* (default)

View File

@@ -1,5 +1,5 @@
/*
* SPDX-FileCopyrightText: 2017-2024 Espressif Systems (Shanghai) CO LTD
* SPDX-FileCopyrightText: 2017-2021 Espressif Systems (Shanghai) CO LTD
*
* SPDX-License-Identifier: Apache-2.0
*/
@@ -218,13 +218,6 @@ static esp_err_t esp_apptrace_uart_init(esp_apptrace_uart_data_t *hw_data)
hw_data->message_buff_overflow = false;
hw_data->circular_buff_overflow = false;
assert((hw_data->port_num <= SOC_UART_NUM) && "Not possible to configure UART. Please check selected UART port");
int source_clk = UART_SCLK_DEFAULT;
#if SOC_UART_LP_NUM > 0
if (hw_data->port_num >= SOC_UART_HP_NUM)
source_clk = LP_UART_SCLK_DEFAULT;
#endif
const uart_config_t uart_config = {
.baud_rate = CONFIG_APPTRACE_UART_BAUDRATE,
@@ -232,7 +225,7 @@ static esp_err_t esp_apptrace_uart_init(esp_apptrace_uart_data_t *hw_data)
.parity = UART_PARITY_DISABLE,
.stop_bits = UART_STOP_BITS_1,
.flow_ctrl = UART_HW_FLOWCTRL_DISABLE,
.source_clk = source_clk,
.source_clk = UART_SCLK_DEFAULT,
};
ESP_LOGI(TAG, "UART baud rate: %i", CONFIG_APPTRACE_UART_BAUDRATE);
// We won't use a buffer for sending data.

View File

@@ -1,5 +1,5 @@
/*
* SPDX-FileCopyrightText: 2015-2024 Espressif Systems (Shanghai) CO LTD
* SPDX-FileCopyrightText: 2015-2025 Espressif Systems (Shanghai) CO LTD
*
* SPDX-License-Identifier: Apache-2.0 OR MIT
*/
@@ -12,7 +12,7 @@
// ======================
// Xtensa has useful feature: TRAX debug module. It allows recording program execution flow at run-time without disturbing CPU.
// Exectution flow data are written to configurable Trace RAM block. Besides accessing Trace RAM itself TRAX module also allows to read/write
// Execution flow data are written to configurable Trace RAM block. Besides accessing Trace RAM itself TRAX module also allows to read/write
// trace memory via its registers by means of JTAG, APB or ERI transactions.
// ESP32 has two Xtensa cores with separate TRAX modules on them and provides two special memory regions to be used as trace memory.
// Chip allows muxing access to those trace memory blocks in such a way that while one block is accessed by CPUs another one can be accessed by host
@@ -47,7 +47,7 @@
// 2. TRAX Registers layout
// ========================
// This module uses two TRAX HW registers to communicate with host SW (OpenOCD).
// This module uses two TRAX HW registers and one Performance Monitor register to communicate with host SW (OpenOCD).
// - Control register uses TRAX_DELAYCNT as storage. Only lower 24 bits of TRAX_DELAYCNT are writable. Control register has the following bitfields:
// | 31..XXXXXX..24 | 23 .(host_connect). 23| 22..(block_id)..15 | 14..(block_len)..0 |
// 14..0 bits - actual length of user data in trace memory block. Target updates it every time it fills memory block and exposes it to host.
@@ -55,9 +55,15 @@
// 21..15 bits - trace memory block transfer ID. Block counter. It can overflow. Updated by target, host should not modify it. Actually can be 2 bits;
// 22 bit - 'host data present' flag. If set to one there is data from host, otherwise - no host data;
// 23 bit - 'host connected' flag. If zero then host is not connected and tracing module works in post-mortem mode, otherwise in streaming mode;
// - Status register uses TRAX_TRIGGERPC as storage. If this register is not zero then current CPU is changing TRAX registers and
// this register holds address of the instruction which application will execute when it finishes with those registers modifications.
// See 'Targets Connection' setion for details.
// - Status register uses TRAX_TRIGGERPC as storage. If this register is not zero then current CPU is changing TRAX registers and
// this register holds address of the instruction which application will execute when it finishes with those registers modifications.
// See 'Targets Connection' section for details.
// - CRC16 register uses ERI_PERFMON_PM1 as storage. This register is used to store CRC16 checksum of the exposed trace memory block.
// The register has the following format:
// | 31..16 (CRC indicator) | 15..0 (CRC16 value) |
// CRC indicator (0xA55A) is used to distinguish valid CRC values from other data that might be in the register.
// CRC16 is calculated over the entire exposed block and is updated every time a block is exposed to the host.
// This allows the host to verify data integrity of the received trace data.
// 3. Modes of operation
// =====================
@@ -127,7 +133,7 @@
// Access to internal module's data is synchronized with custom mutex. Mutex is a wrapper for portMUX_TYPE and uses almost the same sync mechanism as in
// vPortCPUAcquireMutex/vPortCPUReleaseMutex. The mechanism uses S32C1I Xtensa instruction to implement exclusive access to module's data from tasks and
// ISRs running on both cores. Also custom mutex allows specifying timeout for locking operation. Locking routine checks underlaying mutex in cycle until
// ISRs running on both cores. Also custom mutex allows specifying timeout for locking operation. Locking routine checks underlying mutex in cycle until
// it gets its ownership or timeout expires. The differences of application tracing module's mutex implementation from vPortCPUAcquireMutex/vPortCPUReleaseMutex are:
// - Support for timeouts.
// - Local IRQs for CPU which owns the mutex are disabled till the call to unlocking routine. This is made to avoid possible task's prio inversion.
@@ -142,9 +148,9 @@
// Timeout mechanism is based on xthal_get_ccount() routine and supports timeout values in microseconds.
// There are two situations when task/ISR can be delayed by tracing API call. Timeout mechanism takes into account both conditions:
// - Trace data are locked by another task/ISR. When wating on trace data lock.
// - Trace data are locked by another task/ISR. When waiting on trace data lock.
// - Current TRAX memory input block is full when working in streaming mode (host is connected). When waiting for host to complete previous block reading.
// When wating for any of above conditions xthal_get_ccount() is called periodically to calculate time elapsed from trace API routine entry. When elapsed
// When waiting for any of above conditions xthal_get_ccount() is called periodically to calculate time elapsed from trace API routine entry. When elapsed
// time exceeds specified timeout value operation is canceled and ESP_ERR_TIMEOUT code is returned.
#include "sdkconfig.h"
#include "soc/soc.h"
@@ -159,11 +165,15 @@
#include "esp_log.h"
#include "esp_app_trace_membufs_proto.h"
#include "esp_app_trace_port.h"
#include "esp_rom_crc.h"
// TRAX is disabled, so we use its registers for our own purposes
// | 31..XXXXXX..24 | 23 .(host_connect). 23 | 22 .(host_data). 22| 21..(block_id)..15 | 14..(block_len)..0 |
#define ESP_APPTRACE_TRAX_CTRL_REG ERI_TRAX_DELAYCNT
#define ESP_APPTRACE_TRAX_STAT_REG ERI_TRAX_TRIGGERPC
#define ESP_APPTRACE_TRAX_CRC16_REG ERI_PERFMON_PM1
#define ESP_APPTRACE_CRC_INDICATOR (0xA55AU << 16)
#define ESP_APPTRACE_TRAX_BLOCK_LEN_MSK 0x7FFFUL
#define ESP_APPTRACE_TRAX_BLOCK_LEN(_l_) ((_l_) & ESP_APPTRACE_TRAX_BLOCK_LEN_MSK)
@@ -498,7 +508,8 @@ static esp_err_t esp_apptrace_trax_buffer_swap_start(uint32_t curr_block_id)
uint32_t acked_block = ESP_APPTRACE_TRAX_BLOCK_ID_GET(ctrl_reg);
uint32_t host_to_read = ESP_APPTRACE_TRAX_BLOCK_LEN_GET(ctrl_reg);
if (host_to_read != 0 || acked_block != (curr_block_id & ESP_APPTRACE_TRAX_BLOCK_ID_MSK)) {
ESP_APPTRACE_LOGD("HC[%d]: Can not switch %" PRIx32 " %" PRIu32 " %" PRIx32 " %" PRIx32 "/%" PRIx32, esp_cpu_get_core_id(), ctrl_reg, host_to_read, acked_block,
ESP_APPTRACE_LOGD("HC[%d]: Can not switch %" PRIx32 " %" PRIu32 " %" PRIx32 " %" PRIx32 "/%" PRIx32,
esp_cpu_get_core_id(), ctrl_reg, host_to_read, acked_block,
curr_block_id & ESP_APPTRACE_TRAX_BLOCK_ID_MSK, curr_block_id);
res = ESP_ERR_NO_MEM;
goto _on_err;
@@ -514,6 +525,14 @@ static esp_err_t esp_apptrace_trax_buffer_swap_end(uint32_t new_block_id, uint32
{
uint32_t ctrl_reg = eri_read(ESP_APPTRACE_TRAX_CTRL_REG);
uint32_t host_connected = ESP_APPTRACE_TRAX_HOST_CONNECT & ctrl_reg;
/* calculate CRC16 of the already switched block */
if (prev_block_len > 0) {
const uint8_t *prev_block_start = s_trax_blocks[!((new_block_id % 2))];
uint16_t crc16 = esp_rom_crc16_le(0, prev_block_start, prev_block_len);
eri_write(ESP_APPTRACE_TRAX_CRC16_REG, crc16 | ESP_APPTRACE_CRC_INDICATOR);
ESP_APPTRACE_LOGD("CRC16:%x %d @%x", crc16, prev_block_len, prev_block_start);
}
eri_write(ESP_APPTRACE_TRAX_CTRL_REG, ESP_APPTRACE_TRAX_BLOCK_ID(new_block_id) |
host_connected | ESP_APPTRACE_TRAX_BLOCK_LEN(prev_block_len));
esp_apptrace_trax_buffer_swap_unlock();

View File

@@ -10,7 +10,7 @@
* The Embedded Experts *
**********************************************************************
* *
* (c) 1995 - 2024 SEGGER Microcontroller GmbH *
* (c) 1995 - 2021 SEGGER Microcontroller GmbH *
* *
* www.segger.com Support: support@segger.com *
* *
@@ -49,7 +49,7 @@
* *
**********************************************************************
* *
* SystemView version: 3.56 *
* SystemView version: 3.42 *
* *
**********************************************************************
----------------------------------------------------------------------

View File

@@ -8,7 +8,7 @@
* The Embedded Experts *
**********************************************************************
* *
* (c) 1995 - 2024 SEGGER Microcontroller GmbH *
* (c) 1995 - 2021 SEGGER Microcontroller GmbH *
* *
* www.segger.com Support: support@segger.com *
* *
@@ -47,7 +47,7 @@
* *
**********************************************************************
* *
* SystemView version: 3.56 *
* SystemView version: 3.42 *
* *
**********************************************************************
---------------------------END-OF-HEADER------------------------------
@@ -100,10 +100,6 @@ Revision: $Rev: 25842 $
#define _CORE_HAS_RTT_ASM_SUPPORT 1
#define _CORE_NEEDS_DMB 1
#define RTT__DMB() __asm volatile ("dmb\n" : : :);
#elif (defined(__ARM_ARCH_8_1M_MAIN__)) // Cortex-M85
#define _CORE_HAS_RTT_ASM_SUPPORT 1
#define _CORE_NEEDS_DMB 1
#define RTT__DMB() __asm volatile ("dmb\n" : : :);
#else
#define _CORE_HAS_RTT_ASM_SUPPORT 0
#endif
@@ -134,10 +130,6 @@ Revision: $Rev: 25842 $
#define _CORE_HAS_RTT_ASM_SUPPORT 1
#define _CORE_NEEDS_DMB 1
#define RTT__DMB() __asm volatile ("dmb\n" : : :);
#elif (defined __ARM_ARCH_8_1M_MAIN__) // Cortex-M85
#define _CORE_HAS_RTT_ASM_SUPPORT 1
#define _CORE_NEEDS_DMB 1
#define RTT__DMB() __asm volatile ("dmb\n" : : :);
#elif ((defined __ARM_ARCH_7A__) || (defined __ARM_ARCH_7R__)) // Cortex-A/R 32-bit ARMv7-A/R
#define _CORE_NEEDS_DMB 1
#define RTT__DMB() __asm volatile ("dmb\n" : : :);
@@ -164,10 +156,6 @@ Revision: $Rev: 25842 $
#define _CORE_HAS_RTT_ASM_SUPPORT 1
#define _CORE_NEEDS_DMB 1
#define RTT__DMB() __asm volatile ("dmb\n" : : :);
#elif (defined __ARM_ARCH_8_1M_MAIN__) // Cortex-M85
#define _CORE_HAS_RTT_ASM_SUPPORT 1
#define _CORE_NEEDS_DMB 1
#define RTT__DMB() __asm volatile ("dmb\n" : : :);
#elif ((defined __ARM_ARCH_7A__) || (defined __ARM_ARCH_7R__)) // Cortex-A/R 32-bit ARMv7-A/R
#define _CORE_NEEDS_DMB 1
#define RTT__DMB() __asm volatile ("dmb\n" : : :);
@@ -283,7 +271,6 @@ Revision: $Rev: 25842 $
#ifndef SEGGER_RTT_ASM // defined when SEGGER_RTT.h is included from assembly file
#include <stdlib.h>
#include <stdarg.h>
#include <stdint.h>
/*********************************************************************
*
@@ -425,7 +412,7 @@ unsigned SEGGER_RTT_ReadUpBufferNoLock (unsigned BufferIndex, void* pDa
unsigned SEGGER_RTT_WriteDownBuffer (unsigned BufferIndex, const void* pBuffer, unsigned NumBytes);
unsigned SEGGER_RTT_WriteDownBufferNoLock (unsigned BufferIndex, const void* pBuffer, unsigned NumBytes);
#define SEGGER_RTT_HASDATA_UP(n) (((SEGGER_RTT_BUFFER_UP*)((uintptr_t)&_SEGGER_RTT.aUp[n] + SEGGER_RTT_UNCACHED_OFF))->WrOff - ((SEGGER_RTT_BUFFER_UP*)((uintptr_t)&_SEGGER_RTT.aUp[n] + SEGGER_RTT_UNCACHED_OFF))->RdOff) // Access uncached to make sure we see changes made by the J-Link side and all of our changes go into HW directly
#define SEGGER_RTT_HASDATA_UP(n) (((SEGGER_RTT_BUFFER_UP*)((char*)&_SEGGER_RTT.aUp[n] + SEGGER_RTT_UNCACHED_OFF))->WrOff - ((SEGGER_RTT_BUFFER_UP*)((char*)&_SEGGER_RTT.aUp[n] + SEGGER_RTT_UNCACHED_OFF))->RdOff) // Access uncached to make sure we see changes made by the J-Link side and all of our changes go into HW directly
/*********************************************************************
*

View File

@@ -3,14 +3,14 @@
*
* SPDX-License-Identifier: BSD-1-Clause
*
* SPDX-FileContributor: 2023-2024 Espressif Systems (Shanghai) CO LTD
* SPDX-FileContributor: 2023 Espressif Systems (Shanghai) CO LTD
*/
/*********************************************************************
* SEGGER Microcontroller GmbH *
* The Embedded Experts *
**********************************************************************
* *
* (c) 1995 - 2024 SEGGER Microcontroller GmbH *
* (c) 1995 - 2021 SEGGER Microcontroller GmbH *
* *
* www.segger.com Support: support@segger.com *
* *
@@ -49,14 +49,14 @@
* *
**********************************************************************
* *
* SystemView version: 3.56 *
* SystemView version: 3.42 *
* *
**********************************************************************
-------------------------- END-OF-HEADER -----------------------------
File : SEGGER_SYSVIEW.c
Purpose : System visualization API implementation.
Revision: $Rev: 29105 $
Revision: $Rev: 28341 $
Additional information:
Packet format:
@@ -66,10 +66,10 @@ Additional information:
Packets with IDs 24..31 are standard packets with extendible
structure and contain a length field.
<ID><Length><Data><TimeStampDelta>
<ID><Lenght><Data><TimeStampDelta>
Packet ID 31 is used for SystemView extended events.
<ID><Length><ID_EX><Data><TimeStampDelta>
<ID><Lenght><ID_EX><Data><TimeStampDelta>
Packets with IDs >= 32 always contain a length field.
<ID><Length><Data><TimeStampDelta>
@@ -150,7 +150,6 @@ Additional information:
#include <string.h>
#include <stdlib.h>
#include <stdarg.h>
#include <assert.h>
#include "SEGGER_SYSVIEW_Int.h"
#include "SEGGER_RTT.h"
@@ -189,7 +188,7 @@ Additional information:
// Timestamps may be less than full 32-bits, in which case we need to zero
// the unused bits to properly handle overflows.
// Note that this is a quite common scenario, as a 32-bit time such as
// SysTick might be scaled down to reduce bandwidth
// SysTick might be scaled down to reduce bandwith
// or a 16-bit hardware time might be used.
#if SEGGER_SYSVIEW_TIMESTAMP_BITS < 32 // Eliminate unused bits in case hardware timestamps are less than 32 bits
#define MAKE_DELTA_32BIT(Delta) Delta <<= 32 - SEGGER_SYSVIEW_TIMESTAMP_BITS; \
@@ -389,6 +388,8 @@ static U8 _NumModules;
pDest = pSysviewPointer; \
};
#if (SEGGER_SYSVIEW_USE_STATIC_BUFFER == 1)
static U8 _aPacket[SEGGER_SYSVIEW_MAX_PACKET_SIZE];
@@ -431,9 +432,6 @@ static U8 _aPacket[SEGGER_SYSVIEW_MAX_PACKET_SIZE];
static U8* _EncodeData(U8* pPayload, const char* pSrc, unsigned int NumBytes) {
unsigned int n;
const U8* p;
// Espressif doesn't support larger packages yet. Encode data length must be less than 255.
assert(NumBytes < 255);
//
n = 0;
p = (const U8*)pSrc;
@@ -444,8 +442,8 @@ static U8* _EncodeData(U8* pPayload, const char* pSrc, unsigned int NumBytes) {
*pPayload++ = (U8)NumBytes;
} else {
*pPayload++ = 255;
*pPayload++ = ((NumBytes >> 8) & 255);
*pPayload++ = (NumBytes & 255);
*pPayload++ = ((NumBytes >> 8) & 255);
}
while (n < NumBytes) {
*pPayload++ = *p++;
@@ -454,38 +452,6 @@ static U8* _EncodeData(U8* pPayload, const char* pSrc, unsigned int NumBytes) {
return pPayload;
}
/*********************************************************************
*
* _EncodeFloat()
*
* Function description
* Encode a float value in variable-length format.
*
* Parameters
* pPayload - Pointer to where value will be encoded.
* Value - Value to be encoded.
*
* Return value
* Pointer to the byte following the value, i.e. the first free
* byte in the payload and the next position to store payload
* content.
*/
static U8* _EncodeFloat(U8* pPayload, float Value) {
float Val = Value;
U8* pSysviewPointer;
U32* SysViewData;
pSysviewPointer = pPayload;
SysViewData = (U32*)&Val;
while((*SysViewData) > 0x7F) {
*pSysviewPointer++ = (U8)((*SysViewData) | 0x80);
(*SysViewData) >>= 7;
};
*pSysviewPointer++ = (U8)(*SysViewData);
pPayload = pSysviewPointer;
return pPayload;
}
/*********************************************************************
*
* _EncodeStr()
@@ -509,42 +475,38 @@ static U8* _EncodeFloat(U8* pPayload, float Value) {
* No more than 1 + Limit bytes will be encoded to the payload.
*/
static U8 *_EncodeStr(U8 *pPayload, const char *pText, unsigned int Limit) {
U8* pLen;
const char* sStart;
if (pText == NULL) {
*pPayload++ = (U8)0;
} else {
sStart = pText; // Remember start of string.
//
// Save space to store count byte(s).
//
pLen = pPayload++;
#if (SEGGER_SYSVIEW_MAX_STRING_LEN >= 255) // Length always encodes in 3 bytes
pPayload += 2;
#endif
//
// Limit string to maximum length and copy into payload buffer.
//
if (Limit > SEGGER_SYSVIEW_MAX_STRING_LEN) {
Limit = SEGGER_SYSVIEW_MAX_STRING_LEN;
unsigned int n;
unsigned int Len;
//
// Compute string len
//
Len = 0;
if (pText != NULL) {
while(*(pText + Len) != 0) {
Len++;
}
while ((Limit-- > 0) && (*pText != '\0')) {
*pPayload++ = *pText++;
if (Len > Limit) {
Len = Limit;
}
//
// Save string length to buffer.
//
#if (SEGGER_SYSVIEW_MAX_STRING_LEN >= 255) // Length always encodes in 3 bytes
Limit = (unsigned int)(pText - sStart);
*pLen++ = (U8)255;
*pLen++ = (U8)((Limit >> 8) & 255);
*pLen++ = (U8)(Limit & 255);
#else // Length always encodes in 1 byte
*pLen = (U8)(pText - sStart);
#endif
}
//
// Write Len
//
if (Len < 255) {
*pPayload++ = (U8)Len;
} else {
*pPayload++ = 255;
*pPayload++ = (Len & 255);
*pPayload++ = ((Len >> 8) & 255);
}
//
// copy string
//
n = 0;
while (n < Len) {
*pPayload++ = *pText++;
n++;
}
return pPayload;
}
@@ -731,6 +693,7 @@ static void _SendSyncInfo(void) {
for (n = 0; n < _NumModules; n++) {
SEGGER_SYSVIEW_SendModule(n);
}
SEGGER_SYSVIEW_SendModuleDescription();
}
}
#endif // (SEGGER_SYSVIEW_POST_MORTEM_MODE == 1)
@@ -1255,7 +1218,6 @@ static void _VPrintTarget(const char* sFormat, U32 Options, va_list* pParamList)
unsigned int FormatFlags;
unsigned int FieldWidth;
U8* pPayloadStart;
const char* s;
#if SEGGER_SYSVIEW_USE_STATIC_BUFFER == 0
RECORD_START(SEGGER_SYSVIEW_INFO_SIZE + SEGGER_SYSVIEW_MAX_STRING_LEN + 1 + 2 * SEGGER_SYSVIEW_QUANTA_U32);
SEGGER_SYSVIEW_LOCK();
@@ -1360,20 +1322,6 @@ static void _VPrintTarget(const char* sFormat, U32 Options, va_list* pParamList)
v = va_arg(*pParamList, int);
_PrintUnsigned(&BufferDesc, (unsigned int)v, 16u, NumDigits, FieldWidth, FormatFlags);
break;
case 's':
s = va_arg(*pParamList, const char*);
if (s == NULL) {
s = "(null)";
}
do {
c = *s;
s++;
if (c == '\0') {
break;
}
_StoreChar(&BufferDesc, c);
} while (BufferDesc.Cnt < SEGGER_SYSVIEW_MAX_STRING_LEN);
break;
case 'p':
v = va_arg(*pParamList, int);
_PrintUnsigned(&BufferDesc, (unsigned int)v, 16u, 8u, 8u, 0u);
@@ -2006,61 +1954,11 @@ void SEGGER_SYSVIEW_SendTaskInfo(const SEGGER_SYSVIEW_TASKINFO *pInfo) {
ENCODE_U32(pPayload, SHRINK_ID(pInfo->TaskID));
ENCODE_U32(pPayload, pInfo->StackBase);
ENCODE_U32(pPayload, pInfo->StackSize);
ENCODE_U32(pPayload, pInfo->StackUsage);
ENCODE_U32(pPayload, 0); // Stack End, future use
_SendPacket(pPayloadStart, pPayload, SYSVIEW_EVTID_STACK_INFO);
RECORD_END();
}
/*********************************************************************
*
* SEGGER_SYSVIEW_SendStackInfo()
*
* Function description
* Send a Stack Info Packet, containing TaskId for identification,
* stack base, stack size and stack usage.
*
*
* Parameters
* pInfo - Pointer to stack information to send.
*/
void SEGGER_SYSVIEW_SendStackInfo(const SEGGER_SYSVIEW_STACKINFO *pInfo) {
U8* pPayload;
U8* pPayloadStart;
RECORD_START(SEGGER_SYSVIEW_INFO_SIZE + 4 * SEGGER_SYSVIEW_QUANTA_U32);
//
pPayload = pPayloadStart;
ENCODE_U32(pPayload, SHRINK_ID(pInfo->TaskID));
ENCODE_U32(pPayload, pInfo->StackBase);
ENCODE_U32(pPayload, pInfo->StackSize);
ENCODE_U32(pPayload, pInfo->StackUsage);
RECORD_END();
}
/*********************************************************************
*
* SEGGER_SYSVIEW_SampleData()
*
* Function description
* Send a Data Sample Packet, containing the data Id and the value.
*
*
* Parameters
* pInfo - Pointer to data sample struct to send.
*/
void SEGGER_SYSVIEW_SampleData(const SEGGER_SYSVIEW_DATA_SAMPLE *pInfo) {
U8* pPayload;
U8* pPayloadStart;
RECORD_START(SEGGER_SYSVIEW_INFO_SIZE + 2 * SEGGER_SYSVIEW_QUANTA_U32);
//
pPayload = pPayloadStart;
ENCODE_U32(pPayload, pInfo->ID);
pPayload = _EncodeFloat(pPayload, *(pInfo->pFloat_Value));
_SendPacket(pPayloadStart, pPayload, SYSVIEW_EVTID_DATA_SAMPLE);
RECORD_END();
}
/*********************************************************************
*
* SEGGER_SYSVIEW_SendTaskList()
@@ -2550,63 +2448,6 @@ void SEGGER_SYSVIEW_NameResource(U32 ResourceId, const char* sName) {
RECORD_END();
}
/*********************************************************************
*
* SEGGER_SYSVIEW_RegisterData()
*
* Function description
* Register data to sample the values via SystemView.
*
* Register functions are usually set in the system description
* callback, to ensure it is only sent when the SystemView Application
* is connected.
*
* Parameters
* pInfo - Struct containing all possible properties that can be sent via this registration event.
*/
void SEGGER_SYSVIEW_RegisterData(SEGGER_SYSVIEW_DATA_REGISTER* pInfo) {
U8* pPayload;
U8* pPayloadStart;
RECORD_START(SEGGER_SYSVIEW_INFO_SIZE + 8 * SEGGER_SYSVIEW_QUANTA_U32 + 1 + SEGGER_SYSVIEW_MAX_STRING_LEN);
//
pPayload = pPayloadStart;
ENCODE_U32(pPayload, SYSVIEW_EVTID_EX_REGISTER_DATA);
ENCODE_U32(pPayload, pInfo->ID);
pPayload = _EncodeStr(pPayload, pInfo->sName, SEGGER_SYSVIEW_MAX_STRING_LEN);
if (pInfo->sName != 0) {
ENCODE_U32(pPayload, pInfo->DataType);
ENCODE_U32(pPayload, pInfo->Offset);
ENCODE_U32(pPayload, pInfo->RangeMin);
ENCODE_U32(pPayload, pInfo->RangeMax);
pPayload = _EncodeFloat(pPayload, pInfo->ScalingFactor);
pPayload = _EncodeStr(pPayload, pInfo->sUnit, SEGGER_SYSVIEW_MAX_STRING_LEN);
} else if (pInfo->ScalingFactor != 0) {
ENCODE_U32(pPayload, pInfo->DataType);
ENCODE_U32(pPayload, pInfo->Offset);
ENCODE_U32(pPayload, pInfo->RangeMin);
ENCODE_U32(pPayload, pInfo->RangeMax);
pPayload = _EncodeFloat(pPayload, pInfo->ScalingFactor);
} else if (pInfo->RangeMax != 0) {
ENCODE_U32(pPayload, pInfo->DataType);
ENCODE_U32(pPayload, pInfo->Offset);
ENCODE_U32(pPayload, pInfo->RangeMin);
ENCODE_U32(pPayload, pInfo->RangeMax);
} else if (pInfo->RangeMin != 0) {
ENCODE_U32(pPayload, pInfo->DataType);
ENCODE_U32(pPayload, pInfo->Offset);
ENCODE_U32(pPayload, pInfo->RangeMin);
} else if (pInfo->Offset != 0) {
ENCODE_U32(pPayload, pInfo->DataType);
ENCODE_U32(pPayload, pInfo->Offset);
} else if (pInfo->DataType != 0) {
ENCODE_U32(pPayload, pInfo->DataType);
}
_SendPacket(pPayloadStart, pPayload, SYSVIEW_EVTID_EX);
RECORD_END();
}
/*********************************************************************
*
* SEGGER_SYSVIEW_HeapDefine()
@@ -2979,6 +2820,9 @@ void SEGGER_SYSVIEW_RegisterModule(SEGGER_SYSVIEW_MODULE* pModule) {
_NumModules++;
}
SEGGER_SYSVIEW_SendModule(0);
if (pModule->pfSendModuleDesc) {
pModule->pfSendModuleDesc();
}
SEGGER_SYSVIEW_UNLOCK();
}
@@ -3062,9 +2906,6 @@ void SEGGER_SYSVIEW_SendModule(U8 ModuleId) {
_SendPacket(pPayloadStart, pPayload, SYSVIEW_EVTID_MODULEDESC);
RECORD_END();
}
if (pModule && pModule->pfSendModuleDesc) {
pModule->pfSendModuleDesc();
}
}
}
@@ -3145,39 +2986,6 @@ void SEGGER_SYSVIEW_PrintfHostEx(const char* s, U32 Options, ...) {
#endif
}
/*********************************************************************
*
* SEGGER_SYSVIEW_VPrintfHostEx()
*
* Function description
* Print a string which is formatted on the host by the SystemView Application
* with Additional information.
*
* Parameters
* s - String to be formatted.
* Options - Options for the string. i.e. Log level.
* pParamList - Pointer to the list of arguments for the format string
*
* Additional information
* All format arguments are treated as 32-bit scalar values.
*/
void SEGGER_SYSVIEW_VPrintfHostEx(const char* s, U32 Options, va_list *pParamList) {
#if SEGGER_SYSVIEW_PRINTF_IMPLICIT_FORMAT
int r;
va_list ParamListCopy;
va_copy(ParamListCopy, *pParamList);
r = _VPrintHost(s, Options, pParamList);
if (r == -1) {
_VPrintTarget(s, Options, &ParamListCopy);
}
va_end(ParamListCopy);
#else
_VPrintHost(s, Options, pParamList);
#endif
}
/*********************************************************************
*
* SEGGER_SYSVIEW_PrintfHost()
@@ -3212,37 +3020,6 @@ void SEGGER_SYSVIEW_PrintfHost(const char* s, ...) {
#endif
}
/*********************************************************************
*
* SEGGER_SYSVIEW_VPrintfHost()
*
* Function description
* Print a string which is formatted on the host by the SystemView Application.
*
* Parameters
* s - String to be formatted.
* pParamList - Pointer to the list of arguments for the format string
*
* Additional information
* All format arguments are treated as 32-bit scalar values.
*/
void SEGGER_SYSVIEW_VPrintfHost(const char* s, va_list *pParamList) {
#if SEGGER_SYSVIEW_PRINTF_IMPLICIT_FORMAT
int r;
va_list ParamListCopy;
va_copy(ParamListCopy, *pParamList);
r = _VPrintHost(s, SEGGER_SYSVIEW_LOG, pParamList);
if (r == -1) {
_VPrintTarget(s, SEGGER_SYSVIEW_LOG, &ParamListCopy);
}
va_end(ParamListCopy);
#else
_VPrintHost(s, SEGGER_SYSVIEW_LOG, pParamList);
#endif
}
/*********************************************************************
*
* SEGGER_SYSVIEW_WarnfHost()
@@ -3278,38 +3055,6 @@ void SEGGER_SYSVIEW_WarnfHost(const char* s, ...) {
#endif
}
/*********************************************************************
*
* SEGGER_SYSVIEW_VWarnfHost()
*
* Function description
* Print a warning string which is formatted on the host by
* the SystemView Application.
*
* Parameters
* s - String to be formatted.
* pParamList - Pointer to the list of arguments for the format string
*
* Additional information
* All format arguments are treated as 32-bit scalar values.
*/
void SEGGER_SYSVIEW_VWarnfHost(const char* s, va_list *pParamList) {
#if SEGGER_SYSVIEW_PRINTF_IMPLICIT_FORMAT
int r;
va_list ParamListCopy;
va_copy(ParamListCopy, *pParamList);
r = _VPrintHost(s, SEGGER_SYSVIEW_WARNING, pParamList);
if (r == -1) {
_VPrintTarget(s, SEGGER_SYSVIEW_WARNING, &ParamListCopy);
}
va_end(ParamListCopy);
#else
_VPrintHost(s, SEGGER_SYSVIEW_WARNING, pParamList);
#endif
}
/*********************************************************************
*
* SEGGER_SYSVIEW_ErrorfHost()
@@ -3345,38 +3090,6 @@ void SEGGER_SYSVIEW_ErrorfHost(const char* s, ...) {
#endif
}
/*********************************************************************
*
* SEGGER_SYSVIEW_VErrorfHost()
*
* Function description
* Print a warning string which is formatted on the host by
* the SystemView Application.
*
* Parameters
* s - String to be formatted.
* pParamList - Pointer to the list of arguments for the format string
*
* Additional information
* All format arguments are treated as 32-bit scalar values.
*/
void SEGGER_SYSVIEW_VErrorfHost(const char* s, va_list *pParamList) {
#if SEGGER_SYSVIEW_PRINTF_IMPLICIT_FORMAT
int r;
va_list ParamListCopy;
va_copy(ParamListCopy, *pParamList);
r = _VPrintHost(s, SEGGER_SYSVIEW_ERROR, pParamList);
if (r == -1) {
_VPrintTarget(s, SEGGER_SYSVIEW_ERROR, &ParamListCopy);
}
va_end(ParamListCopy);
#else
_VPrintHost(s, SEGGER_SYSVIEW_ERROR, pParamList);
#endif
}
/*********************************************************************
*
* SEGGER_SYSVIEW_PrintfTargetEx()
@@ -3397,23 +3110,6 @@ void SEGGER_SYSVIEW_PrintfTargetEx(const char* s, U32 Options, ...) {
va_end(ParamList);
}
/*********************************************************************
*
* SEGGER_SYSVIEW_VPrintfTargetEx()
*
* Function description
* Print a string which is formatted on the target before sent to
* the host with Additional information.
*
* Parameters
* s - String to be formatted.
* Options - Options for the string. i.e. Log level.
* pParamList - Pointer to the list of arguments for the format string
*/
void SEGGER_SYSVIEW_VPrintfTargetEx(const char* s, U32 Options, va_list *pParamList) {
_VPrintTarget(s, Options, pParamList);
}
/*********************************************************************
*
* SEGGER_SYSVIEW_PrintfTarget()
@@ -3433,22 +3129,6 @@ void SEGGER_SYSVIEW_PrintfTarget(const char* s, ...) {
va_end(ParamList);
}
/*********************************************************************
*
* SEGGER_SYSVIEW_VPrintfTarget()
*
* Function description
* Print a string which is formatted on the target before sent to
* the host.
*
* Parameters
* s - String to be formatted.
* pParamList - Pointer to the list of arguments for the format string
*/
void SEGGER_SYSVIEW_VPrintfTarget(const char* s, va_list* pParamList) {
_VPrintTarget(s, SEGGER_SYSVIEW_LOG, pParamList);
}
/*********************************************************************
*
* SEGGER_SYSVIEW_WarnfTarget()
@@ -3468,22 +3148,6 @@ void SEGGER_SYSVIEW_WarnfTarget(const char* s, ...) {
va_end(ParamList);
}
/*********************************************************************
*
* SEGGER_SYSVIEW_VWarnfTarget()
*
* Function description
* Print a warning string which is formatted on the target before
* sent to the host.
*
* Parameters
* s - String to be formatted.
* pParamList - Pointer to the list of arguments for the format string
*/
void SEGGER_SYSVIEW_VWarnfTarget(const char* s, va_list* pParamList) {
_VPrintTarget(s, SEGGER_SYSVIEW_WARNING, pParamList);
}
/*********************************************************************
*
* SEGGER_SYSVIEW_ErrorfTarget()
@@ -3502,22 +3166,6 @@ void SEGGER_SYSVIEW_ErrorfTarget(const char* s, ...) {
_VPrintTarget(s, SEGGER_SYSVIEW_ERROR, &ParamList);
va_end(ParamList);
}
/*********************************************************************
*
* SEGGER_SYSVIEW_VErrorfTarget()
*
* Function description
* Print an error string which is formatted on the target before
* sent to the host.
*
* Parameters
* s - String to be formatted.
* pParamList - Pointer to the list of arguments for the format string
*/
void SEGGER_SYSVIEW_VErrorfTarget(const char* s, va_list* pParamList) {
_VPrintTarget(s, SEGGER_SYSVIEW_ERROR, pParamList);
}
#endif // SEGGER_SYSVIEW_EXCLUDE_PRINTF
/*********************************************************************

View File

@@ -3,14 +3,14 @@
*
* SPDX-License-Identifier: BSD-1-Clause
*
* SPDX-FileContributor: 2023-2024 Espressif Systems (Shanghai) CO LTD
* SPDX-FileContributor: 2023 Espressif Systems (Shanghai) CO LTD
*/
/*********************************************************************
* SEGGER Microcontroller GmbH *
* The Embedded Experts *
**********************************************************************
* *
* (c) 1995 - 2024 SEGGER Microcontroller GmbH *
* (c) 1995 - 2021 SEGGER Microcontroller GmbH *
* *
* www.segger.com Support: support@segger.com *
* *
@@ -49,13 +49,13 @@
* *
**********************************************************************
* *
* SystemView version: 3.56 *
* SystemView version: 3.42 *
* *
**********************************************************************
-------------------------- END-OF-HEADER -----------------------------
File : SEGGER_SYSVIEW.h
Purpose : System visualization API.
Revision: $Rev: 28768 $
Revision: $Rev: 28237 $
*/
#ifndef SEGGER_SYSVIEW_H
@@ -123,7 +123,7 @@ extern "C" {
#define SYSVIEW_EVTID_TIMER_EXIT 20
#define SYSVIEW_EVTID_STACK_INFO 21
#define SYSVIEW_EVTID_MODULEDESC 22
#define SYSVIEW_EVTID_DATA_SAMPLE 23
#define SYSVIEW_EVTID_INIT 24
#define SYSVIEW_EVTID_NAME_RESOURCE 25
#define SYSVIEW_EVTID_PRINT_FORMATTED 26
@@ -135,13 +135,12 @@ extern "C" {
//
// SystemView extended events. Sent with ID 31.
//
#define SYSVIEW_EVTID_EX_MARK 0
#define SYSVIEW_EVTID_EX_NAME_MARKER 1
#define SYSVIEW_EVTID_EX_HEAP_DEFINE 2
#define SYSVIEW_EVTID_EX_HEAP_ALLOC 3
#define SYSVIEW_EVTID_EX_HEAP_ALLOC_EX 4
#define SYSVIEW_EVTID_EX_HEAP_FREE 5
#define SYSVIEW_EVTID_EX_REGISTER_DATA 6
#define SYSVIEW_EVTID_EX_MARK 0
#define SYSVIEW_EVTID_EX_NAME_MARKER 1
#define SYSVIEW_EVTID_EX_HEAP_DEFINE 2
#define SYSVIEW_EVTID_EX_HEAP_ALLOC 3
#define SYSVIEW_EVTID_EX_HEAP_ALLOC_EX 4
#define SYSVIEW_EVTID_EX_HEAP_FREE 5
//
// Event masks to disable/enable events
//
@@ -168,7 +167,7 @@ extern "C" {
#define SYSVIEW_EVTMASK_TIMER_EXIT (1 << SYSVIEW_EVTID_TIMER_EXIT)
#define SYSVIEW_EVTMASK_STACK_INFO (1 << SYSVIEW_EVTID_STACK_INFO)
#define SYSVIEW_EVTMASK_MODULEDESC (1 << SYSVIEW_EVTID_MODULEDESC)
#define SYSVIEW_EVTMASK_DATA_SAMPLE (1 << SYSVIEW_EVTID_DATA_SAMPLE)
#define SYSVIEW_EVTMASK_INIT (1 << SYSVIEW_EVTID_INIT)
#define SYSVIEW_EVTMASK_NAME_RESOURCE (1 << SYSVIEW_EVTID_NAME_RESOURCE)
#define SYSVIEW_EVTMASK_PRINT_FORMATTED (1 << SYSVIEW_EVTID_PRINT_FORMATTED)
@@ -203,42 +202,8 @@ typedef struct {
U32 Prio;
U32 StackBase;
U32 StackSize;
U32 StackUsage;
} SEGGER_SYSVIEW_TASKINFO;
typedef struct {
U32 TaskID;
U32 StackBase;
U32 StackSize;
U32 StackUsage;
} SEGGER_SYSVIEW_STACKINFO;
typedef struct {
U32 ID;
union {
U32* pU32_Value;
I32* pI32_Value;
float* pFloat_Value;
};
} SEGGER_SYSVIEW_DATA_SAMPLE;
typedef enum {
SEGGER_SYSVIEW_TYPE_U32 = 0,
SEGGER_SYSVIEW_TYPE_I32 = 1,
SEGGER_SYSVIEW_TYPE_FLOAT = 2
} SEGGER_SYSVIEW_DATA_TYPE;
typedef struct {
U32 ID;
SEGGER_SYSVIEW_DATA_TYPE DataType;
I32 Offset;
I32 RangeMin;
I32 RangeMax;
float ScalingFactor;
const char* sName;
const char* sUnit;
} SEGGER_SYSVIEW_DATA_REGISTER;
typedef struct SEGGER_SYSVIEW_MODULE_STRUCT SEGGER_SYSVIEW_MODULE;
struct SEGGER_SYSVIEW_MODULE_STRUCT {
@@ -282,8 +247,8 @@ EXTERN unsigned int SEGGER_SYSVIEW_InterruptId;
*/
typedef struct {
U64 (*pfGetTime) (void);
void (*pfSendTaskList) (void);
U64 (*pfGetTime) (void);
void (*pfSendTaskList) (void);
} SEGGER_SYSVIEW_OS_API;
/*********************************************************************
@@ -297,13 +262,9 @@ void SEGGER_SYSVIEW_Stop (void);
void SEGGER_SYSVIEW_GetSysDesc (void);
void SEGGER_SYSVIEW_SendTaskList (void);
void SEGGER_SYSVIEW_SendTaskInfo (const SEGGER_SYSVIEW_TASKINFO* pInfo);
void SEGGER_SYSVIEW_SendStackInfo (const SEGGER_SYSVIEW_STACKINFO* pInfo);
void SEGGER_SYSVIEW_SendSysDesc (const char* sSysDesc);
int SEGGER_SYSVIEW_IsStarted (void);
int SEGGER_SYSVIEW_GetChannelID (void);
void SEGGER_SYSVIEW_SampleData (const SEGGER_SYSVIEW_DATA_SAMPLE *pInfo);
// Checks whether tracing has been started
U8 SEGGER_SYSVIEW_Started(void);
@@ -350,7 +311,6 @@ void SEGGER_SYSVIEW_HeapAllocEx (void* pHeap, void* pUserData,
void SEGGER_SYSVIEW_HeapFree (void* pHeap, void* pUserData);
void SEGGER_SYSVIEW_NameResource (U32 ResourceId, const char* sName);
void SEGGER_SYSVIEW_RegisterData ( SEGGER_SYSVIEW_DATA_REGISTER* pInfo);
int SEGGER_SYSVIEW_SendPacket (U8* pPacket, U8* pPayloadEnd, unsigned int EventId);
@@ -381,21 +341,13 @@ void SEGGER_SYSVIEW_SendNumModules (void);
*/
#ifndef SEGGER_SYSVIEW_EXCLUDE_PRINTF // Define in project to avoid warnings about variable parameter list
void SEGGER_SYSVIEW_PrintfHostEx (const char* s, U32 Options, ...);
void SEGGER_SYSVIEW_VPrintfHostEx (const char* s, U32 Options, va_list* pParamList);
void SEGGER_SYSVIEW_PrintfTargetEx (const char* s, U32 Options, ...);
void SEGGER_SYSVIEW_VPrintfTargetEx (const char* s, U32 Options, va_list* pParamList);
void SEGGER_SYSVIEW_PrintfHost (const char* s, ...);
void SEGGER_SYSVIEW_VPrintfHost (const char* s, va_list* pParamList);
void SEGGER_SYSVIEW_PrintfTarget (const char* s, ...);
void SEGGER_SYSVIEW_VPrintfTarget (const char* s, va_list* pParamList);
void SEGGER_SYSVIEW_WarnfHost (const char* s, ...);
void SEGGER_SYSVIEW_VWarnfHost (const char* s, va_list* pParamList);
void SEGGER_SYSVIEW_WarnfTarget (const char* s, ...);
void SEGGER_SYSVIEW_VWarnfTarget (const char* s, va_list* pParamList);
void SEGGER_SYSVIEW_ErrorfHost (const char* s, ...);
void SEGGER_SYSVIEW_VErrorfHost (const char* s, va_list* pParamList);
void SEGGER_SYSVIEW_ErrorfTarget (const char* s, ...);
void SEGGER_SYSVIEW_VErrorfTarget (const char* s, va_list* pParamList);
#endif
void SEGGER_SYSVIEW_Print (const char* s);

View File

@@ -3,14 +3,14 @@
*
* SPDX-License-Identifier: BSD-1-Clause
*
* SPDX-FileContributor: 2023-2024 Espressif Systems (Shanghai) CO LTD
* SPDX-FileContributor: 2023 Espressif Systems (Shanghai) CO LTD
*/
/*********************************************************************
* SEGGER Microcontroller GmbH *
* The Embedded Experts *
**********************************************************************
* *
* (c) 1995 - 2024 SEGGER Microcontroller GmbH *
* (c) 1995 - 2021 SEGGER Microcontroller GmbH *
* *
* www.segger.com Support: support@segger.com *
* *
@@ -49,7 +49,7 @@
* *
**********************************************************************
* *
* SystemView version: 3.56 *
* SystemView version: 3.42 *
* *
**********************************************************************
-------------------------- END-OF-HEADER -----------------------------
@@ -72,8 +72,6 @@ Revision: $Rev: 26230 $
#include "SEGGER_SYSVIEW_Conf.h"
#include "SEGGER_RTT_Conf.h"
#include "esp_assert.h"
#ifdef __cplusplus
extern "C" {
#endif
@@ -372,14 +370,12 @@ extern "C" {
#define SEGGER_SYSVIEW_MAX_STRING_LEN 128
#endif
ESP_STATIC_ASSERT(SEGGER_SYSVIEW_MAX_STRING_LEN < 255, "SEGGER Sysview string length must be less than 255.");
/*********************************************************************
*
* Define: SEGGER_SYSVIEW_SUPPORT_LONG_ID
*
* Description
* It set, support encoding Evend Ids longer than 14 bit.
* It set, support enconding Evend Ids longer than 14 bit.
* Default
* 1
*/
@@ -392,7 +388,7 @@ ESP_STATIC_ASSERT(SEGGER_SYSVIEW_MAX_STRING_LEN < 255, "SEGGER Sysview string le
* Define: SEGGER_SYSVIEW_SUPPORT_LONG_DATA
*
* Description
* It set, support encoding event data longer than 14 bit.
* It set, support enconding event data longer than 14 bit.
* Default
* 0
*/
@@ -521,7 +517,7 @@ ESP_STATIC_ASSERT(SEGGER_SYSVIEW_MAX_STRING_LEN < 255, "SEGGER Sysview string le
* Define: SEGGER_SYSVIEW_SYNC_PERIOD_SHIFT
*
* Description
* Configure how frequently synchronization is sent in post-mortem
* Configure how frequently syncronization is sent in post-mortem
* mode.
* Default
* 8: (1 << 8) = Every 256 Events.

View File

@@ -8,7 +8,7 @@
* The Embedded Experts *
**********************************************************************
* *
* (c) 1995 - 2024 SEGGER Microcontroller GmbH *
* (c) 1995 - 2021 SEGGER Microcontroller GmbH *
* *
* www.segger.com Support: support@segger.com *
* *
@@ -47,7 +47,7 @@
* *
**********************************************************************
* *
* SystemView version: 3.56 *
* SystemView version: 3.42 *
* *
**********************************************************************
-------------------------- END-OF-HEADER -----------------------------

View File

@@ -1,5 +1,5 @@
name: 'SystemView'
version: '3.56'
version: '3.42'
cpe: cpe:2.3:a:segger:systemview:{}:*:*:*:*:*:*:*
supplier: 'Organization: Espressif Systems (Shanghai) CO LTD'
originator: 'Organization: SEGGER Microcontroller GmbH'

View File

@@ -108,7 +108,7 @@ static void _cbSendTaskList(void) {
* Called from SystemView when asked by the host, returns the
* current system time in micro seconds.
*/
static U64 _cbGetTime(void) {
__attribute__((unused)) static U64 _cbGetTime(void) {
U64 Time;
Time = xTaskGetTickCountFromISR();
@@ -260,7 +260,10 @@ void SYSVIEW_SendTaskInfo(U32 TaskID, const char* sName, unsigned Prio, U32 Stac
*/
// Callbacks provided to SYSTEMVIEW by FreeRTOS
const SEGGER_SYSVIEW_OS_API SYSVIEW_X_OS_TraceAPI = {
_cbGetTime,
/* Callback _cbGetTime locks xKernelLock inside xTaskGetTickCountFromISR, this can cause deadlock on multi-core.
To prevent deadlock, always lock xKernelLock before s_sys_view_lock. Omitting the callback here results in sending
SYSVIEW_EVTID_SYSTIME_CYCLES events instead of SYSVIEW_EVTID_SYSTIME_US */
NULL,
_cbSendTaskList,
};

View File

@@ -8,6 +8,6 @@ components/app_trace/test_apps:
- driver
- esp_hw_support
disable:
- if: IDF_TARGET in ["esp32c5", "esp32c61", "esp32h21", "esp32h4"]
- if: IDF_TARGET in ["esp32c5", "esp32c61"]
temporary: true
reason: not support yet # TODO: [ESP32C5] IDF-8705, [ESP32C61] IDF-9306, [ESP32H21] IDF-11539 [ESP32H4] IDF-12325
reason: not support yet # TODO: [ESP32C5] IDF-8705, [ESP32C61] IDF-9306

View File

@@ -31,19 +31,13 @@
#include "esp_attr.h"
#include "esp_bootloader_desc.h"
#include "esp_flash.h"
#include "esp_flash_internal.h"
#define SUB_TYPE_ID(i) (i & 0x0F)
#define ALIGN_UP(num, align) (((num) + ((align) - 1)) & ~((align) - 1))
/* Partial_data is word aligned so no reallocation is necessary for encrypted flash write */
typedef struct ota_ops_entry_ {
uint32_t handle;
struct {
const esp_partition_t *staging; /*!< New image will be downloaded in this staging partition. */
const esp_partition_t *final; /*!< Final destination partition which is intended to be updated. Its type/subtype shall be used for verification. */
bool finalize_with_copy; /*!< Flag to copy the image from staging partition to the final partition at the end of OTA update */
} partition;
const esp_partition_t *part;
bool need_erase;
uint32_t wrote_size;
uint8_t partial_bytes;
@@ -59,8 +53,6 @@ static uint32_t s_ota_ops_last_handle = 0;
const static char *TAG = "esp_ota_ops";
static ota_ops_entry_t *get_ota_ops_entry(esp_ota_handle_t handle);
/* Return true if this is an OTA app partition */
static bool is_ota_partition(const esp_partition_t *p)
{
@@ -129,9 +121,7 @@ static ota_ops_entry_t* esp_ota_init_entry(const esp_partition_t *partition)
LIST_INSERT_HEAD(&s_ota_ops_entries_head, new_entry, entries);
new_entry->partition.staging = partition;
new_entry->partition.final = partition;
new_entry->partition.finalize_with_copy = false;
new_entry->part = partition;
new_entry->handle = ++s_ota_ops_last_handle;
return new_entry;
@@ -141,6 +131,8 @@ static ota_ops_entry_t* esp_ota_init_entry(const esp_partition_t *partition)
esp_err_t esp_ota_begin(const esp_partition_t *partition, size_t image_size, esp_ota_handle_t *out_handle)
{
ota_ops_entry_t *new_entry;
esp_err_t ret = ESP_OK;
if ((partition == NULL) || (out_handle == NULL)) {
return ESP_ERR_INVALID_ARG;
}
@@ -150,27 +142,24 @@ esp_err_t esp_ota_begin(const esp_partition_t *partition, size_t image_size, esp
return ESP_ERR_NOT_FOUND;
}
if (partition->type == ESP_PARTITION_TYPE_APP) {
// The staging partition cannot be of type Factory, but the final partition can be.
if (!is_ota_partition(partition)) {
return ESP_ERR_INVALID_ARG;
}
if (!is_ota_partition(partition)) {
return ESP_ERR_INVALID_ARG;
}
const esp_partition_t* running_partition = esp_ota_get_running_partition();
if (partition == running_partition) {
return ESP_ERR_OTA_PARTITION_CONFLICT;
}
const esp_partition_t* running_partition = esp_ota_get_running_partition();
if (partition == running_partition) {
return ESP_ERR_OTA_PARTITION_CONFLICT;
}
#ifdef CONFIG_BOOTLOADER_APP_ROLLBACK_ENABLE
esp_ota_img_states_t ota_state_running_part;
if (esp_ota_get_state_partition(running_partition, &ota_state_running_part) == ESP_OK) {
if (ota_state_running_part == ESP_OTA_IMG_PENDING_VERIFY) {
ESP_LOGE(TAG, "Running app has not confirmed state (ESP_OTA_IMG_PENDING_VERIFY)");
return ESP_ERR_OTA_ROLLBACK_INVALID_STATE;
}
esp_ota_img_states_t ota_state_running_part;
if (esp_ota_get_state_partition(running_partition, &ota_state_running_part) == ESP_OK) {
if (ota_state_running_part == ESP_OTA_IMG_PENDING_VERIFY) {
ESP_LOGE(TAG, "Running app has not confirmed state (ESP_OTA_IMG_PENDING_VERIFY)");
return ESP_ERR_OTA_ROLLBACK_INVALID_STATE;
}
#endif
}
#endif
new_entry = esp_ota_init_entry(partition);
if (new_entry == NULL) {
@@ -179,33 +168,19 @@ esp_err_t esp_ota_begin(const esp_partition_t *partition, size_t image_size, esp
new_entry->need_erase = (image_size == OTA_WITH_SEQUENTIAL_WRITES);
*out_handle = new_entry->handle;
if (partition->type == ESP_PARTITION_TYPE_BOOTLOADER) {
esp_image_bootloader_offset_set(partition->address);
}
if (partition->type == ESP_PARTITION_TYPE_BOOTLOADER || partition->type == ESP_PARTITION_TYPE_PARTITION_TABLE) {
esp_flash_set_dangerous_write_protection(esp_flash_default_chip, false);
}
if (image_size != OTA_WITH_SEQUENTIAL_WRITES) {
// If input image size is 0 or OTA_SIZE_UNKNOWN, erase entire partition
size_t erase_size;
if ((image_size == 0) || (image_size == OTA_SIZE_UNKNOWN)) {
erase_size = partition->size;
ret = esp_partition_erase_range(partition, 0, partition->size);
} else {
erase_size = ALIGN_UP(image_size, partition->erase_size);
const int aligned_erase_size = (image_size + partition->erase_size - 1) & ~(partition->erase_size - 1);
ret = esp_partition_erase_range(partition, 0, aligned_erase_size);
}
esp_err_t err = esp_partition_erase_range(partition, 0, erase_size);
if (err != ESP_OK) {
return err;
if (ret != ESP_OK) {
return ret;
}
}
#ifdef CONFIG_BOOTLOADER_APP_ROLLBACK_ENABLE
if (is_ota_partition(partition)) {
esp_ota_invalidate_inactive_ota_data_slot();
}
#endif
return ESP_OK;
}
@@ -226,11 +201,9 @@ esp_err_t esp_ota_resume(const esp_partition_t *partition, const size_t erase_si
return ESP_ERR_NOT_FOUND;
}
if (partition->type == ESP_PARTITION_TYPE_APP) {
// The staging partition cannot be of type Factory, but the final partition can be.
if (!is_ota_partition(partition)) {
return ESP_ERR_INVALID_ARG;
}
// The staging partition cannot be of type Factory, but the final partition can be.
if (!is_ota_partition(partition)) {
return ESP_ERR_INVALID_ARG;
}
const esp_partition_t* running_partition = esp_ota_get_running_partition();
@@ -243,13 +216,6 @@ esp_err_t esp_ota_resume(const esp_partition_t *partition, const size_t erase_si
return ESP_ERR_NO_MEM;
}
if (partition->type == ESP_PARTITION_TYPE_BOOTLOADER) {
esp_image_bootloader_offset_set(partition->address);
}
if (partition->type == ESP_PARTITION_TYPE_BOOTLOADER || partition->type == ESP_PARTITION_TYPE_PARTITION_TABLE) {
esp_flash_set_dangerous_write_protection(esp_flash_default_chip, false);
}
new_entry->ota_resumption = true;
new_entry->wrote_size = image_offset;
new_entry->need_erase = (erase_size == OTA_WITH_SEQUENTIAL_WRITES);
@@ -257,41 +223,6 @@ esp_err_t esp_ota_resume(const esp_partition_t *partition, const size_t erase_si
return ESP_OK;
}
esp_err_t esp_ota_set_final_partition(esp_ota_handle_t handle, const esp_partition_t *final, bool finalize_with_copy)
{
ota_ops_entry_t *it = get_ota_ops_entry(handle);
if (final == NULL) {
return ESP_ERR_INVALID_ARG;
}
if (it == NULL) {
return ESP_ERR_NOT_FOUND;
}
// If OTA resumption is enabled, it->wrote_size may already contain the size of previously written data.
// Ensure that wrote_size is zero only when OTA resumption is disabled, as any non-zero value in this case
// indicates an invalid state.
if (!it->ota_resumption && it->wrote_size != 0) {
return ESP_ERR_INVALID_STATE;
}
if (it->partition.staging != final) {
const esp_partition_t* final_partition = esp_partition_verify(final);
if (final_partition == NULL) {
return ESP_ERR_NOT_FOUND;
}
ESP_LOGI(TAG,"Staging partition - <%s>. Final partition - <%s>.", it->partition.staging->label, final_partition->label);
it->partition.final = final_partition;
it->partition.finalize_with_copy = finalize_with_copy;
if (final_partition->type == ESP_PARTITION_TYPE_BOOTLOADER) {
esp_image_bootloader_offset_set(it->partition.staging->address);
}
if (final_partition->type == ESP_PARTITION_TYPE_BOOTLOADER || final_partition->type == ESP_PARTITION_TYPE_PARTITION_TABLE) {
esp_flash_set_dangerous_write_protection(esp_flash_default_chip, false);
}
}
return ESP_OK;
}
esp_err_t esp_ota_write(esp_ota_handle_t handle, const void *data, size_t size)
{
const uint8_t *data_bytes = (const uint8_t *)data;
@@ -313,33 +244,23 @@ esp_err_t esp_ota_write(esp_ota_handle_t handle, const void *data, size_t size)
if (it->handle == handle) {
if (it->need_erase) {
// must erase the partition before writing to it
uint32_t first_sector = it->wrote_size / it->partition.staging->erase_size; // first affected sector
uint32_t last_sector = (it->wrote_size + size - 1) / it->partition.staging->erase_size; // last affected sector
uint32_t first_sector = it->wrote_size / it->part->erase_size; // first affected sector
uint32_t last_sector = (it->wrote_size + size - 1) / it->part->erase_size; // last affected sector
ret = ESP_OK;
if ((it->wrote_size % it->partition.staging->erase_size) == 0) {
ret = esp_partition_erase_range(it->partition.staging, it->wrote_size, ((last_sector - first_sector) + 1) * it->partition.staging->erase_size);
if ((it->wrote_size % it->part->erase_size) == 0) {
ret = esp_partition_erase_range(it->part, it->wrote_size, ((last_sector - first_sector) + 1) * it->part->erase_size);
} else if (first_sector != last_sector) {
ret = esp_partition_erase_range(it->partition.staging, (first_sector + 1) * it->partition.staging->erase_size, (last_sector - first_sector) * it->partition.staging->erase_size);
ret = esp_partition_erase_range(it->part, (first_sector + 1) * it->part->erase_size, (last_sector - first_sector) * it->part->erase_size);
}
if (ret != ESP_OK) {
return ret;
}
}
if (it->wrote_size == 0 && it->partial_bytes == 0 && size > 0) {
if (it->partition.final->type == ESP_PARTITION_TYPE_APP || it->partition.final->type == ESP_PARTITION_TYPE_BOOTLOADER) {
if (data_bytes[0] != ESP_IMAGE_HEADER_MAGIC) {
ESP_LOGE(TAG, "OTA image has invalid magic byte (expected 0xE9, saw 0x%02x)", data_bytes[0]);
return ESP_ERR_OTA_VALIDATE_FAILED;
}
} else if (it->partition.final->type == ESP_PARTITION_TYPE_PARTITION_TABLE) {
if (*(uint16_t*)data_bytes != (uint16_t)ESP_PARTITION_MAGIC) {
ESP_LOGE(TAG, "Partition table image has invalid magic word (expected 0x50AA, saw 0x%04x)", *(uint16_t*)data_bytes);
return ESP_ERR_OTA_VALIDATE_FAILED;
}
}
if (it->wrote_size == 0 && it->partial_bytes == 0 && size > 0 && data_bytes[0] != ESP_IMAGE_HEADER_MAGIC) {
ESP_LOGE(TAG, "OTA image has invalid magic byte (expected 0xE9, saw 0x%02x)", data_bytes[0]);
return ESP_ERR_OTA_VALIDATE_FAILED;
}
if (esp_flash_encryption_enabled()) {
@@ -355,7 +276,7 @@ esp_err_t esp_ota_write(esp_ota_handle_t handle, const void *data, size_t size)
return ESP_OK; /* nothing to write yet, just filling buffer */
}
/* write 16 byte to partition */
ret = esp_partition_write(it->partition.staging, it->wrote_size, it->partial_data, 16);
ret = esp_partition_write(it->part, it->wrote_size, it->partial_data, 16);
if (ret != ESP_OK) {
return ret;
}
@@ -374,7 +295,7 @@ esp_err_t esp_ota_write(esp_ota_handle_t handle, const void *data, size_t size)
}
}
ret = esp_partition_write(it->partition.staging, it->wrote_size, data_bytes, size);
ret = esp_partition_write(it->part, it->wrote_size, data_bytes, size);
if(ret == ESP_OK){
it->wrote_size += size;
}
@@ -411,7 +332,7 @@ esp_err_t esp_ota_write_with_offset(esp_ota_handle_t handle, const void *data, s
ESP_LOGE(TAG, "Size should be 16byte aligned for flash encryption case");
return ESP_ERR_INVALID_ARG;
}
ret = esp_partition_write(it->partition.staging, offset, data_bytes, size);
ret = esp_partition_write(it->part, offset, data_bytes, size);
if (ret == ESP_OK) {
it->wrote_size += size;
}
@@ -447,34 +368,6 @@ esp_err_t esp_ota_abort(esp_ota_handle_t handle)
return ESP_OK;
}
static esp_err_t ota_verify_partition(ota_ops_entry_t *ota_ops)
{
esp_err_t ret = ESP_OK;
if (ota_ops->partition.final->type == ESP_PARTITION_TYPE_APP || ota_ops->partition.final->type == ESP_PARTITION_TYPE_BOOTLOADER) {
esp_image_metadata_t data;
const esp_partition_pos_t part_pos = {
.offset = ota_ops->partition.staging->address,
.size = ota_ops->partition.staging->size,
};
if (esp_image_verify(ESP_IMAGE_VERIFY, &part_pos, &data) != ESP_OK) {
return ESP_ERR_OTA_VALIDATE_FAILED;
}
} else if (ota_ops->partition.final->type == ESP_PARTITION_TYPE_PARTITION_TABLE) {
const esp_partition_info_t *partition_table = NULL;
esp_partition_mmap_handle_t partition_table_map;
ret = esp_partition_mmap(ota_ops->partition.staging, 0, ESP_PARTITION_TABLE_MAX_LEN, ESP_PARTITION_MMAP_DATA, (const void**)&partition_table, &partition_table_map);
if (ret == ESP_OK) {
int num_partitions;
if (esp_partition_table_verify(partition_table, true, &num_partitions) != ESP_OK) {
esp_partition_munmap(partition_table_map);
return ESP_ERR_OTA_VALIDATE_FAILED;
}
esp_partition_munmap(partition_table_map);
}
}
return ret;
}
esp_err_t esp_ota_end(esp_ota_handle_t handle)
{
ota_ops_entry_t *it = get_ota_ops_entry(handle);
@@ -494,7 +387,7 @@ esp_err_t esp_ota_end(esp_ota_handle_t handle)
if (it->partial_bytes > 0) {
/* Write out last 16 bytes, if necessary */
ret = esp_partition_write(it->partition.staging, it->wrote_size, it->partial_data, 16);
ret = esp_partition_write(it->part, it->wrote_size, it->partial_data, 16);
if (ret != ESP_OK) {
ret = ESP_ERR_INVALID_STATE;
goto cleanup;
@@ -503,21 +396,18 @@ esp_err_t esp_ota_end(esp_ota_handle_t handle)
it->partial_bytes = 0;
}
ret = ota_verify_partition(it);
if (ret != ESP_OK) {
ESP_LOGE(TAG, "New image failed verification");
} else {
if (it->partition.finalize_with_copy) {
ESP_LOGI(TAG, "Copy from <%s> staging partition to <%s>...", it->partition.staging->label, it->partition.final->label);
ret = esp_partition_copy(it->partition.final, 0, it->partition.staging, 0, it->partition.final->size);
}
esp_image_metadata_t data;
const esp_partition_pos_t part_pos = {
.offset = it->part->address,
.size = it->part->size,
};
if (esp_image_verify(ESP_IMAGE_VERIFY, &part_pos, &data) != ESP_OK) {
ret = ESP_ERR_OTA_VALIDATE_FAILED;
goto cleanup;
}
cleanup:
if (it->partition.final->type == ESP_PARTITION_TYPE_BOOTLOADER) {
// In esp_ota_begin, bootloader offset was updated, here we return it to default.
esp_image_bootloader_offset_set(ESP_PRIMARY_BOOTLOADER_OFFSET);
}
LIST_REMOVE(it, entries);
free(it);
return ret;
@@ -932,7 +822,8 @@ static esp_err_t esp_ota_current_ota_is_workable(bool valid)
if (err != ESP_OK) {
return err;
}
ESP_LOGI(TAG, "Rollback to previously worked partition.");
ESP_LOGI(TAG, "Rollback to previously worked partition. Restart.");
esp_restart();
}
} else {
ESP_LOGE(TAG, "Running firmware is factory");
@@ -946,18 +837,9 @@ esp_err_t esp_ota_mark_app_valid_cancel_rollback(void)
return esp_ota_current_ota_is_workable(true);
}
esp_err_t esp_ota_mark_app_invalid_rollback(void)
{
return esp_ota_current_ota_is_workable(false);
}
esp_err_t esp_ota_mark_app_invalid_rollback_and_reboot(void)
{
esp_err_t ret = esp_ota_mark_app_invalid_rollback();
if (ret == ESP_OK) {
esp_restart();
}
return ret;
return esp_ota_current_ota_is_workable(false);
}
static bool check_invalid_otadata (const esp_ota_select_entry_t *s) {
@@ -1038,7 +920,7 @@ esp_err_t esp_ota_get_state_partition(const esp_partition_t *partition, esp_ota_
return ESP_OK;
}
static esp_err_t erase_last_boot_app_partition(bool skip_app_part_erase)
esp_err_t esp_ota_erase_last_boot_app_partition(void)
{
esp_ota_select_entry_t otadata[2];
const esp_partition_t* ota_data_partition = read_otadata(otadata);
@@ -1070,15 +952,13 @@ static esp_err_t erase_last_boot_app_partition(bool skip_app_part_erase)
return ESP_FAIL;
}
if (!skip_app_part_erase) {
esp_err_t err = esp_partition_erase_range(last_boot_app_partition_from_otadata, 0, last_boot_app_partition_from_otadata->size);
if (err != ESP_OK) {
return err;
}
esp_err_t err = esp_partition_erase_range(last_boot_app_partition_from_otadata, 0, last_boot_app_partition_from_otadata->size);
if (err != ESP_OK) {
return err;
}
int sec_id = inactive_otadata;
esp_err_t err = esp_partition_erase_range(ota_data_partition, sec_id * ota_data_partition->erase_size, ota_data_partition->erase_size);
err = esp_partition_erase_range(ota_data_partition, sec_id * ota_data_partition->erase_size, ota_data_partition->erase_size);
if (err != ESP_OK) {
return err;
}
@@ -1086,16 +966,6 @@ static esp_err_t erase_last_boot_app_partition(bool skip_app_part_erase)
return ESP_OK;
}
esp_err_t esp_ota_erase_last_boot_app_partition(void)
{
return erase_last_boot_app_partition(false);
}
esp_err_t esp_ota_invalidate_inactive_ota_data_slot(void)
{
return erase_last_boot_app_partition(true);
}
#if SOC_SUPPORT_SECURE_BOOT_REVOKE_KEY && CONFIG_SECURE_BOOT_V2_ENABLED
// Validates the image at "app_pos" with the secure boot digests other than "revoked_key_index"

View File

@@ -82,12 +82,7 @@ int esp_ota_get_app_elf_sha256(char* dst, size_t size) __attribute__((deprecated
* it will lead to the ESP_ERR_OTA_ROLLBACK_INVALID_STATE error. Confirm the running app before to run download a new app,
* use esp_ota_mark_app_valid_cancel_rollback() function for it (this should be done as early as possible when you first download a new application).
*
* Note: Rollback is applicable only for app type partitions.
* Note: For Rollback - The OTA data slot corresponding to the last boot application partition will be invalidated.
*
* @param partition Pointer to info for partition which will receive the OTA update. Required.
* This is considered as the staging partition (where OTA is downloaded), be default this also considered as the final partition which supposed to be updated.
* The final partition can be overwritten using esp_ota_set_final_partition() after calling esp_ota_begin() to relocate contents to the final destination partition.
* @param partition Pointer to info for partition which will receive the OTA update. Required.
* @param image_size Size of new OTA app image. Partition will be erased in order to receive this size of image. If 0 or OTA_SIZE_UNKNOWN, the entire partition is erased.
* @param out_handle On success, returns a handle which should be used for subsequent esp_ota_write() and esp_ota_end() calls.
@@ -130,31 +125,6 @@ esp_err_t esp_ota_begin(const esp_partition_t* partition, size_t image_size, esp
*/
esp_err_t esp_ota_resume(const esp_partition_t *partition, const size_t erase_size, const size_t image_offset, esp_ota_handle_t *out_handle);
/**
* @brief Set the final destination partition for OTA update
*
* This function configures the specified final partition as the destination for the OTA update.
* It also allows setting a flag to indicate if the image should be copied from the staging
* partition to the final partition after the OTA update completes. Otherwise, copying will need
* to be handled by custom code using esp_partition_copy().
*
* @note This can be called after esp_ota_begin() and before the OTA update has started (before esp_ota_write()).
*
* @param handle OTA update handle obtained from esp_ota_begin().
* @param final Pointer to the final destination partition where the new image will be verified and potentially finalized.
* This partition must not be NULL.
* @param finalize_with_copy Boolean flag indicating if the downloaded image should be copied
* from the staging partition to the final partition upon completion.
* Set to False if you intend to perform the final copy process manually later.
*
* @return
* - ESP_OK: final destination partition set successfully.
* - ESP_ERR_INVALID_STATE: Once the OTA update has started, changing the final destination partition is prohibited.
* - ESP_ERR_INVALID_ARG: Invalid arguments were passed (e.g., final partition is NULL).
* - ESP_ERR_NOT_FOUND: OTA handle not found or final partition verification failed.
*/
esp_err_t esp_ota_set_final_partition(esp_ota_handle_t handle, const esp_partition_t *final, bool finalize_with_copy);
/**
* @brief Write OTA update data to partition
*
@@ -169,8 +139,9 @@ esp_err_t esp_ota_set_final_partition(esp_ota_handle_t handle, const esp_partiti
* @return
* - ESP_OK: Data was written to flash successfully, or size = 0
* - ESP_ERR_INVALID_ARG: handle is invalid.
* - ESP_ERR_OTA_VALIDATE_FAILED: First byte of image contains invalid image magic byte.
* - ESP_ERR_OTA_VALIDATE_FAILED: First byte of image contains invalid app image magic byte.
* - ESP_ERR_FLASH_OP_TIMEOUT or ESP_ERR_FLASH_OP_FAIL: Flash write failed.
* - ESP_ERR_OTA_SELECT_INFO_INVALID: OTA data partition has invalid contents
* - ESP_ERR_INVALID_SIZE: if write would go out of bounds of the partition
* - or one of error codes from lower-level flash driver.
*/
@@ -193,7 +164,9 @@ esp_err_t esp_ota_write(esp_ota_handle_t handle, const void* data, size_t size);
* @return
* - ESP_OK: Data was written to flash successfully.
* - ESP_ERR_INVALID_ARG: handle is invalid.
* - ESP_ERR_OTA_VALIDATE_FAILED: First byte of image contains invalid app image magic byte.
* - ESP_ERR_FLASH_OP_TIMEOUT or ESP_ERR_FLASH_OP_FAIL: Flash write failed.
* - ESP_ERR_OTA_SELECT_INFO_INVALID: OTA data partition has invalid contents
*/
esp_err_t esp_ota_write_with_offset(esp_ota_handle_t handle, const void *data, size_t size, uint32_t offset);
@@ -203,11 +176,6 @@ esp_err_t esp_ota_write_with_offset(esp_ota_handle_t handle, const void *data, s
* @param handle Handle obtained from esp_ota_begin().
*
* @note After calling esp_ota_end(), the handle is no longer valid and any memory associated with it is freed (regardless of result).
* @note If either the final or staging partitions were for the bootloader, then at the end of this function,
* the bootloader is reset to its default offset: esp_image_bootloader_offset_set(ESP_PRIMARY_BOOTLOADER_OFFSET)
*
* If the finalize_with_copy option is set, the staging partition will be copied to the final partition at the end of this function.
* Otherwise, copying will need to be handled by custom code using esp_partition_copy().
*
* @return
* - ESP_OK: Newly written OTA app image is valid.
@@ -316,7 +284,7 @@ esp_err_t esp_ota_get_partition_description(const esp_partition_t *partition, es
* @brief Returns the description structure of the bootloader.
*
* @param[in] bootloader_partition Pointer to bootloader partition.
* If NULL, then the PRIMARY bootloader is used (the default location).
* If NULL, then the current bootloader is used (the default location).
* offset = CONFIG_BOOTLOADER_OFFSET_IN_FLASH,
* size = CONFIG_PARTITION_TABLE_OFFSET - CONFIG_BOOTLOADER_OFFSET_IN_FLASH,
* @param[out] desc Structure of info about bootloader.
@@ -329,20 +297,6 @@ esp_err_t esp_ota_get_partition_description(const esp_partition_t *partition, es
*/
esp_err_t esp_ota_get_bootloader_description(const esp_partition_t *bootloader_partition, esp_bootloader_desc_t *desc);
/**
* @brief Invalidate the OTA data slot associated with the last boot application partition.
*
* This function erases the OTA data slot corresponding to the last boot application partition,
* making the partition invalid for booting in future. The application partition itself
* is not erased, preserving its contents.
*
* @return
* - ESP_OK: Successfully invalidated the OTA data slot.
* - ESP_FAIL: Failed to invalidate the OTA data slot (e.g., invalid parameters, no OTA data partition, or other errors).
* - Other error codes from `esp_partition_erase_range`.
*/
esp_err_t esp_ota_invalidate_inactive_ota_data_slot(void);
/**
* @brief Returns number of ota partitions provided in partition table.
*
@@ -359,24 +313,12 @@ uint8_t esp_ota_get_app_partition_count(void);
*/
esp_err_t esp_ota_mark_app_valid_cancel_rollback(void);
/**
* @brief This function is called to roll back to the previously workable app without reboot.
*
* Checks applications on a flash drive that can be booted in case of rollback.
* If the flash does not have at least one app (except the running app) then rollback is not possible.
* @return
* - ESP_OK: if successful.
* - ESP_FAIL: if not successful.
* - ESP_ERR_OTA_ROLLBACK_FAILED: The rollback is not possible because the available OTA partitions
* on the flash do not contain a valid application.
*/
esp_err_t esp_ota_mark_app_invalid_rollback(void);
/**
* @brief This function is called to roll back to the previously workable app with reboot.
*
* Equivalent to calling esp_ota_mark_app_invalid_rollback(), and, if successful, followed by esp_restart().
*
* If rollback is successful then device will reset else API will return with error code.
* Checks applications on a flash drive that can be booted in case of rollback.
* If the flash does not have at least one app (except the running app) then rollback is not possible.
* @return
* - ESP_FAIL: if not successful.
* - ESP_ERR_OTA_ROLLBACK_FAILED: The rollback is not possible due to flash does not have any apps.

View File

@@ -2,15 +2,11 @@
components/app_update/test_apps:
enable:
- if: CONFIG_NAME == "defaults" and IDF_TARGET in ["esp32", "esp32c2", "esp32c3", "esp32c5", "esp32c6", "esp32c61", "esp32h2", "esp32p4", "esp32s2", "esp32s3"]
- if: CONFIG_NAME == "rollback" and IDF_TARGET in ["esp32", "esp32c3", "esp32s3", "esp32p4"]
- if: CONFIG_NAME == "xip_psram" and SOC_SPIRAM_XIP_SUPPORTED == 1
- if: CONFIG_NAME == "defaults" and IDF_TARGET != "linux"
- if: CONFIG_NAME == "xip_psram" and IDF_TARGET in ["esp32s2", "esp32s3", "esp32p4"]
# S2 doesn't have ROM for flash
- if: CONFIG_NAME == "xip_psram_with_rom_impl" and (SOC_SPIRAM_XIP_SUPPORTED == 1 and IDF_TARGET != "esp32s2")
- if: CONFIG_NAME == "xip_psram_with_rom_impl" and IDF_TARGET in ["esp32s3", "esp32p4"]
disable:
- if: IDF_TARGET in ["esp32h21", "esp32h4"]
- if: IDF_TARGET in ["esp32c61"]
temporary: true
reason: not supported yet # TODO: [ESP32H21] IDF-11515, [ESP32H4] IDF-12279
- if: IDF_TARGET == "esp32c61" and CONFIG_NAME == "xip_psram_with_rom_impl"
temporary: true
reason: not supported yet # TODO: [ESP32C61] IDF-12784
reason: target esp32c61 is not supported yet # TODO: [ESP32C61] IDF-9245

View File

@@ -1,256 +0,0 @@
/*
* SPDX-FileCopyrightText: 2024 Espressif Systems (Shanghai) CO LTD
*
* SPDX-License-Identifier: Apache-2.0
*/
#include "esp_ota_ops.h"
#include "esp_partition.h"
#include "esp_flash_partitions.h"
#include "esp_flash_internal.h"
#include "spi_flash_mmap.h"
#include "esp_image_format.h"
#include "esp_system.h"
#include "esp_log.h"
#include "unity.h"
#include "nvs_flash.h"
#include "sdkconfig.h"
static const char *TAG = "test";
static uint8_t buffer[SPI_FLASH_SEC_SIZE];
// Find the unused offset after the last partition, checking that it is of the required size
static uint32_t find_unused_space(size_t required_size)
{
esp_partition_iterator_t it = esp_partition_find(ESP_PARTITION_TYPE_ANY, ESP_PARTITION_SUBTYPE_ANY, NULL);
TEST_ASSERT_NOT_NULL(it);
const esp_partition_t* latest_partition = esp_partition_get(it);
for (; it != NULL; it = esp_partition_next(it)) {
const esp_partition_t *p = esp_partition_get(it);
if (p->address > latest_partition->address) {
latest_partition = p;
}
}
esp_partition_iterator_release(it);
TEST_ASSERT_NOT_NULL(latest_partition);
#if CONFIG_IDF_TARGET_LINUX
uint32_t flash_chip_size;
esp_flash_get_size(NULL, &flash_chip_size);
#else
uint32_t flash_chip_size = esp_flash_default_chip->size;
#endif // CONFIG_IDF_TARGET_LINUX
uint32_t unused_offset = latest_partition->address + latest_partition->size;
TEST_ASSERT_GREATER_OR_EQUAL_UINT32(required_size, flash_chip_size - unused_offset);
return unused_offset;
}
static void check_after_reboot(void)
{
ESP_LOGI(TAG, "App runs");
}
static void download_new_image_from_partition(esp_ota_handle_t update_handle, const esp_partition_t *copy_from_part)
{
uint32_t offset = 0;
ESP_LOGI(TAG, "Downloading image...");
do {
TEST_ESP_OK(esp_partition_read(copy_from_part, offset, buffer, sizeof(buffer)));
TEST_ESP_OK(esp_ota_write(update_handle, buffer, sizeof(buffer)));
offset += sizeof(buffer);
} while (offset < copy_from_part->size);
}
static void start_bootloader_ota_update_via_ota_bootloader_part(void)
{
const esp_partition_t *primary_bootloader;
TEST_ESP_OK(esp_partition_register_external(NULL, ESP_PRIMARY_BOOTLOADER_OFFSET, ESP_BOOTLOADER_SIZE, "PrimaryBTLDR", ESP_PARTITION_TYPE_BOOTLOADER, ESP_PARTITION_SUBTYPE_BOOTLOADER_PRIMARY, &primary_bootloader));
const esp_partition_t *ota_bootloader;
const uint32_t ota_bootloader_offset = find_unused_space(ESP_BOOTLOADER_SIZE);
TEST_ESP_OK(esp_partition_register_external(NULL, ota_bootloader_offset, ESP_BOOTLOADER_SIZE, "OtaBTLDR", ESP_PARTITION_TYPE_BOOTLOADER, ESP_PARTITION_SUBTYPE_BOOTLOADER_OTA, &ota_bootloader));
esp_ota_handle_t update_handle;
TEST_ESP_OK(esp_ota_begin(ota_bootloader, OTA_WITH_SEQUENTIAL_WRITES, &update_handle));
TEST_ESP_OK(esp_ota_set_final_partition(update_handle, primary_bootloader, true));
download_new_image_from_partition(update_handle, primary_bootloader);
TEST_ESP_OK(esp_ota_end(update_handle));
TEST_ESP_OK(esp_partition_deregister_external(primary_bootloader));
TEST_ESP_OK(esp_partition_deregister_external(ota_bootloader));
esp_restart();
}
TEST_CASE_MULTIPLE_STAGES("OTA update of bootloader via temp partition", "[bootloader_ota][reset=SW_CPU_RESET]", start_bootloader_ota_update_via_ota_bootloader_part, check_after_reboot);
static void start_bootloader_ota_update_via_primary_bootloader_part(void)
{
const esp_partition_t *primary_bootloader;
TEST_ESP_OK(esp_partition_register_external(NULL, ESP_PRIMARY_BOOTLOADER_OFFSET, ESP_BOOTLOADER_SIZE, "PrimaryBTLDR", ESP_PARTITION_TYPE_BOOTLOADER, ESP_PARTITION_SUBTYPE_BOOTLOADER_PRIMARY, &primary_bootloader));
esp_ota_handle_t update_handle;
TEST_ESP_OK(esp_ota_begin(primary_bootloader, OTA_WITH_SEQUENTIAL_WRITES, &update_handle));
download_new_image_from_partition(update_handle, primary_bootloader);
TEST_ESP_OK(esp_ota_end(update_handle));
TEST_ESP_OK(esp_partition_deregister_external(primary_bootloader));
esp_restart();
}
TEST_CASE_MULTIPLE_STAGES("OTA update of bootloader via primary partition", "[bootloader_ota][reset=SW_CPU_RESET]", start_bootloader_ota_update_via_primary_bootloader_part, check_after_reboot);
static void start_partition_table_ota_update_via_ota_part_table(void)
{
const esp_partition_t *primary_partition_table;
const esp_partition_t *ota_partition_table;
TEST_ESP_OK(esp_partition_register_external(NULL, ESP_PRIMARY_PARTITION_TABLE_OFFSET, ESP_PARTITION_TABLE_SIZE, "PrimaryPrtTable", ESP_PARTITION_TYPE_PARTITION_TABLE, ESP_PARTITION_SUBTYPE_PARTITION_TABLE_PRIMARY, &primary_partition_table));
uint32_t ota_partition_table_offset = find_unused_space(ESP_PARTITION_TABLE_SIZE);
TEST_ESP_OK(esp_partition_register_external(NULL, ota_partition_table_offset, ESP_PARTITION_TABLE_SIZE, "OtaPrtTable", ESP_PARTITION_TYPE_PARTITION_TABLE, ESP_PARTITION_SUBTYPE_PARTITION_TABLE_OTA, &ota_partition_table));
esp_ota_handle_t update_handle;
TEST_ESP_OK(esp_ota_begin(ota_partition_table, OTA_WITH_SEQUENTIAL_WRITES, &update_handle));
TEST_ESP_OK(esp_ota_set_final_partition(update_handle, primary_partition_table, true));
download_new_image_from_partition(update_handle, primary_partition_table);
TEST_ESP_OK(esp_ota_end(update_handle));
TEST_ESP_OK(esp_partition_deregister_external(primary_partition_table));
TEST_ESP_OK(esp_partition_deregister_external(ota_partition_table));
esp_restart();
}
TEST_CASE_MULTIPLE_STAGES("OTA update of partition_table via temp partition", "[partition_table_ota][reset=SW_CPU_RESET]", start_partition_table_ota_update_via_ota_part_table, check_after_reboot);
static void start_partition_table_ota_update_via_primary_part_table(void)
{
const esp_partition_t *primary_partition_table;
TEST_ESP_OK(esp_partition_register_external(NULL, ESP_PRIMARY_PARTITION_TABLE_OFFSET, ESP_PARTITION_TABLE_SIZE, "PrimaryPrtTable", ESP_PARTITION_TYPE_PARTITION_TABLE, ESP_PARTITION_SUBTYPE_PARTITION_TABLE_PRIMARY, &primary_partition_table));
esp_ota_handle_t update_handle;
TEST_ESP_OK(esp_ota_begin(primary_partition_table, OTA_WITH_SEQUENTIAL_WRITES, &update_handle));
download_new_image_from_partition(update_handle, primary_partition_table);
TEST_ESP_OK(esp_ota_end(update_handle));
TEST_ESP_OK(esp_partition_deregister_external(primary_partition_table));
esp_restart();
}
TEST_CASE_MULTIPLE_STAGES("OTA update of partition_table via primary partition", "[partition_table_ota][reset=SW_CPU_RESET]", start_partition_table_ota_update_via_primary_part_table, check_after_reboot);
TEST_CASE("OTA update of NVS partition", "[nvs_ota]")
{
// intilaize "nvs" partition and define a var (magic_value).
TEST_ESP_OK(nvs_flash_erase());
TEST_ESP_OK(nvs_flash_init());
nvs_handle_t my_handle;
TEST_ESP_OK(nvs_open("namespace", NVS_READWRITE, &my_handle));
uint32_t magic_value = 0x0729FEED;
TEST_ESP_OK(nvs_set_u32(my_handle, "magic_value", magic_value));
TEST_ESP_OK(nvs_commit(my_handle));
magic_value = 0;
TEST_ESP_OK(nvs_get_u32(my_handle, "magic_value", &magic_value));
TEST_ASSERT_EQUAL_HEX(0x0729FEED, magic_value);
nvs_close(my_handle);
TEST_ESP_OK(nvs_flash_deinit());
// register a new "nvs2" partition
const esp_partition_t *nvs_part = esp_partition_find_first(ESP_PARTITION_TYPE_DATA, ESP_PARTITION_SUBTYPE_DATA_NVS, "nvs");
const esp_partition_t *nvs2_part;
TEST_ESP_OK(esp_partition_register_external(NULL, find_unused_space(nvs_part->size), nvs_part->size, "nvs2", ESP_PARTITION_TYPE_DATA, ESP_PARTITION_SUBTYPE_DATA_NVS, &nvs2_part));
ESP_LOGI(TAG, "Use %s partition (0x%08" PRIx32 ") to load a new image", nvs2_part->label, nvs2_part->address);
TEST_ESP_OK(nvs_flash_erase_partition("nvs2"));
// OTA update of the new "nvs2" partition, taking "nvs" partition as source.
esp_ota_handle_t update_handle;
TEST_ESP_OK(esp_ota_begin(nvs2_part, OTA_WITH_SEQUENTIAL_WRITES, &update_handle));
download_new_image_from_partition(update_handle, nvs_part);
TEST_ESP_OK(esp_ota_end(update_handle));
// init "nvs2" partition and check if the magic_value == 0x0729FEED
TEST_ESP_OK(nvs_flash_init_partition("nvs2"));
nvs_handle_t my_handle2;
TEST_ESP_OK(nvs_open_from_partition("nvs2", "namespace", NVS_READWRITE, &my_handle2));
magic_value = 0;
TEST_ESP_OK(nvs_get_u32(my_handle2, "magic_value", &magic_value));
TEST_ASSERT_EQUAL_HEX(0x0729FEED, magic_value);
nvs_close(my_handle2);
TEST_ESP_OK(nvs_flash_deinit_partition("nvs2"));
// deregister "nvs2"
TEST_ESP_OK(esp_partition_deregister_external(nvs2_part));
TEST_ESP_OK(nvs_flash_erase());
}
static void start_bootloader_ota_update_via_app_part(void)
{
const esp_partition_t *primary_bootloader;
TEST_ESP_OK(esp_partition_register_external(NULL, ESP_PRIMARY_BOOTLOADER_OFFSET, ESP_BOOTLOADER_SIZE, "PrimaryBTLDR", ESP_PARTITION_TYPE_BOOTLOADER, ESP_PARTITION_SUBTYPE_BOOTLOADER_PRIMARY, &primary_bootloader));
const esp_partition_t *free_app_ota_partition = esp_ota_get_next_update_partition(NULL);
esp_ota_handle_t update_handle;
TEST_ESP_OK(esp_ota_begin(free_app_ota_partition, OTA_WITH_SEQUENTIAL_WRITES, &update_handle));
TEST_ESP_OK(esp_ota_set_final_partition(update_handle, primary_bootloader, true));
download_new_image_from_partition(update_handle, primary_bootloader);
TEST_ESP_OK(esp_ota_end(update_handle));
TEST_ESP_OK(esp_partition_deregister_external(primary_bootloader));
esp_restart();
}
TEST_CASE_MULTIPLE_STAGES("OTA update of bootloader via a free ota partition", "[bootloader_ota][reset=SW_CPU_RESET]", start_bootloader_ota_update_via_app_part, check_after_reboot);
static void start_partition_table_ota_update_via_app_part(void)
{
const esp_partition_t *primary_partition_table;
TEST_ESP_OK(esp_partition_register_external(NULL, ESP_PRIMARY_PARTITION_TABLE_OFFSET, ESP_PARTITION_TABLE_SIZE, "PrimaryPrtTable", ESP_PARTITION_TYPE_PARTITION_TABLE, ESP_PARTITION_SUBTYPE_PARTITION_TABLE_PRIMARY, &primary_partition_table));
const esp_partition_t *free_app_ota_partition = esp_ota_get_next_update_partition(NULL);
esp_ota_handle_t update_handle;
TEST_ESP_OK(esp_ota_begin(free_app_ota_partition, OTA_WITH_SEQUENTIAL_WRITES, &update_handle));
TEST_ESP_OK(esp_ota_set_final_partition(update_handle, primary_partition_table, true));
download_new_image_from_partition(update_handle, primary_partition_table);
TEST_ESP_OK(esp_ota_end(update_handle));
TEST_ESP_OK(esp_partition_deregister_external(primary_partition_table));
esp_restart();
}
TEST_CASE_MULTIPLE_STAGES("OTA update of partition_table via a free ota partition", "[partition_table_ota][reset=SW_CPU_RESET]", start_partition_table_ota_update_via_app_part, check_after_reboot);
TEST_CASE("OTA update of NVS partition via a free ota partition", "[nvs_ota]")
{
// intilaize "nvs" partition and define a var (magic_value).
const esp_partition_t *nvs_part = esp_partition_find_first(ESP_PARTITION_TYPE_DATA, ESP_PARTITION_SUBTYPE_DATA_NVS, "nvs");
TEST_ESP_OK(nvs_flash_erase());
TEST_ESP_OK(nvs_flash_init());
nvs_handle_t my_handle;
TEST_ESP_OK(nvs_open("namespace", NVS_READWRITE, &my_handle));
uint32_t magic_value = 0x0729FEED;
TEST_ESP_OK(nvs_set_u32(my_handle, "magic_value", magic_value));
TEST_ESP_OK(nvs_commit(my_handle));
magic_value = 0;
TEST_ESP_OK(nvs_get_u32(my_handle, "magic_value", &magic_value));
TEST_ASSERT_EQUAL_HEX(0x0729FEED, magic_value);
nvs_close(my_handle);
TEST_ESP_OK(nvs_flash_deinit());
// 1. OTA update nvs partition into free_app_ota_partition
// 2. copy free_app_ota_partition into the original nvs partition (which was erased before coping)
const esp_partition_t *free_app_ota_partition = esp_ota_get_next_update_partition(NULL);
esp_ota_handle_t update_handle;
TEST_ESP_OK(esp_ota_begin(free_app_ota_partition, OTA_WITH_SEQUENTIAL_WRITES, &update_handle));
TEST_ESP_OK(esp_ota_set_final_partition(update_handle, nvs_part, true));
download_new_image_from_partition(update_handle, nvs_part);
TEST_ESP_OK(esp_ota_end(update_handle));
// Check if the magic_value == 0x0729FEED
TEST_ESP_OK(nvs_flash_init());
TEST_ESP_OK(nvs_open("namespace", NVS_READONLY, &my_handle));
magic_value = 0;
TEST_ESP_OK(nvs_get_u32(my_handle, "magic_value", &magic_value));
TEST_ASSERT_EQUAL_HEX(0x0729FEED, magic_value);
nvs_close(my_handle);
TEST_ESP_OK(nvs_flash_deinit());
TEST_ESP_OK(nvs_flash_erase());
}

View File

@@ -43,12 +43,7 @@ static const char *TAG = "ota_test";
static void set_boot_count_in_nvs(uint8_t boot_count)
{
nvs_handle_t boot_count_handle;
esp_err_t err = nvs_open(BOOT_COUNT_NAMESPACE, NVS_READWRITE, &boot_count_handle);
if (err != ESP_OK) {
TEST_ESP_OK(nvs_flash_erase());
TEST_ESP_OK(nvs_flash_init());
TEST_ESP_OK(nvs_open(BOOT_COUNT_NAMESPACE, NVS_READWRITE, &boot_count_handle));
}
TEST_ESP_OK(nvs_open(BOOT_COUNT_NAMESPACE, NVS_READWRITE, &boot_count_handle));
TEST_ESP_OK(nvs_set_u8(boot_count_handle, "boot_count", boot_count));
TEST_ESP_OK(nvs_commit(boot_count_handle));
nvs_close(boot_count_handle);
@@ -849,84 +844,3 @@ TEST_CASE("Test bootloader_common_get_sha256_of_partition returns ESP_ERR_IMAGE_
TEST_ESP_ERR(ESP_ERR_IMAGE_INVALID, bootloader_common_get_sha256_of_partition(other_app->address, other_app->size, other_app->type, sha_256_other_app));
TEST_ASSERT_EQUAL_MEMORY_MESSAGE(sha_256_cur_app, sha_256_other_app, sizeof(sha_256_cur_app), "must be the same");
}
static void test_rollback3(void)
{
uint8_t boot_count = get_boot_count_from_nvs();
boot_count++;
set_boot_count_in_nvs(boot_count);
ESP_LOGI(TAG, "boot count %d", boot_count);
const esp_partition_t *cur_app = get_running_firmware();
const esp_partition_t* update_partition = NULL;
switch (boot_count) {
case 2:
ESP_LOGI(TAG, "Factory");
TEST_ASSERT_EQUAL(ESP_PARTITION_SUBTYPE_APP_FACTORY, cur_app->subtype);
update_partition = app_update();
reboot_as_deep_sleep();
break;
case 3:
ESP_LOGI(TAG, "OTA0");
TEST_ASSERT_EQUAL(ESP_PARTITION_SUBTYPE_APP_OTA_0, cur_app->subtype);
TEST_ESP_OK(esp_ota_mark_app_valid_cancel_rollback());
TEST_ASSERT_NULL(esp_ota_get_last_invalid_partition());
update_partition = app_update();
reboot_as_deep_sleep();
break;
case 4:
ESP_LOGI(TAG, "OTA1");
TEST_ASSERT_EQUAL(ESP_PARTITION_SUBTYPE_APP_OTA_1, cur_app->subtype);
TEST_ESP_OK(esp_ota_mark_app_valid_cancel_rollback());
update_partition = esp_ota_get_next_update_partition(NULL);
#ifdef CONFIG_BOOTLOADER_APP_ROLLBACK_ENABLE
// two partitions are valid
TEST_ASSERT_NULL(esp_ota_get_last_invalid_partition());
esp_ota_img_states_t ota_state;
TEST_ESP_OK(esp_ota_get_state_partition(update_partition, &ota_state));
TEST_ASSERT_EQUAL(ESP_OTA_IMG_VALID, ota_state);
#endif
esp_ota_handle_t update_handle = 0;
TEST_ESP_OK(esp_ota_begin(update_partition, OTA_SIZE_UNKNOWN, &update_handle));
#ifdef CONFIG_BOOTLOADER_APP_ROLLBACK_ENABLE
// After esp_ota_begin, the only one partition is valid
// ota data slots do not have an entry about the update_partition.
TEST_ESP_ERR(ESP_ERR_NOT_FOUND, esp_ota_get_state_partition(update_partition, &ota_state));
#endif
copy_app_partition(update_handle, get_running_firmware());
TEST_ESP_OK(esp_ota_end(update_handle));
// esp_ota_set_boot_partition is not called, so the running app will not be changed after reboot
reboot_as_deep_sleep();
break;
default:
erase_ota_data();
TEST_FAIL_MESSAGE("Unexpected stage");
break;
}
}
static void test_rollback3_1(void)
{
set_boot_count_in_nvs(5);
uint8_t boot_count = get_boot_count_from_nvs();
esp_ota_img_states_t ota_state = 0x5555AAAA;
ESP_LOGI(TAG, "boot count %d", boot_count);
const esp_partition_t *cur_app = get_running_firmware();
ESP_LOGI(TAG, "OTA1");
TEST_ASSERT_EQUAL(ESP_PARTITION_SUBTYPE_APP_OTA_1, cur_app->subtype);
TEST_ESP_OK(esp_ota_get_state_partition(cur_app, &ota_state));
TEST_ASSERT_EQUAL(ESP_OTA_IMG_VALID, ota_state);
TEST_ASSERT_NULL(esp_ota_get_last_invalid_partition());
const esp_partition_t* next_update_partition = esp_ota_get_next_update_partition(NULL);
TEST_ASSERT_NOT_NULL(next_update_partition);
#ifdef CONFIG_BOOTLOADER_APP_ROLLBACK_ENABLE
// ota data slots do not have an entry about the next_update_partition.
TEST_ESP_ERR(ESP_ERR_NOT_FOUND, esp_ota_get_state_partition(next_update_partition, &ota_state));
#endif
erase_ota_data();
}
TEST_CASE_MULTIPLE_STAGES("Test rollback. Updated partition invalidated after esp_ota_begin", "[app_update][timeout=90][reset=DEEPSLEEP_RESET, DEEPSLEEP_RESET, DEEPSLEEP_RESET, SW_CPU_RESET]", start_test, test_rollback3, test_rollback3, test_rollback3, test_rollback3_1);

View File

@@ -1,15 +1,16 @@
# SPDX-FileCopyrightText: 2022-2025 Espressif Systems (Shanghai) CO LTD
# SPDX-FileCopyrightText: 2022-2024 Espressif Systems (Shanghai) CO LTD
# SPDX-License-Identifier: Unlicense OR CC0-1.0
import re
import pytest
from pytest_embedded import Dut
from pytest_embedded_idf.utils import idf_parametrize
DEFAULT_TIMEOUT = 20
TEST_SUBMENU_PATTERN_PYTEST = re.compile(rb'\s+\((\d+)\)\s+"([^"]+)"\r?\n')
@pytest.mark.supported_targets
@pytest.mark.temp_skip_ci(targets=['esp32c5'], reason='C5 has not supported deep sleep') # TODO: [ESP32C5] IDF-8640, IDF-10317
@pytest.mark.generic
@pytest.mark.parametrize(
'config',
@@ -18,11 +19,13 @@ TEST_SUBMENU_PATTERN_PYTEST = re.compile(rb'\s+\((\d+)\)\s+"([^"]+)"\r?\n')
],
indirect=True,
)
@idf_parametrize('target', ['supported_targets'], indirect=['target'])
def test_app_update(dut: Dut) -> None:
dut.run_all_single_board_cases(timeout=90)
@pytest.mark.supported_targets
# TODO: [ESP32C61] IDF-9245, IDF-10983
@pytest.mark.temp_skip_ci(targets=['esp32c61'], reason='C61 has not supported deep sleep')
@pytest.mark.generic
@pytest.mark.parametrize(
'config',
@@ -31,11 +34,12 @@ def test_app_update(dut: Dut) -> None:
],
indirect=True,
)
@idf_parametrize('target', ['supported_targets'], indirect=['target'])
def test_app_update_xip_psram(dut: Dut) -> None:
dut.run_all_single_board_cases(timeout=90)
@pytest.mark.supported_targets
@pytest.mark.temp_skip_ci(targets=['esp32c5'], reason='C5 has not supported deep sleep') # TODO: [ESP32C5] IDF-8640, IDF-10317
@pytest.mark.generic
@pytest.mark.parametrize(
'config',
@@ -44,19 +48,5 @@ def test_app_update_xip_psram(dut: Dut) -> None:
],
indirect=True,
)
@idf_parametrize('target', ['supported_targets'], indirect=['target'])
def test_app_update_xip_psram_rom_impl(dut: Dut) -> None:
dut.run_all_single_board_cases(timeout=90)
@pytest.mark.generic
@pytest.mark.parametrize(
'config',
[
'rollback',
],
indirect=True,
)
@idf_parametrize('target', ['esp32', 'esp32c3', 'esp32s3', 'esp32p4'], indirect=['target'])
def test_app_update_with_rollback(dut: Dut) -> None:
dut.run_all_single_board_cases(timeout=90)

View File

@@ -1 +0,0 @@
CONFIG_BOOTLOADER_APP_ROLLBACK_ENABLE=y

View File

@@ -1,3 +0,0 @@
CONFIG_IDF_TARGET="esp32c5"
CONFIG_BOOTLOADER_NUM_PIN_APP_TEST=18
CONFIG_BOOTLOADER_NUM_PIN_FACTORY_RESET=4

View File

@@ -1,5 +1,4 @@
idf_build_get_property(target IDF_TARGET)
idf_build_get_property(esp_tee_build ESP_TEE_BUILD)
if(${target} STREQUAL "linux")
return() # This component is not supported by the POSIX/Linux simulator
@@ -8,9 +7,7 @@ endif()
idf_component_register(PRIV_REQUIRES partition_table esptool_py)
# Do not generate flash file when building bootloader or is in early expansion of the build
# This also applies to the ESP-TEE build, as the esp_tee component only requires the
# Kconfig options from the bootloader
if(BOOTLOADER_BUILD OR esp_tee_build OR NOT CONFIG_APP_BUILD_BOOTLOADER)
if(BOOTLOADER_BUILD OR NOT CONFIG_APP_BUILD_BOOTLOADER)
return()
endif()

View File

@@ -1,68 +0,0 @@
menu "Application Rollback"
config BOOTLOADER_APP_ROLLBACK_ENABLE
bool "Enable app rollback support"
default n
help
After updating the app, the bootloader runs a new app with the "ESP_OTA_IMG_PENDING_VERIFY" state set.
This state prevents the re-run of this app. After the first boot of the new app in the user code, the
function should be called to confirm the operability of the app or vice versa about its non-operability.
If the app is working, then it is marked as valid. Otherwise, it is marked as not valid and rolls back to
the previous working app. A reboot is performed, and the app is booted before the software update.
Note: If during the first boot a new app the power goes out or the WDT works, then roll back will happen.
Rollback is possible only between the apps with the same security versions.
config BOOTLOADER_APP_ANTI_ROLLBACK
bool "Enable app anti-rollback support"
depends on BOOTLOADER_APP_ROLLBACK_ENABLE
default n
help
This option prevents rollback to previous firmware/application image with lower security version.
config BOOTLOADER_APP_SECURE_VERSION
int "eFuse secure version of app"
depends on BOOTLOADER_APP_ANTI_ROLLBACK
default 0
help
The secure version is the sequence number stored in the header of each firmware.
The security version is set in the bootloader, version is recorded in the eFuse field
as the number of set ones. The allocated number of bits in the efuse field
for storing the security version is limited (see BOOTLOADER_APP_SEC_VER_SIZE_EFUSE_FIELD option).
Bootloader: When bootloader selects an app to boot, an app is selected that has
a security version greater or equal that recorded in eFuse field.
The app is booted with a higher (or equal) secure version.
The security version is worth increasing if in previous versions there is
a significant vulnerability and their use is not acceptable.
Your partition table should has a scheme with ota_0 + ota_1 (without factory).
config BOOTLOADER_APP_SEC_VER_SIZE_EFUSE_FIELD
int "Size of the efuse secure version field"
depends on BOOTLOADER_APP_ANTI_ROLLBACK
range 1 32 if IDF_TARGET_ESP32
default 32 if IDF_TARGET_ESP32
range 1 4 if IDF_TARGET_ESP32C2
default 4 if IDF_TARGET_ESP32C2
range 1 16
default 16
help
The size of the efuse secure version field.
Its length is limited to 32 bits for ESP32 and 16 bits for ESP32-S2.
This determines how many times the security version can be increased.
config BOOTLOADER_EFUSE_SECURE_VERSION_EMULATE
bool "Emulate operations with efuse secure version(only test)"
default n
depends on BOOTLOADER_APP_ANTI_ROLLBACK
select EFUSE_VIRTUAL
select EFUSE_VIRTUAL_KEEP_IN_FLASH
help
This option allows to emulate read/write operations with all eFuses and efuse secure version.
It allows to test anti-rollback implementation without permanent write eFuse bits.
There should be an entry in partition table with following details: `emul_efuse, data, efuse, , 0x2000`.
This option enables: EFUSE_VIRTUAL and EFUSE_VIRTUAL_KEEP_IN_FLASH.
endmenu

View File

@@ -1,25 +0,0 @@
menu "Bootloader Rollback"
config BOOTLOADER_ANTI_ROLLBACK_ENABLE
bool "Enable bootloader rollback support"
depends on SOC_RECOVERY_BOOTLOADER_SUPPORTED
default n
help
This option prevents rollback to previous bootloader image with lower security version.
config BOOTLOADER_SECURE_VERSION
int "Secure version of bootloader"
depends on BOOTLOADER_ANTI_ROLLBACK_ENABLE
default 0
range 0 4
help
The secure version is the sequence number stored in the header of each bootloader.
The ROM Bootloader which runs the 2nd stage bootloader (PRIMARY or RECOVERY) checks that
the security version is greater or equal that recorded in the eFuse field.
Bootloaders that have a secure version in the image < secure version in efuse will not boot.
The security version is worth increasing if in previous versions there is
a significant vulnerability and their use is not acceptable.
endmenu

View File

@@ -1,26 +1,5 @@
menu "Log"
choice BOOTLOADER_LOG_VERSION
prompt "Log version"
help
Select the log version to be used by the ESP log component.
The app log version (CONFIG_LOG_VERSION) controls the version used in the bootloader,
preventing the selection of different versions.
For description of V1 and V2 see CONFIG_LOG_VERSION.
config BOOTLOADER_LOG_VERSION_1
bool "V1" if LOG_VERSION_1
config BOOTLOADER_LOG_VERSION_2
bool "V2" if LOG_VERSION_2
endchoice
config BOOTLOADER_LOG_VERSION
int
default 1 if BOOTLOADER_LOG_VERSION_1
default 2 if BOOTLOADER_LOG_VERSION_2
help
This configuration sets the log version number based on the chosen log version.
choice BOOTLOADER_LOG_LEVEL
bool "Bootloader log verbosity"
default BOOTLOADER_LOG_LEVEL_INFO
@@ -50,8 +29,6 @@ menu "Log"
default 4 if BOOTLOADER_LOG_LEVEL_DEBUG
default 5 if BOOTLOADER_LOG_LEVEL_VERBOSE
rsource "Kconfig.log.format"
rsource "Kconfig.log.settings"
orsource "Kconfig.log.format"
endmenu

View File

@@ -3,23 +3,11 @@ menu "Format"
config BOOTLOADER_LOG_COLORS
bool "Color"
default n
select BOOTLOADER_LOG_COLORS_SUPPORT if BOOTLOADER_LOG_VERSION_2
help
Enable ANSI terminal color codes. Logs (info, errors, warnings) will contain color codes.
Use ANSI terminal colors in log output
Enable ANSI terminal color codes.
In order to view these, your terminal program must support ANSI color codes.
config BOOTLOADER_LOG_COLORS_SUPPORT
bool "Allow enabling color output at run time"
depends on BOOTLOADER_LOG_VERSION_2
default n
help
Enables support for color codes in the esp_log() function. If CONFIG_LOG_COLORS is enabled, this option
is always active. If CONFIG_LOG_COLORS is disabled, this option allows you to still handle color codes
in specific files by defining ESP_LOG_COLOR_DISABLED as 0 before including esp_log.h.
Note that enabling this option may slightly increase RAM/FLASH usage due to additional color handling
functionality. It provides flexibility to manage color output even when CONFIG_LOG_COLORS is turned off.
choice BOOTLOADER_LOG_TIMESTAMP_SOURCE
prompt "Timestamp"
default BOOTLOADER_LOG_TIMESTAMP_SOURCE_CPU_TICKS
@@ -40,25 +28,11 @@ menu "Format"
config BOOTLOADER_LOG_TIMESTAMP_SOURCE_NONE
bool "None"
depends on BOOTLOADER_LOG_VERSION_2
depends on NO_SYMBOL # hide it now, turn it on final MR
config BOOTLOADER_LOG_TIMESTAMP_SOURCE_CPU_TICKS
bool "Milliseconds Since Boot"
select BOOTLOADER_LOG_TIMESTAMP_SUPPORT if BOOTLOADER_LOG_VERSION_2
endchoice # BOOTLOADER_LOG_TIMESTAMP_SOURCE
config BOOTLOADER_LOG_TIMESTAMP_SUPPORT
bool "Allow enabling timestamp output at run time"
depends on BOOTLOADER_LOG_VERSION_2
default y
help
Enables support for timestamp in the esp_log() function.
If CONFIG_LOG_TIMESTAMP_SOURCE_NONE, this option allows you to still handle timestamp
in specific files by defining ESP_LOG_TIMESTAMP_DISABLED as 0 before including esp_log.h.
Note that enabling this option may slightly increase RAM/FLASH usage due to additional timestamp handling
functionality. It provides flexibility to manage timestamp output even when
CONFIG_LOG_TIMESTAMP_SOURCE_NONE.
endmenu

View File

@@ -1,39 +0,0 @@
menu "Settings"
config BOOTLOADER_LOG_MODE_TEXT_EN
bool
config BOOTLOADER_LOG_MODE_BINARY_EN
bool
choice BOOTLOADER_LOG_MODE
prompt "Log Mode"
default BOOTLOADER_LOG_MODE_TEXT
config BOOTLOADER_LOG_MODE_TEXT
bool "Text Log Mode"
select BOOTLOADER_LOG_MODE_TEXT_EN
help
Enables text-based logging, where log messages are stored in a human-readable format.
This mode is useful for development and debugging, as it allows logs to be easily
read and interpreted without additional processing.
config BOOTLOADER_LOG_MODE_BINARY
bool "Binary Log Mode"
select BOOTLOADER_LOG_MODE_BINARY_EN
help
Enables binary logging with host-side format string expansion. In this mode, the
format argument of ESP_LOGx, ESP_EARLY_LOG, and ESP_DRAM_LOG macros is stored in a
NOLOAD section, not included in the final binary file. This reduces flash usage by
approximately 10% - 35%. The esp_log() function uses the binary log handler to output
messages. Instead of sending the full log string, the chip transmits only the
addresses of these strings (if present in the ELF file). If the format string
cannot be found in the ELF file, the chip sends the entire string. The host-side
monitor tool, which has access to the ELF file, reconstructs the log message using
the format string.
This reduces firmware size by eliminating format strings from
flash memory and removing the usage of printf-like functions, potentially freeing up
a few kilobytes of space. To further reduce firmware size, wrap string data with ESP_LOG_ATTR_STR.
endchoice
endmenu

View File

@@ -1,14 +1,12 @@
menu "Bootloader config"
orsource "../esp_bootloader_format/Kconfig.bootloader"
orsource "Kconfig.app_rollback"
orsource "Kconfig.bootloader_rollback"
config BOOTLOADER_OFFSET_IN_FLASH
hex
default 0x1000 if IDF_TARGET_ESP32 || IDF_TARGET_ESP32S2
# the first 2 sectors are reserved for the key manager with AES-XTS (flash encryption) purpose
default 0x2000 if IDF_TARGET_ESP32P4 || IDF_TARGET_ESP32C5 || IDF_TARGET_ESP32H4
default 0x2000 if IDF_TARGET_ESP32P4 || IDF_TARGET_ESP32C5
default 0x0
help
Offset address that 2nd bootloader will be flashed to.
@@ -314,6 +312,71 @@ menu "Bootloader config"
- these options can increase the execution time.
Note: RTC_WDT will reset while encryption operations will be performed.
config BOOTLOADER_APP_ROLLBACK_ENABLE
bool "Enable app rollback support"
default n
help
After updating the app, the bootloader runs a new app with the "ESP_OTA_IMG_PENDING_VERIFY" state set.
This state prevents the re-run of this app. After the first boot of the new app in the user code, the
function should be called to confirm the operability of the app or vice versa about its non-operability.
If the app is working, then it is marked as valid. Otherwise, it is marked as not valid and rolls back to
the previous working app. A reboot is performed, and the app is booted before the software update.
Note: If during the first boot a new app the power goes out or the WDT works, then roll back will happen.
Rollback is possible only between the apps with the same security versions.
config BOOTLOADER_APP_ANTI_ROLLBACK
bool "Enable app anti-rollback support"
depends on BOOTLOADER_APP_ROLLBACK_ENABLE
default n
help
This option prevents rollback to previous firmware/application image with lower security version.
config BOOTLOADER_APP_SECURE_VERSION
int "eFuse secure version of app"
depends on BOOTLOADER_APP_ANTI_ROLLBACK
default 0
help
The secure version is the sequence number stored in the header of each firmware.
The security version is set in the bootloader, version is recorded in the eFuse field
as the number of set ones. The allocated number of bits in the efuse field
for storing the security version is limited (see BOOTLOADER_APP_SEC_VER_SIZE_EFUSE_FIELD option).
Bootloader: When bootloader selects an app to boot, an app is selected that has
a security version greater or equal that recorded in eFuse field.
The app is booted with a higher (or equal) secure version.
The security version is worth increasing if in previous versions there is
a significant vulnerability and their use is not acceptable.
Your partition table should has a scheme with ota_0 + ota_1 (without factory).
config BOOTLOADER_APP_SEC_VER_SIZE_EFUSE_FIELD
int "Size of the efuse secure version field"
depends on BOOTLOADER_APP_ANTI_ROLLBACK
range 1 32 if IDF_TARGET_ESP32
default 32 if IDF_TARGET_ESP32
range 1 4 if IDF_TARGET_ESP32C2
default 4 if IDF_TARGET_ESP32C2
range 1 16
default 16
help
The size of the efuse secure version field.
Its length is limited to 32 bits for ESP32 and 16 bits for ESP32-S2.
This determines how many times the security version can be increased.
config BOOTLOADER_EFUSE_SECURE_VERSION_EMULATE
bool "Emulate operations with efuse secure version(only test)"
default n
depends on BOOTLOADER_APP_ANTI_ROLLBACK
select EFUSE_VIRTUAL
select EFUSE_VIRTUAL_KEEP_IN_FLASH
help
This option allows to emulate read/write operations with all eFuses and efuse secure version.
It allows to test anti-rollback implementation without permanent write eFuse bits.
There should be an entry in partition table with following details: `emul_efuse, data, efuse, , 0x2000`.
This option enables: EFUSE_VIRTUAL and EFUSE_VIRTUAL_KEEP_IN_FLASH.
config BOOTLOADER_SKIP_VALIDATE_IN_DEEP_SLEEP
bool "Skip image validation when exiting deep sleep"
# note: dependencies for this config item are different to other "skip image validation"
@@ -534,7 +597,6 @@ menu "Security features"
config SECURE_SIGNED_APPS_RSA_SCHEME
bool "RSA"
depends on SECURE_BOOT_V2_RSA_SUPPORTED && (SECURE_SIGNED_APPS_NO_SECURE_BOOT || SECURE_BOOT_V2_ENABLED)
depends on !(IDF_TARGET_ESP32C5 && ESP32C5_REV_MIN_FULL < 1)
help
Appends the RSA-3072 based Signature block to the application.
Refer to <Secure Boot Version 2 documentation link> before enabling.
@@ -764,7 +826,7 @@ menu "Security features"
config SECURE_BOOT_FLASH_BOOTLOADER_DEFAULT
bool "Flash bootloader along with other artifacts when using the default flash command"
depends on SECURE_BOOT_V2_ENABLED
depends on SECURE_BOOT_V2_ENABLED && SECURE_BOOT_BUILD_SIGNED_BINARIES
default n
help
When Secure Boot V2 is enabled, by default the bootloader is not flashed along with other artifacts
@@ -1032,9 +1094,8 @@ menu "Security features"
DIS_USB_SERIAL_JTAG, DIS_FORCE_DOWNLOAD, DIS_TWAI, JTAG_SEL_ENABLE,
DIS_PAD_JTAG, DIS_DOWNLOAD_MANUAL_ENCRYPT.
ESP32-H2 & ESP32H21: DIS_ICACHE, DIS_ICACHE, DIS_USB_JTAG, POWERGLITCH_EN, DIS_FORCE_DOWNLOAD,
SPI_DOWNLOAD_MSPI_DIS, DIS_TWAI, JTAG_SEL_ENABLE, DIS_PAD_JTAG, DIS_DOWNLOAD_MANUAL_ENCRYPT,
DIS_USB_SERIAL_JTAG
ESP32-H2: DIS_ICACHE, DIS_USB_JTAG, POWERGLITCH_EN, DIS_FORCE_DOWNLOAD, SPI_DOWNLOAD_MSPI_DIS,
DIS_TWAI, JTAG_SEL_ENABLE, DIS_PAD_JTAG, DIS_DOWNLOAD_MANUAL_ENCRYPT.
ESP32-S2: DIS_ICACHE, DIS_DCACHE, DIS_DOWNLOAD_ICACHE, DIS_DOWNLOAD_DCACHE,
DIS_FORCE_DOWNLOAD, DIS_USB, DIS_TWAI, DIS_BOOT_REMAP, SOFT_DIS_JTAG,

View File

@@ -1,9 +1,7 @@
idf_build_get_property(esp_tee_build ESP_TEE_BUILD)
set(BOOTLOADER_OFFSET ${CONFIG_BOOTLOADER_OFFSET_IN_FLASH})
# Do not generate flash file when building bootloader
if(BOOTLOADER_BUILD OR esp_tee_build OR NOT CONFIG_APP_BUILD_BOOTLOADER)
if(BOOTLOADER_BUILD OR NOT CONFIG_APP_BUILD_BOOTLOADER)
return()
endif()
@@ -118,13 +116,8 @@ idf_build_get_property(sdkconfig SDKCONFIG)
idf_build_get_property(python PYTHON)
idf_build_get_property(extra_cmake_args EXTRA_CMAKE_ARGS)
# BOOTLOADER_EXTRA_COMPONENT_DIRS may have been set by the `main` component, do not overwrite it
idf_build_get_property(bootloader_extra_component_dirs BOOTLOADER_EXTRA_COMPONENT_DIRS)
list(APPEND bootloader_extra_component_dirs "${CMAKE_CURRENT_LIST_DIR}")
# We cannot pass lists as a parameter to the external project without modifying the ';' separator
# We cannot pass lists are a parameter to the external project without modifying the ';' separator
string(REPLACE ";" "|" BOOTLOADER_IGNORE_EXTRA_COMPONENT "${BOOTLOADER_IGNORE_EXTRA_COMPONENT}")
string(REPLACE ";" "|" bootloader_extra_component_dirs "${bootloader_extra_component_dirs}")
externalproject_add(bootloader
SOURCE_DIR "${CMAKE_CURRENT_LIST_DIR}/subproject"
@@ -134,7 +127,7 @@ externalproject_add(bootloader
LIST_SEPARATOR |
CMAKE_ARGS -DSDKCONFIG=${sdkconfig} -DIDF_PATH=${idf_path} -DIDF_TARGET=${idf_target}
-DPYTHON_DEPS_CHECKED=1 -DPYTHON=${python}
-DEXTRA_COMPONENT_DIRS=${bootloader_extra_component_dirs}
-DEXTRA_COMPONENT_DIRS=${CMAKE_CURRENT_LIST_DIR}
-DPROJECT_SOURCE_DIR=${PROJECT_SOURCE_DIR}
-DIGNORE_EXTRA_COMPONENT=${BOOTLOADER_IGNORE_EXTRA_COMPONENT}
${sign_key_arg} ${ver_key_arg}

View File

@@ -32,11 +32,10 @@ set(COMPONENTS
main
efuse
esp_system
newlib
esp_tee)
newlib)
# EXTRA_COMPONENT_DIRS can be populated with directories containing one or several components.
# Make sure this variable contains `bootloader_components` directory of the project being compiled.
# Make EXTRA_COMPONENT_DIRS variable to point to the bootloader_components directory
# of the project being compiled
set(PROJECT_EXTRA_COMPONENTS "${PROJECT_SOURCE_DIR}/bootloader_components")
if(EXISTS ${PROJECT_EXTRA_COMPONENTS})
list(APPEND EXTRA_COMPONENT_DIRS "${PROJECT_EXTRA_COMPONENTS}")
@@ -65,10 +64,6 @@ set(common_req log esp_rom esp_common esp_hw_support newlib)
idf_build_set_property(EXTRA_COMPONENT_EXCLUDE_DIRS "${EXTRA_COMPONENT_EXCLUDE_DIRS}")
idf_build_set_property(__COMPONENT_REQUIRES_COMMON "${common_req}")
idf_build_set_property(__OUTPUT_SDKCONFIG 0)
# Define a property for the default linker script
set(LD_DEFAULT_PATH "${CMAKE_CURRENT_SOURCE_DIR}/main/ld/${IDF_TARGET}")
idf_build_set_property(BOOTLOADER_LINKER_SCRIPT "${LD_DEFAULT_PATH}/bootloader.ld" APPEND)
idf_build_set_property(BOOTLOADER_LINKER_SCRIPT "${LD_DEFAULT_PATH}/bootloader.rom.ld" APPEND)
project(bootloader)
idf_build_set_property(COMPILE_DEFINITIONS "BOOTLOADER_BUILD=1" APPEND)

View File

@@ -1,7 +1,12 @@
idf_component_register(SRCS "bootloader_start.c"
REQUIRES bootloader bootloader_support)
idf_build_get_property(scripts BOOTLOADER_LINKER_SCRIPT)
set(target_folder "${target}")
idf_build_get_property(target IDF_TARGET)
set(scripts "ld/${target_folder}/bootloader.ld")
list(APPEND scripts "ld/${target_folder}/bootloader.rom.ld")
target_linker_script(${COMPONENT_LIB} INTERFACE "${scripts}")
target_link_libraries(${COMPONENT_LIB} INTERFACE "-u bootloader_hooks_include")

View File

@@ -1,5 +1,5 @@
/*
* SPDX-FileCopyrightText: 2015-2024 Espressif Systems (Shanghai) CO LTD
* SPDX-FileCopyrightText: 2015-2022 Espressif Systems (Shanghai) CO LTD
*
* SPDX-License-Identifier: Apache-2.0
*/
@@ -53,11 +53,6 @@ void __attribute__((noreturn)) call_start_cpu0(void)
bootloader_reset();
}
// 2.1 Load the TEE image
#if CONFIG_SECURE_ENABLE_TEE
bootloader_utility_load_tee_image(&bs);
#endif
// 3. Load the app image for booting
bootloader_utility_load_boot_image(&bs, boot_index);
}
@@ -134,10 +129,8 @@ static int selected_boot_partition(const bootloader_state_t *bs)
return boot_index;
}
#if CONFIG_LIBC_NEWLIB
// Return global reent struct if any newlib functions are linked to bootloader
struct _reent *__getreent(void)
{
return _GLOBAL_REENT;
}
#endif

View File

@@ -1,5 +1,5 @@
/*
* SPDX-FileCopyrightText: 2021-2025 Espressif Systems (Shanghai) CO LTD
* SPDX-FileCopyrightText: 2021-2024 Espressif Systems (Shanghai) CO LTD
*
* SPDX-License-Identifier: Apache-2.0
*/
@@ -261,15 +261,4 @@ SECTIONS
.comment 0 : { *(.comment) }
.note.GNU-stack 0: { *(.note.GNU-stack) }
/**
* This section is not included in the binary image; it is only present in the ELF file.
* It is used to keep certain symbols in the ELF file.
*/
.noload 0 (INFO) :
{
_noload_keep_in_elf_start = ABSOLUTE(.);
KEEP(*(.noload_keep_in_elf .noload_keep_in_elf.*))
_noload_keep_in_elf_end = ABSOLUTE(.);
}
}

View File

@@ -1,5 +1,5 @@
/*
* SPDX-FileCopyrightText: 2021-2025 Espressif Systems (Shanghai) CO LTD
* SPDX-FileCopyrightText: 2021-2024 Espressif Systems (Shanghai) CO LTD
*
* SPDX-License-Identifier: Apache-2.0
*/
@@ -27,7 +27,7 @@ bootloader_usable_dram_end = 0x3fcdcb70;
bootloader_stack_overhead = 0x2000; /* For safety margin between bootloader data section and startup stacks */
bootloader_dram_seg_len = 0x5000;
bootloader_iram_loader_seg_len = 0x7000;
bootloader_iram_seg_len = 0x2800;
bootloader_iram_seg_len = 0x2000;
/* Start of the lower region is determined by region size and the end of the higher region */
bootloader_dram_seg_end = bootloader_usable_dram_end - bootloader_stack_overhead;
@@ -94,7 +94,6 @@ SECTIONS
*libesp_hw_support.a:rtc_time.*(.literal .text .literal.* .text.*)
*libesp_hw_support.a:regi2c_ctrl.*(.literal .text .literal.* .text.*)
*libefuse.a:*.*(.literal .text .literal.* .text.*)
*libriscv.a:rv_utils.*(.literal .text .literal.* .text.*)
*(.fini.literal)
*(.fini)
*(.gnu.version)
@@ -272,17 +271,6 @@ SECTIONS
* And so forth...
*/
/DISCARD/ : { *(.rela.*) }
/**
* This section is not included in the binary image; it is only present in the ELF file.
* It is used to keep certain symbols in the ELF file.
*/
.noload 0 (INFO) :
{
_noload_keep_in_elf_start = ABSOLUTE(.);
KEEP(*(.noload_keep_in_elf .noload_keep_in_elf.*))
_noload_keep_in_elf_end = ABSOLUTE(.);
}
}
/**

View File

@@ -1,5 +1,5 @@
/*
* SPDX-FileCopyrightText: 2021-2025 Espressif Systems (Shanghai) CO LTD
* SPDX-FileCopyrightText: 2021-2024 Espressif Systems (Shanghai) CO LTD
*
* SPDX-License-Identifier: Apache-2.0
*/
@@ -27,7 +27,7 @@ bootloader_usable_dram_end = 0x3fcdc710;
bootloader_stack_overhead = 0x2000; /* For safety margin between bootloader data section and startup stacks */
bootloader_dram_seg_len = 0x5000;
bootloader_iram_loader_seg_len = 0x7000;
bootloader_iram_seg_len = 0x2800;
bootloader_iram_seg_len = 0x2000;
/* Start of the lower region is determined by region size and the end of the higher region */
bootloader_dram_seg_end = bootloader_usable_dram_end - bootloader_stack_overhead;
@@ -94,7 +94,6 @@ SECTIONS
*libesp_hw_support.a:rtc_time.*(.literal .text .literal.* .text.*)
*libesp_hw_support.a:regi2c_ctrl.*(.literal .text .literal.* .text.*)
*libefuse.a:*.*(.literal .text .literal.* .text.*)
*libriscv.a:rv_utils.*(.literal .text .literal.* .text.*)
*(.fini.literal)
*(.fini)
*(.gnu.version)
@@ -273,16 +272,6 @@ SECTIONS
*/
/DISCARD/ : { *(.rela.*) }
/**
* This section is not included in the binary image; it is only present in the ELF file.
* It is used to keep certain symbols in the ELF file.
*/
.noload 0 (INFO) :
{
_noload_keep_in_elf_start = ABSOLUTE(.);
KEEP(*(.noload_keep_in_elf .noload_keep_in_elf.*))
_noload_keep_in_elf_end = ABSOLUTE(.);
}
}

View File

@@ -1,5 +1,5 @@
/*
* SPDX-FileCopyrightText: 2021-2025 Espressif Systems (Shanghai) CO LTD
* SPDX-FileCopyrightText: 2021-2024 Espressif Systems (Shanghai) CO LTD
*
* SPDX-License-Identifier: Apache-2.0
*/
@@ -7,24 +7,24 @@
* Make sure the bootloader can load into main memory without overwriting itself.
*
* ESP32-C5 ROM static data usage is as follows:
* - 0x4084e5a0 - 0x4085c5a0: Shared buffers, used in UART/USB/SPI download mode only
* - 0x4085c5a0 - 0x4085e5a0: PRO CPU stack, can be reclaimed as heap after RTOS startup
* - 0x4085e5a0 - 0x40860000: ROM .bss and .data (not easily reclaimable)
* - 0x4084e9a0 - 0x4085c9a0: Shared buffers, used in UART/USB/SPI download mode only
* - 0x4085c9a0 - 0x4085e9a0: PRO CPU stack, can be reclaimed as heap after RTOS startup
* - 0x4085e9a0 - 0x40860000: ROM .bss and .data (not easily reclaimable)
*
* The 2nd stage bootloader can take space up to the end of ROM shared
* buffers area (0x4085c5a0).
* buffers area (0x4085c9a0).
*/
/* We consider 0x4085c5a0 to be the last usable address for 2nd stage bootloader stack overhead, dram_seg,
/* We consider 0x4085c9a0 to be the last usable address for 2nd stage bootloader stack overhead, dram_seg,
* and work out iram_seg and iram_loader_seg addresses from there, backwards.
*/
/* These lengths can be adjusted, if necessary: */
bootloader_usable_dram_end = 0x4085c5a0;
bootloader_usable_dram_end = 0x4085c9a0;
bootloader_stack_overhead = 0x2000; /* For safety margin between bootloader data section and startup stacks */
bootloader_dram_seg_len = 0x5000;
bootloader_iram_loader_seg_len = 0x7000;
bootloader_iram_seg_len = 0x2A00;
bootloader_iram_seg_len = 0x2200;
/* Start of the lower region is determined by region size and the end of the higher region */
bootloader_dram_seg_end = bootloader_usable_dram_end - bootloader_stack_overhead;
@@ -45,7 +45,7 @@ MEMORY
* 2. Update the value in this assert.
* 3. Update SRAM_DRAM_END in components/esp_system/ld/esp32c5/memory.ld.in to the same value.
*/
ASSERT(bootloader_iram_loader_seg_start == 0x4084e5a0, "bootloader_iram_loader_seg_start inconsistent with SRAM_DRAM_END");
ASSERT(bootloader_iram_loader_seg_start == 0x4084E9A0, "bootloader_iram_loader_seg_start inconsistent with SRAM_DRAM_END");
/* Default entry point: */
ENTRY(call_start_cpu0);
@@ -92,7 +92,6 @@ SECTIONS
*libesp_hw_support.a:rtc_time.*(.literal .text .literal.* .text.*)
*libesp_hw_support.a:regi2c_ctrl.*(.literal .text .literal.* .text.*)
*libefuse.a:*.*(.literal .text .literal.* .text.*)
*libriscv.a:rv_utils.*(.literal .text .literal.* .text.*)
*(.fini.literal)
*(.fini)
*(.gnu.version)
@@ -271,48 +270,38 @@ SECTIONS
*/
/DISCARD/ : { *(.rela.*) }
/**
* This section is not included in the binary image; it is only present in the ELF file.
* It is used to keep certain symbols in the ELF file.
*/
.noload 0 (INFO) :
{
_noload_keep_in_elf_start = ABSOLUTE(.);
KEEP(*(.noload_keep_in_elf .noload_keep_in_elf.*))
_noload_keep_in_elf_end = ABSOLUTE(.);
}
}
/**
* Appendix: Memory Usage of ROM bootloader
*
* 0x4084e5a0 ------------------> _dram0_0_start
* 0x4084e9a0 ------------------> _dram0_0_start
* | |
* | |
* | | 1. Large buffers that are only used in certain boot modes, see shared_buffers.h
* | |
* | |
* 0x4085c5a0 ------------------> __stack_sentry
* 0x4085c9a0 ------------------> __stack_sentry
* | |
* | | 2. Startup pro cpu stack (freed when IDF app is running)
* | |
* 0x4085e5a0 ------------------> __stack (pro cpu)
* 0x4085e9a0 ------------------> __stack (pro cpu)
* | |
* | |
* | | 3. Shared memory only used in startup code or nonos/early boot*
* | | (can be freed when IDF runs)
* | |
* | |
* 0x4085f4f8 ------------------> _dram0_rtos_reserved_start
* 0x4085f500 ------------------> _dram0_rtos_reserved_start
* | |
* | |
* | | 4. Shared memory used in startup code and when IDF runs
* | |
* | |
* 0x4085fbb4 ------------------> _dram0_rtos_reserved_end
* 0x4085fc5c ------------------> _dram0_rtos_reserved_end
* | |
* 0x4085fc60 ------------------> _data_start_interface
* 0x4085fc70 ------------------> _data_start_interface
* | |
* | | 5. End of DRAM is the 'interface' data with constant addresses (ECO compatible)
* | |

View File

@@ -1,5 +1,5 @@
/*
* SPDX-FileCopyrightText: 2021-2025 Espressif Systems (Shanghai) CO LTD
* SPDX-FileCopyrightText: 2021-2024 Espressif Systems (Shanghai) CO LTD
*
* SPDX-License-Identifier: Apache-2.0
*/
@@ -24,7 +24,7 @@ bootloader_usable_dram_end = 0x4087c610;
bootloader_stack_overhead = 0x2000; /* For safety margin between bootloader data section and startup stacks */
bootloader_dram_seg_len = 0x5000;
bootloader_iram_loader_seg_len = 0x7000;
bootloader_iram_seg_len = 0x2D00;
bootloader_iram_seg_len = 0x2500;
/* Start of the lower region is determined by region size and the end of the higher region */
bootloader_dram_seg_end = bootloader_usable_dram_end - bootloader_stack_overhead;
@@ -71,7 +71,6 @@ SECTIONS
*libbootloader_support.a:bootloader_random*.*(.literal.bootloader_random_enable .text.bootloader_random_enable)
*libbootloader_support.a:bootloader_efuse.*(.literal .text .literal.* .text.*)
*libbootloader_support.a:bootloader_utility.*(.literal .text .literal.* .text.*)
*libbootloader_support.a:bootloader_utility_tee.*(.literal .text .literal.* .text.*)
*libbootloader_support.a:bootloader_sha.*(.literal .text .literal.* .text.*)
*libbootloader_support.a:bootloader_console_loader.*(.literal .text .literal.* .text.*)
*libbootloader_support.a:bootloader_panic.*(.literal .text .literal.* .text.*)
@@ -93,7 +92,6 @@ SECTIONS
*libesp_hw_support.a:rtc_time.*(.literal .text .literal.* .text.*)
*libesp_hw_support.a:regi2c_ctrl.*(.literal .text .literal.* .text.*)
*libefuse.a:*.*(.literal .text .literal.* .text.*)
*libriscv.a:rv_utils.*(.literal .text .literal.* .text.*)
*(.fini.literal)
*(.fini)
*(.gnu.version)
@@ -272,16 +270,6 @@ SECTIONS
*/
/DISCARD/ : { *(.rela.*) }
/**
* This section is not included in the binary image; it is only present in the ELF file.
* It is used to keep certain symbols in the ELF file.
*/
.noload 0 (INFO) :
{
_noload_keep_in_elf_start = ABSOLUTE(.);
KEEP(*(.noload_keep_in_elf .noload_keep_in_elf.*))
_noload_keep_in_elf_end = ABSOLUTE(.);
}
}

View File

@@ -1,5 +1,5 @@
/*
* SPDX-FileCopyrightText: 2024-2025 Espressif Systems (Shanghai) CO LTD
* SPDX-FileCopyrightText: 2024 Espressif Systems (Shanghai) CO LTD
*
* SPDX-License-Identifier: Apache-2.0
*/
@@ -24,7 +24,7 @@ bootloader_usable_dram_end = 0x4084ca70;
bootloader_stack_overhead = 0x2000; /* For safety margin between bootloader data section and startup stacks */
bootloader_dram_seg_len = 0x5000;
bootloader_iram_loader_seg_len = 0x7000;
bootloader_iram_seg_len = 0x2D00;
bootloader_iram_seg_len = 0x2500;
/* Start of the lower region is determined by region size and the end of the higher region */
bootloader_dram_seg_end = bootloader_usable_dram_end - bootloader_stack_overhead;
@@ -92,7 +92,6 @@ SECTIONS
*libesp_hw_support.a:rtc_time.*(.literal .text .literal.* .text.*)
*libesp_hw_support.a:regi2c_ctrl.*(.literal .text .literal.* .text.*)
*libefuse.a:*.*(.literal .text .literal.* .text.*)
*libriscv.a:rv_utils.*(.literal .text .literal.* .text.*)
*(.fini.literal)
*(.fini)
*(.gnu.version)
@@ -271,16 +270,6 @@ SECTIONS
*/
/DISCARD/ : { *(.rela.*) }
/**
* This section is not included in the binary image; it is only present in the ELF file.
* It is used to keep certain symbols in the ELF file.
*/
.noload 0 (INFO) :
{
_noload_keep_in_elf_start = ABSOLUTE(.);
KEEP(*(.noload_keep_in_elf .noload_keep_in_elf.*))
_noload_keep_in_elf_end = ABSOLUTE(.);
}
}

View File

@@ -1,5 +1,5 @@
/*
* SPDX-FileCopyrightText: 2022-2025 Espressif Systems (Shanghai) CO LTD
* SPDX-FileCopyrightText: 2022-2024 Espressif Systems (Shanghai) CO LTD
*
* SPDX-License-Identifier: Apache-2.0
*/
@@ -25,7 +25,7 @@ bootloader_usable_dram_end = 0x4084cfd0;
bootloader_stack_overhead = 0x2000; /* For safety margin between bootloader data section and startup stacks */
bootloader_dram_seg_len = 0x5000;
bootloader_iram_loader_seg_len = 0x7000;
bootloader_iram_seg_len = 0x2D00;
bootloader_iram_seg_len = 0x2500;
/* Start of the lower region is determined by region size and the end of the higher region */
bootloader_dram_seg_end = bootloader_usable_dram_end - bootloader_stack_overhead;
@@ -92,7 +92,6 @@ SECTIONS
*libesp_hw_support.a:rtc_time.*(.literal .text .literal.* .text.*)
*libesp_hw_support.a:regi2c_ctrl.*(.literal .text .literal.* .text.*)
*libefuse.a:*.*(.literal .text .literal.* .text.*)
*libriscv.a:rv_utils.*(.literal .text .literal.* .text.*)
*(.fini.literal)
*(.fini)
*(.gnu.version)
@@ -271,16 +270,6 @@ SECTIONS
*/
/DISCARD/ : { *(.rela.*) }
/**
* This section is not included in the binary image; it is only present in the ELF file.
* It is used to keep certain symbols in the ELF file.
*/
.noload 0 (INFO) :
{
_noload_keep_in_elf_start = ABSOLUTE(.);
KEEP(*(.noload_keep_in_elf .noload_keep_in_elf.*))
_noload_keep_in_elf_end = ABSOLUTE(.);
}
}
/**

View File

@@ -1,319 +0,0 @@
/*
* SPDX-FileCopyrightText: 2024-2025 Espressif Systems (Shanghai) CO LTD
*
* SPDX-License-Identifier: Apache-2.0
*/
/** Simplified memory map for the bootloader.
* Make sure the bootloader can load into main memory without overwriting itself.
*
* ESP32-H21 ROM static data usage is as follows:
* - 0x4083ba78 - 0x4084d380: Shared buffers, used in UART/USB/SPI download mode only
* - 0x4084d380 - 0x4084f380: PRO CPU stack, can be reclaimed as heap after RTOS startup
* - 0x4084f380 - 0x4084fee0: ROM .bss and .data used in startup code or nonos/early boot (can be freed when IDF runs)
* - 0x4084fee0 - 0x40850000: ROM .bss and .data used in startup code and when IDF runs (cannot be freed)
*
* The 2nd stage bootloader can take space up to the end of ROM shared
* buffers area (0x4084d380).
*/
/* We consider 0x3fcdc710 to be the last usable address for 2nd stage bootloader stack overhead, dram_seg,
* and work out iram_seg and iram_loader_seg addresses from there, backwards.
*/
/* These lengths can be adjusted, if necessary: */
bootloader_usable_dram_end = 0x40849a78;
bootloader_stack_overhead = 0x2000; /* For safety margin between bootloader data section and startup stacks */
bootloader_dram_seg_len = 0x5000;
bootloader_iram_loader_seg_len = 0x7000;
bootloader_iram_seg_len = 0x2D00;
/* Start of the lower region is determined by region size and the end of the higher region */
bootloader_dram_seg_end = bootloader_usable_dram_end - bootloader_stack_overhead;
bootloader_dram_seg_start = bootloader_dram_seg_end - bootloader_dram_seg_len;
bootloader_iram_loader_seg_start = bootloader_dram_seg_start - bootloader_iram_loader_seg_len;
bootloader_iram_seg_start = bootloader_iram_loader_seg_start - bootloader_iram_seg_len;
MEMORY
{
iram_seg (RWX) : org = bootloader_iram_seg_start, len = bootloader_iram_seg_len
iram_loader_seg (RWX) : org = bootloader_iram_loader_seg_start, len = bootloader_iram_loader_seg_len
dram_seg (RW) : org = bootloader_dram_seg_start, len = bootloader_dram_seg_len
}
/* The app may use RAM for static allocations up to the start of iram_loader_seg.
* If you have changed something above and this assert fails:
* 1. Check what the new value of bootloader_iram_loader_seg start is.
* 2. Update the value in this assert.
* 3. Update SRAM_DRAM_END in components/esp_system/ld/esp32h21/memory.ld.in to the same value.
*/
ASSERT(bootloader_iram_loader_seg_start == 0x4083ba78, "bootloader_iram_loader_seg_start inconsistent with SRAM_DRAM_END");
/* Default entry point: */
ENTRY(call_start_cpu0);
SECTIONS
{
.iram_loader.text :
{
. = ALIGN (16);
_loader_text_start = ABSOLUTE(.);
*(.stub .gnu.warning .gnu.linkonce.literal.* .gnu.linkonce.t.*.literal .gnu.linkonce.t.*)
*(.iram1 .iram1.*) /* catch stray IRAM_ATTR */
*liblog.a:(.literal .text .literal.* .text.*)
/* we use either libgcc or compiler-rt, so put similar entries for them here */
*libgcc.a:(.literal .text .literal.* .text.*)
*libclang_rt.builtins.a:(.literal .text .literal.* .text.*)
*libbootloader_support.a:bootloader_clock_loader.*(.literal .text .literal.* .text.*)
*libbootloader_support.a:bootloader_common_loader.*(.literal .text .literal.* .text.*)
*libbootloader_support.a:bootloader_flash.*(.literal .text .literal.* .text.*)
*libbootloader_support.a:bootloader_random.*(.literal .text .literal.* .text.*)
*libbootloader_support.a:bootloader_random*.*(.literal.bootloader_random_disable .text.bootloader_random_disable)
*libbootloader_support.a:bootloader_efuse.*(.literal .text .literal.* .text.*)
*libbootloader_support.a:bootloader_utility.*(.literal .text .literal.* .text.*)
*libbootloader_support.a:bootloader_sha.*(.literal .text .literal.* .text.*)
*libbootloader_support.a:bootloader_console_loader.*(.literal .text .literal.* .text.*)
*libbootloader_support.a:bootloader_panic.*(.literal .text .literal.* .text.*)
*libbootloader_support.a:bootloader_soc.*(.literal .text .literal.* .text.*)
*libbootloader_support.a:esp_image_format.*(.literal .text .literal.* .text.*)
*libbootloader_support.a:flash_encrypt.*(.literal .text .literal.* .text.*)
*libbootloader_support.a:flash_encryption_secure_features.*(.literal .text .literal.* .text.*)
*libbootloader_support.a:flash_partitions.*(.literal .text .literal.* .text.*)
*libbootloader_support.a:secure_boot.*(.literal .text .literal.* .text.*)
*libbootloader_support.a:secure_boot_secure_features.*(.literal .text .literal.* .text.*)
*libbootloader_support.a:secure_boot_signatures_bootloader.*(.literal .text .literal.* .text.*)
*libmicro-ecc.a:*.*(.literal .text .literal.* .text.*)
*libspi_flash.a:*.*(.literal .text .literal.* .text.*)
*libhal.a:wdt_hal_iram.*(.literal .text .literal.* .text.*)
*libhal.a:mmu_hal.*(.literal .text .literal.* .text.*)
*libhal.a:cache_hal.*(.literal .text .literal.* .text.*)
*libhal.a:efuse_hal.*(.literal .text .literal.* .text.*)
*libesp_hw_support.a:rtc_clk.*(.literal .text .literal.* .text.*)
*libesp_hw_support.a:rtc_time.*(.literal .text .literal.* .text.*)
*libesp_hw_support.a:regi2c_ctrl.*(.literal .text .literal.* .text.*)
*libefuse.a:*.*(.literal .text .literal.* .text.*)
*libriscv.a:rv_utils.*(.literal .text .literal.* .text.*)
*(.fini.literal)
*(.fini)
*(.gnu.version)
_loader_text_end = ABSOLUTE(.);
} > iram_loader_seg
.iram.text :
{
. = ALIGN (16);
*(.entry.text)
*(.init.literal)
*(.init)
} > iram_seg
/* Shared RAM */
.dram0.bss (NOLOAD) :
{
. = ALIGN (8);
_dram_start = ABSOLUTE(.);
_bss_start = ABSOLUTE(.);
*(.dynsbss)
*(.sbss)
*(.sbss.*)
*(.gnu.linkonce.sb.*)
*(.scommon)
*(.sbss2)
*(.sbss2.*)
*(.gnu.linkonce.sb2.*)
*(.dynbss)
*(.bss)
*(.bss.*)
*(.gnu.linkonce.b.*)
*(COMMON)
. = ALIGN (8);
_bss_end = ABSOLUTE(.);
} > dram_seg
.dram0.bootdesc : ALIGN(0x10)
{
_data_start = ABSOLUTE(.);
*(.data_bootloader_desc .data_bootloader_desc.*) /* Should be the first. Bootloader version info. DO NOT PUT ANYTHING BEFORE IT! */
} > dram_seg
.dram0.data :
{
*(.dram1 .dram1.*) /* catch stray DRAM_ATTR */
*(.data)
*(.data.*)
*(.gnu.linkonce.d.*)
*(.data1)
*(.sdata)
*(.sdata.*)
*(.gnu.linkonce.s.*)
*(.gnu.linkonce.s2.*)
*(.jcr)
_data_end = ABSOLUTE(.);
} > dram_seg
.dram0.rodata :
{
_rodata_start = ABSOLUTE(.);
*(.rodata)
*(.rodata.*)
*(.gnu.linkonce.r.*)
*(.rodata1)
*(.sdata2 .sdata2.* .srodata .srodata.*)
__XT_EXCEPTION_TABLE_ = ABSOLUTE(.);
*(.xt_except_table)
*(.gcc_except_table)
*(.gnu.linkonce.e.*)
*(.gnu.version_r)
*(.eh_frame_hdr)
*(.eh_frame)
. = (. + 3) & ~ 3;
/* C++ constructor and destructor tables, properly ordered: */
__init_array_start = ABSOLUTE(.);
KEEP (*crtbegin.*(.ctors))
KEEP (*(EXCLUDE_FILE (*crtend.*) .ctors))
KEEP (*(SORT(.ctors.*)))
KEEP (*(.ctors))
__init_array_end = ABSOLUTE(.);
KEEP (*crtbegin.*(.dtors))
KEEP (*(EXCLUDE_FILE (*crtend.*) .dtors))
KEEP (*(SORT(.dtors.*)))
KEEP (*(.dtors))
/* C++ exception handlers table: */
__XT_EXCEPTION_DESCS_ = ABSOLUTE(.);
*(.xt_except_desc)
*(.gnu.linkonce.h.*)
__XT_EXCEPTION_DESCS_END__ = ABSOLUTE(.);
*(.xt_except_desc_end)
*(.dynamic)
*(.gnu.version_d)
_rodata_end = ABSOLUTE(.);
/* Literals are also RO data. */
_lit4_start = ABSOLUTE(.);
*(*.lit4)
*(.lit4.*)
*(.gnu.linkonce.lit4.*)
_lit4_end = ABSOLUTE(.);
. = ALIGN(4);
_dram_end = ABSOLUTE(.);
} > dram_seg
.iram.text :
{
_stext = .;
_text_start = ABSOLUTE(.);
*(.literal .text .literal.* .text.* .stub .gnu.warning .gnu.linkonce.literal.* .gnu.linkonce.t.*.literal .gnu.linkonce.t.*)
*(.iram .iram.*) /* catch stray IRAM_ATTR */
*(.fini.literal)
*(.fini)
*(.gnu.version)
/** CPU will try to prefetch up to 16 bytes of
* of instructions. This means that any configuration (e.g. MMU, PMS) must allow
* safe access to up to 16 bytes after the last real instruction, add
* dummy bytes to ensure this
*/
. += 16;
_text_end = ABSOLUTE(.);
_etext = .;
} > iram_seg
.riscv.attributes 0: { *(.riscv.attributes) }
/* DWARF 1 */
.debug 0 : { *(.debug) }
.line 0 : { *(.line) }
/* GNU DWARF 1 extensions */
.debug_srcinfo 0 : { *(.debug_srcinfo) }
.debug_sfnames 0 : { *(.debug_sfnames) }
/* DWARF 1.1 and DWARF 2 */
.debug_aranges 0 : { *(.debug_aranges) }
.debug_pubnames 0 : { *(.debug_pubnames) }
/* DWARF 2 */
.debug_info 0 : { *(.debug_info .gnu.linkonce.wi.*) }
.debug_abbrev 0 : { *(.debug_abbrev) }
.debug_line 0 : { *(.debug_line) }
.debug_frame 0 : { *(.debug_frame) }
.debug_str 0 : { *(.debug_str) }
.debug_loc 0 : { *(.debug_loc) }
.debug_macinfo 0 : { *(.debug_macinfo) }
.debug_pubtypes 0 : { *(.debug_pubtypes) }
/* DWARF 3 */
.debug_ranges 0 : { *(.debug_ranges) }
/* SGI/MIPS DWARF 2 extensions */
.debug_weaknames 0 : { *(.debug_weaknames) }
.debug_funcnames 0 : { *(.debug_funcnames) }
.debug_typenames 0 : { *(.debug_typenames) }
.debug_varnames 0 : { *(.debug_varnames) }
/* GNU DWARF 2 extensions */
.debug_gnu_pubnames 0 : { *(.debug_gnu_pubnames) }
.debug_gnu_pubtypes 0 : { *(.debug_gnu_pubtypes) }
/* DWARF 4 */
.debug_types 0 : { *(.debug_types) }
/* DWARF 5 */
.debug_addr 0 : { *(.debug_addr) }
.debug_line_str 0 : { *(.debug_line_str) }
.debug_loclists 0 : { *(.debug_loclists) }
.debug_macro 0 : { *(.debug_macro) }
.debug_names 0 : { *(.debug_names) }
.debug_rnglists 0 : { *(.debug_rnglists) }
.debug_str_offsets 0 : { *(.debug_str_offsets) }
.comment 0 : { *(.comment) }
.note.GNU-stack 0: { *(.note.GNU-stack) }
/**
* Discarding .rela.* sections results in the following mapping:
* .rela.text.* -> .text.*
* .rela.data.* -> .data.*
* And so forth...
*/
/DISCARD/ : { *(.rela.*) }
/**
* This section is not included in the binary image; it is only present in the ELF file.
* It is used to keep certain symbols in the ELF file.
*/
.noload 0 (INFO) :
{
_noload_keep_in_elf_start = ABSOLUTE(.);
KEEP(*(.noload_keep_in_elf .noload_keep_in_elf.*))
_noload_keep_in_elf_end = ABSOLUTE(.);
}
}
/**
* Appendix: Memory Usage of ROM bootloader
*
* 0x4083ba78 ------------------> _dram0_0_start
* | |
* | |
* | | 1. Large buffers that are only used in certain boot modes, see shared_buffers.h
* | |
* | |
* 0x4084d380 ------------------> __stack_sentry
* | |
* | | 2. Startup pro cpu stack (freed when IDF app is running)
* | |
* 0x4084f380 ------------------> __stack (pro cpu)
* | |
* | |
* | | 3. Shared memory only used in startup code or nonos/early boot*
* | | (can be freed when IDF runs)
* | |
* | |
* 0x4084fee0 ------------------> _dram0_rtos_reserved_start
* | |
* | |
* | | 4. Shared memory used in startup code and when IDF runs
* | |
* | |
* 0x4084ffc0 ------------------> _dram0_rtos_reserved_end
* | |
* 0x4084ffc8 ------------------> _data_start_interface
* | |
* | | 5. End of DRAM is the 'interface' data with constant addresses (ECO compatible)
* | |
* 0x40850000 ------------------> _data_end_interface
*/

View File

@@ -1,6 +0,0 @@
/*
* SPDX-FileCopyrightText: 2024 Espressif Systems (Shanghai) CO LTD
*
* SPDX-License-Identifier: Apache-2.0
*/
/* No definition for ESP32-H21 target */

View File

@@ -1,307 +0,0 @@
/*
* SPDX-FileCopyrightText: 2025 Espressif Systems (Shanghai) CO LTD
*
* SPDX-License-Identifier: Apache-2.0
*/
/** Simplified memory map for the bootloader.
* Make sure the bootloader can load into main memory without overwriting itself.
*
* ESP32-H4 ROM static data usage is as follows:
* - 0x4084d350 - 0x4085b350: Shared buffers, used in UART/USB/SPI download mode only
* - 0x4085b350 - 0x4085d350: PRO CPU stack, can be reclaimed as heap after RTOS startup
* - 0x4085d350 - 0x40860000: ROM .bss and .data (not easily reclaimable)
*
* The 2nd stage bootloader can take space up to the end of ROM shared
* buffers area (0x4085b350).
*/
/* We consider 0x4085b350 to be the last usable address for 2nd stage bootloader stack overhead, dram_seg,
* and work out iram_seg and iram_loader_seg addresses from there, backwards.
*/
/* These lengths can be adjusted, if necessary: */
bootloader_usable_dram_end = 0x4085d350;
bootloader_stack_overhead = 0x2000; /* For safety margin between bootloader data section and startup stacks */
bootloader_dram_seg_len = 0x5000;
bootloader_iram_loader_seg_len = 0x7000;
bootloader_iram_seg_len = 0x2200;
/* Start of the lower region is determined by region size and the end of the higher region */
bootloader_dram_seg_end = bootloader_usable_dram_end - bootloader_stack_overhead;
bootloader_dram_seg_start = bootloader_dram_seg_end - bootloader_dram_seg_len;
bootloader_iram_loader_seg_start = bootloader_dram_seg_start - bootloader_iram_loader_seg_len;
bootloader_iram_seg_start = bootloader_iram_loader_seg_start - bootloader_iram_seg_len;
MEMORY
{
iram_seg (RWX) : org = bootloader_iram_seg_start, len = bootloader_iram_seg_len
iram_loader_seg (RWX) : org = bootloader_iram_loader_seg_start, len = bootloader_iram_loader_seg_len
dram_seg (RW) : org = bootloader_dram_seg_start, len = bootloader_dram_seg_len
}
/* The app may use RAM for static allocations up to the start of iram_loader_seg.
* If you have changed something above and this assert fails:
* 1. Check what the new value of bootloader_iram_loader_seg start is.
* 2. Update the value in this assert.
* 3. Update SRAM_SEG_END in components/esp_system/ld/esp32h4/memory.ld.in to the same value.
*/
ASSERT(bootloader_iram_loader_seg_start == 0x4084f350, "bootloader_iram_loader_seg_start inconsistent with SRAM_SEG_END");
/* Default entry point: */
ENTRY(call_start_cpu0);
SECTIONS
{
.iram_loader.text :
{
. = ALIGN (16);
_loader_text_start = ABSOLUTE(.);
*(.stub .gnu.warning .gnu.linkonce.literal.* .gnu.linkonce.t.*.literal .gnu.linkonce.t.*)
*(.iram1 .iram1.*) /* catch stray IRAM_ATTR */
*liblog.a:(.literal .text .literal.* .text.*)
/* we use either libgcc or compiler-rt, so put similar entries for them here */
*libgcc.a:(.literal .text .literal.* .text.*)
*libclang_rt.builtins.a:(.literal .text .literal.* .text.*)
*libbootloader_support.a:bootloader_clock_loader.*(.literal .text .literal.* .text.*)
*libbootloader_support.a:bootloader_common_loader.*(.literal .text .literal.* .text.*)
*libbootloader_support.a:bootloader_flash.*(.literal .text .literal.* .text.*)
*libbootloader_support.a:bootloader_random.*(.literal .text .literal.* .text.*)
*libbootloader_support.a:bootloader_random*.*(.literal.bootloader_random_disable .text.bootloader_random_disable)
*libbootloader_support.a:bootloader_random*.*(.literal.bootloader_random_enable .text.bootloader_random_enable)
*libbootloader_support.a:bootloader_efuse.*(.literal .text .literal.* .text.*)
*libbootloader_support.a:bootloader_utility.*(.literal .text .literal.* .text.*)
*libbootloader_support.a:bootloader_sha.*(.literal .text .literal.* .text.*)
*libbootloader_support.a:bootloader_console_loader.*(.literal .text .literal.* .text.*)
*libbootloader_support.a:bootloader_panic.*(.literal .text .literal.* .text.*)
*libbootloader_support.a:bootloader_soc.*(.literal .text .literal.* .text.*)
*libbootloader_support.a:esp_image_format.*(.literal .text .literal.* .text.*)
*libbootloader_support.a:flash_encrypt.*(.literal .text .literal.* .text.*)
*libbootloader_support.a:flash_encryption_secure_features.*(.literal .text .literal.* .text.*)
*libbootloader_support.a:flash_partitions.*(.literal .text .literal.* .text.*)
*libbootloader_support.a:secure_boot.*(.literal .text .literal.* .text.*)
*libbootloader_support.a:secure_boot_secure_features.*(.literal .text .literal.* .text.*)
*libbootloader_support.a:secure_boot_signatures_bootloader.*(.literal .text .literal.* .text.*)
*libmicro-ecc.a:*.*(.literal .text .literal.* .text.*)
*libspi_flash.a:*.*(.literal .text .literal.* .text.*)
*libhal.a:wdt_hal_iram.*(.literal .text .literal.* .text.*)
*libhal.a:mmu_hal.*(.literal .text .literal.* .text.*)
*libhal.a:cache_hal.*(.literal .text .literal.* .text.*)
*libhal.a:efuse_hal.*(.literal .text .literal.* .text.*)
*libesp_hw_support.a:rtc_clk.*(.literal .text .literal.* .text.*)
*libesp_hw_support.a:rtc_time.*(.literal .text .literal.* .text.*)
*libesp_hw_support.a:regi2c_ctrl.*(.literal .text .literal.* .text.*)
*libefuse.a:*.*(.literal .text .literal.* .text.*)
*libriscv.a:rv_utils.*(.literal .text .literal.* .text.*)
*(.fini.literal)
*(.fini)
*(.gnu.version)
_loader_text_end = ABSOLUTE(.);
} > iram_loader_seg
.iram.text :
{
. = ALIGN (16);
*(.entry.text)
*(.init.literal)
*(.init)
} > iram_seg
/* Shared RAM */
.dram0.bss (NOLOAD) :
{
. = ALIGN (8);
_dram_start = ABSOLUTE(.);
_bss_start = ABSOLUTE(.);
*(.dynsbss)
*(.sbss)
*(.sbss.*)
*(.gnu.linkonce.sb.*)
*(.scommon)
*(.sbss2)
*(.sbss2.*)
*(.gnu.linkonce.sb2.*)
*(.dynbss)
*(.bss)
*(.bss.*)
*(.gnu.linkonce.b.*)
*(COMMON)
. = ALIGN (8);
_bss_end = ABSOLUTE(.);
} > dram_seg
.dram0.bootdesc : ALIGN(0x10)
{
_data_start = ABSOLUTE(.);
*(.data_bootloader_desc .data_bootloader_desc.*) /* Should be the first. Bootloader version info. DO NOT PUT ANYTHING BEFORE IT! */
} > dram_seg
.dram0.data :
{
*(.dram1 .dram1.*) /* catch stray DRAM_ATTR */
*(.data)
*(.data.*)
*(.gnu.linkonce.d.*)
*(.data1)
*(.sdata)
*(.sdata.*)
*(.gnu.linkonce.s.*)
*(.gnu.linkonce.s2.*)
*(.jcr)
_data_end = ABSOLUTE(.);
} > dram_seg
.dram0.rodata :
{
_rodata_start = ABSOLUTE(.);
*(.rodata)
*(.rodata.*)
*(.gnu.linkonce.r.*)
*(.rodata1)
*(.sdata2 .sdata2.* .srodata .srodata.*)
__XT_EXCEPTION_TABLE_ = ABSOLUTE(.);
*(.xt_except_table)
*(.gcc_except_table)
*(.gnu.linkonce.e.*)
*(.gnu.version_r)
*(.eh_frame_hdr)
*(.eh_frame)
. = (. + 3) & ~ 3;
/* C++ constructor and destructor tables, properly ordered: */
__init_array_start = ABSOLUTE(.);
KEEP (*crtbegin.*(.ctors))
KEEP (*(EXCLUDE_FILE (*crtend.*) .ctors))
KEEP (*(SORT(.ctors.*)))
KEEP (*(.ctors))
__init_array_end = ABSOLUTE(.);
KEEP (*crtbegin.*(.dtors))
KEEP (*(EXCLUDE_FILE (*crtend.*) .dtors))
KEEP (*(SORT(.dtors.*)))
KEEP (*(.dtors))
/* C++ exception handlers table: */
__XT_EXCEPTION_DESCS_ = ABSOLUTE(.);
*(.xt_except_desc)
*(.gnu.linkonce.h.*)
__XT_EXCEPTION_DESCS_END__ = ABSOLUTE(.);
*(.xt_except_desc_end)
*(.dynamic)
*(.gnu.version_d)
_rodata_end = ABSOLUTE(.);
/* Literals are also RO data. */
_lit4_start = ABSOLUTE(.);
*(*.lit4)
*(.lit4.*)
*(.gnu.linkonce.lit4.*)
_lit4_end = ABSOLUTE(.);
. = ALIGN(4);
_dram_end = ABSOLUTE(.);
} > dram_seg
.iram.text :
{
_stext = .;
_text_start = ABSOLUTE(.);
*(.literal .text .literal.* .text.* .stub .gnu.warning .gnu.linkonce.literal.* .gnu.linkonce.t.*.literal .gnu.linkonce.t.*)
*(.iram .iram.*) /* catch stray IRAM_ATTR */
*(.fini.literal)
*(.fini)
*(.gnu.version)
/** CPU will try to prefetch up to 16 bytes of
* of instructions. This means that any configuration (e.g. MMU, PMS) must allow
* safe access to up to 16 bytes after the last real instruction, add
* dummy bytes to ensure this
*/
. += 16;
_text_end = ABSOLUTE(.);
_etext = .;
} > iram_seg
.riscv.attributes 0: { *(.riscv.attributes) }
/* DWARF 1 */
.debug 0 : { *(.debug) }
.line 0 : { *(.line) }
/* GNU DWARF 1 extensions */
.debug_srcinfo 0 : { *(.debug_srcinfo) }
.debug_sfnames 0 : { *(.debug_sfnames) }
/* DWARF 1.1 and DWARF 2 */
.debug_aranges 0 : { *(.debug_aranges) }
.debug_pubnames 0 : { *(.debug_pubnames) }
/* DWARF 2 */
.debug_info 0 : { *(.debug_info .gnu.linkonce.wi.*) }
.debug_abbrev 0 : { *(.debug_abbrev) }
.debug_line 0 : { *(.debug_line) }
.debug_frame 0 : { *(.debug_frame) }
.debug_str 0 : { *(.debug_str) }
.debug_loc 0 : { *(.debug_loc) }
.debug_macinfo 0 : { *(.debug_macinfo) }
.debug_pubtypes 0 : { *(.debug_pubtypes) }
/* DWARF 3 */
.debug_ranges 0 : { *(.debug_ranges) }
/* SGI/MIPS DWARF 2 extensions */
.debug_weaknames 0 : { *(.debug_weaknames) }
.debug_funcnames 0 : { *(.debug_funcnames) }
.debug_typenames 0 : { *(.debug_typenames) }
.debug_varnames 0 : { *(.debug_varnames) }
/* GNU DWARF 2 extensions */
.debug_gnu_pubnames 0 : { *(.debug_gnu_pubnames) }
.debug_gnu_pubtypes 0 : { *(.debug_gnu_pubtypes) }
/* DWARF 4 */
.debug_types 0 : { *(.debug_types) }
/* DWARF 5 */
.debug_addr 0 : { *(.debug_addr) }
.debug_line_str 0 : { *(.debug_line_str) }
.debug_loclists 0 : { *(.debug_loclists) }
.debug_macro 0 : { *(.debug_macro) }
.debug_names 0 : { *(.debug_names) }
.debug_rnglists 0 : { *(.debug_rnglists) }
.debug_str_offsets 0 : { *(.debug_str_offsets) }
.comment 0 : { *(.comment) }
.note.GNU-stack 0: { *(.note.GNU-stack) }
/**
* Discarding .rela.* sections results in the following mapping:
* .rela.text.* -> .text.*
* .rela.data.* -> .data.*
* And so forth...
*/
/DISCARD/ : { *(.rela.*) }
}
/**
* Appendix: Memory Usage of ROM bootloader
*
* 0x4084d350 ------------------> _dram0_0_start
* | |
* | |
* | | 1. Large buffers that are only used in certain boot modes, see shared_buffers.h
* | |
* | |
* 0x4085b350 ------------------> __stack_sentry
* | |
* | | 2. Startup pro cpu stack (freed when IDF app is running)
* | |
* 0x4085d350 ------------------> __stack (pro cpu)
* | |
* | |
* | | 3. Shared memory only used in startup code or nonos/early boot*
* | | (can be freed when IDF runs)
* | |
* | |
* 0x4085fea8 ------------------> _dram0_rtos_reserved_start
* | |
* | |
* | | 4. Shared memory used in startup code and when IDF runs
* | |
* | |
* 0x4085ffb4 ------------------> _dram0_rtos_reserved_end
* | |
* 0x4085ffc4 ------------------> _data_start_interface
* | |
* | | 5. End of DRAM is the 'interface' data with constant addresses (ECO compatible)
* | |
* 0x40860000 ------------------> _data_end_interface
*/

View File

@@ -1,6 +0,0 @@
/*
* SPDX-FileCopyrightText: 2025 Espressif Systems (Shanghai) CO LTD
*
* SPDX-License-Identifier: Apache-2.0
*/
/* No definition for ESP32-H4 target */

View File

@@ -1,9 +1,10 @@
/*
* SPDX-FileCopyrightText: 2023-2025 Espressif Systems (Shanghai) CO LTD
* SPDX-FileCopyrightText: 2023-2024 Espressif Systems (Shanghai) CO LTD
*
* SPDX-License-Identifier: Apache-2.0
*/
/**
* TODO: IDF-8002
* Simplified memory map for the bootloader.
* Make sure the bootloader can load into main memory without overwriting itself.
*
@@ -25,7 +26,7 @@ bootloader_usable_dram_end = 0x4ff3abd0;
bootloader_stack_overhead = 0x2000; /* For safety margin between bootloader data section and startup stacks */
bootloader_dram_seg_len = 0x5000;
bootloader_iram_loader_seg_len = 0x7000;
bootloader_iram_seg_len = 0x2D00;
bootloader_iram_seg_len = 0x2000;
/* Start of the lower region is determined by region size and the end of the higher region */
bootloader_dram_seg_end = bootloader_usable_dram_end - bootloader_stack_overhead;
@@ -92,7 +93,6 @@ SECTIONS
*libesp_hw_support.a:rtc_time.*(.literal .text .literal.* .text.*)
*libesp_hw_support.a:regi2c_ctrl.*(.literal .text .literal.* .text.*)
*libefuse.a:*.*(.literal .text .literal.* .text.*)
*libriscv.a:rv_utils.*(.literal .text .literal.* .text.*)
*(.fini.literal)
*(.fini)
*(.gnu.version)
@@ -271,16 +271,6 @@ SECTIONS
*/
/DISCARD/ : { *(.rela.*) }
/**
* This section is not included in the binary image; it is only present in the ELF file.
* It is used to keep certain symbols in the ELF file.
*/
.noload 0 (INFO) :
{
_noload_keep_in_elf_start = ABSOLUTE(.);
KEEP(*(.noload_keep_in_elf .noload_keep_in_elf.*))
_noload_keep_in_elf_end = ABSOLUTE(.);
}
}

View File

@@ -1,5 +1,5 @@
/*
* SPDX-FileCopyrightText: 2021-2025 Espressif Systems (Shanghai) CO LTD
* SPDX-FileCopyrightText: 2021-2024 Espressif Systems (Shanghai) CO LTD
*
* SPDX-License-Identifier: Apache-2.0
*/
@@ -251,14 +251,4 @@ SECTIONS
.comment 0 : { *(.comment) }
.note.GNU-stack 0: { *(.note.GNU-stack) }
/**
* This section is not included in the binary image; it is only present in the ELF file.
* It is used to keep certain symbols in the ELF file.
*/
.noload 0 (INFO) :
{
_noload_keep_in_elf_start = ABSOLUTE(.);
KEEP(*(.noload_keep_in_elf .noload_keep_in_elf.*))
_noload_keep_in_elf_end = ABSOLUTE(.);
}
}

View File

@@ -1,5 +1,5 @@
/*
* SPDX-FileCopyrightText: 2021-2025 Espressif Systems (Shanghai) CO LTD
* SPDX-FileCopyrightText: 2021-2024 Espressif Systems (Shanghai) CO LTD
*
* SPDX-License-Identifier: Apache-2.0
*/
@@ -285,16 +285,6 @@ SECTIONS
.comment 0 : { *(.comment) }
.note.GNU-stack 0: { *(.note.GNU-stack) }
/**
* This section is not included in the binary image; it is only present in the ELF file.
* It is used to keep certain symbols in the ELF file.
*/
.noload 0 (INFO) :
{
_noload_keep_in_elf_start = ABSOLUTE(.);
KEEP(*(.noload_keep_in_elf .noload_keep_in_elf.*))
_noload_keep_in_elf_end = ABSOLUTE(.);
}
}
/**

View File

@@ -1,37 +1,9 @@
idf_build_get_property(target IDF_TARGET)
idf_build_get_property(esp_tee_build ESP_TEE_BUILD)
if(${target} STREQUAL "linux")
return() # This component is not supported by the POSIX/Linux simulator
endif()
if(esp_tee_build)
set(tee_inc_dirs "include"
"private_include"
"bootloader_flash/include")
set(tee_srcs "src/flash_partitions.c"
"src/bootloader_sha.c"
"src/bootloader_common_loader.c"
"src/esp_image_format.c"
"src/bootloader_utility.c"
"src/bootloader_utility_tee.c"
"bootloader_flash/src/bootloader_flash.c")
if(CONFIG_SECURE_BOOT_V2_ENABLED)
if(CONFIG_SECURE_SIGNED_APPS_RSA_SCHEME OR CONFIG_SECURE_SIGNED_APPS_ECDSA_V2_SCHEME)
list(APPEND tee_srcs "src/secure_boot_v2/secure_boot_signatures_bootloader.c"
"src/secure_boot_v2/secure_boot.c"
"src/${IDF_TARGET}/secure_boot_secure_features.c")
endif()
endif()
idf_component_register(SRCS ${tee_srcs}
INCLUDE_DIRS ${tee_inc_dirs}
PRIV_REQUIRES efuse esp_app_format)
return()
endif()
set(srcs
"src/bootloader_common.c"
"src/bootloader_common_loader.c"
@@ -64,7 +36,6 @@ if(CONFIG_APP_BUILD_TYPE_APP_2NDBOOT)
)
endif()
list(APPEND srcs "src/bootloader_sha.c")
if(CONFIG_ESP_ROM_REV0_HAS_NO_ECDSA_INTERFACE)
list(APPEND srcs "src/${IDF_TARGET}/bootloader_ecdsa.c")
endif()
@@ -78,14 +49,14 @@ if(BOOTLOADER_BUILD OR CONFIG_APP_BUILD_TYPE_RAM)
"src/bootloader_clock_loader.c"
"src/bootloader_console.c"
"src/bootloader_console_loader.c"
"src/${IDF_TARGET}/bootloader_sha.c"
"src/${IDF_TARGET}/bootloader_soc.c"
"src/${IDF_TARGET}/bootloader_${IDF_TARGET}.c"
)
if(CONFIG_SECURE_ENABLE_TEE)
list(APPEND srcs "src/bootloader_utility_tee.c")
endif()
list(APPEND priv_requires hal)
else()
list(APPEND srcs
"src/idf/bootloader_sha.c")
set(include_dirs "include" "bootloader_flash/include")
set(priv_include_dirs "private_include")
# heap is required for `heap_memory_layout.h` header

View File

@@ -1,5 +1,5 @@
/*
* SPDX-FileCopyrightText: 2020-2024 Espressif Systems (Shanghai) CO LTD
* SPDX-FileCopyrightText: 2020-2022 Espressif Systems (Shanghai) CO LTD
*
* SPDX-License-Identifier: Apache-2.0
*/
@@ -28,7 +28,7 @@ uint32_t bootloader_read_flash_id(void);
/**
* @brief Startup flow recommended by XMC. Call at startup before any erase/write operation.
*
* @return ESP_OK When startup successfully, otherwise ESP_FAIL (indicating you should reboot before erase/write).
* @return ESP_OK When startup successfully, otherwise ESP_FAIL (indiciating you should reboot before erase/write).
*/
esp_err_t bootloader_flash_xmc_startup(void);
@@ -36,16 +36,9 @@ esp_err_t bootloader_flash_xmc_startup(void);
* @brief Unlock Flash write protect.
* Please do not call this function in SDK.
*
* @note This can be overridden because it's attribute weak, when there is a same name symbol.
* @note This can be overridden because it's attribute weak.
*/
esp_err_t bootloader_flash_unlock(void);
/**
* @brief Unlock Flash write protect.
* This is alias to `bootloader_flash_unlock`.
* Please do not call this function in SDK.
*/
esp_err_t bootloader_flash_unlock_default(void);
esp_err_t __attribute__((weak)) bootloader_flash_unlock(void);
/**
* @brief Reset the flash chip (66H + 99H).

View File

@@ -1,5 +1,5 @@
/*
* SPDX-FileCopyrightText: 2020-2024 Espressif Systems (Shanghai) CO LTD
* SPDX-FileCopyrightText: 2020-2022 Espressif Systems (Shanghai) CO LTD
*
* SPDX-License-Identifier: Apache-2.0
*/
@@ -99,20 +99,15 @@ void bootloader_write_status_8b_xmc25qu64a(unsigned new_status);
Searching of this table stops when the first match is found.
*/
extern const bootloader_qio_info_t* bootloader_flash_qe_support_list;
/**
* @brief The bootloader flash qe list count number.
*/
extern uint8_t bootloader_flash_qe_list_count;
extern const bootloader_qio_info_t __attribute__((weak)) bootloader_flash_qe_support_list[];
/**
* @brief Unlock Flash write protect.
* Please do not call this function in SDK.
*
* @note This can be overridden because it's attribute weak, when there is a same name symbol.
* @note This can be overridden because it's attribute weak.
*/
esp_err_t bootloader_flash_unlock(void);
esp_err_t __attribute__((weak)) bootloader_flash_unlock(void);
#if CONFIG_BOOTLOADER_CACHE_32BIT_ADDR_QUAD_FLASH || CONFIG_BOOTLOADER_CACHE_32BIT_ADDR_OCTAL_FLASH
/**
@@ -120,7 +115,7 @@ esp_err_t bootloader_flash_unlock(void);
*
* @param flash_mode SPI flash working mode.
*
* @note This can be overridden because it's attribute weak, when there is a same name symbol.
* @note This can be overridden because it's attribute weak.
*/
void __attribute__((weak)) bootloader_flash_32bits_address_map_enable(esp_rom_spiflash_read_mode_t flash_mode);
#endif

View File

@@ -1,5 +1,5 @@
/*
* SPDX-FileCopyrightText: 2015-2025 Espressif Systems (Shanghai) CO LTD
* SPDX-FileCopyrightText: 2015-2024 Espressif Systems (Shanghai) CO LTD
*
* SPDX-License-Identifier: Apache-2.0
*/
@@ -128,10 +128,7 @@ esp_err_t bootloader_flash_read(size_t src_addr, void *dest, size_t size, bool a
*
* @note All of dest_addr, src and size have to be 4-byte aligned. If write_encrypted is set, dest_addr and size must be 32-byte aligned.
*
* @note In bootloader, when write_encrypted == true, the src buffer is encrypted in place.
*
* @note [ESP-TEE] Using this API from the TEE will return an error if the dest_addr lies
* within the active TEE partition range.
* Note: In bootloader, when write_encrypted == true, the src buffer is encrypted in place.
*
* @param dest_addr Destination address to write in Flash.
* @param src Pointer to the data to write to flash
@@ -155,9 +152,6 @@ esp_err_t bootloader_flash_erase_sector(size_t sector);
/**
* @brief Erase the Flash range.
*
* @note [ESP-TEE] Using this API from the TEE will return an error if the start_addr lies
* within the active TEE partition range.
*
* @param start_addr start address of flash offset
* @param size sector aligned size to be erased
*

View File

@@ -1,5 +1,5 @@
/*
* SPDX-FileCopyrightText: 2015-2025 Espressif Systems (Shanghai) CO LTD
* SPDX-FileCopyrightText: 2015-2024 Espressif Systems (Shanghai) CO LTD
*
* SPDX-License-Identifier: Apache-2.0
*/
@@ -13,12 +13,11 @@
#include "hal/efuse_ll.h"
#include "hal/efuse_hal.h"
#if !NON_OS_BUILD
#ifndef BOOTLOADER_BUILD
#include "spi_flash_mmap.h"
#endif
#include "hal/spi_flash_ll.h"
#include "rom/spi_flash.h"
#include "esp_private/cache_utils.h"
#if !CONFIG_IDF_TARGET_ESP32
#include "hal/spimem_flash_ll.h"
#endif
@@ -45,7 +44,7 @@
#define ESP_BOOTLOADER_SPIFLASH_QE_GD_SR2 BIT1 // QE position when you write 8 bits(for SR2) at one time.
#define ESP_BOOTLOADER_SPIFLASH_QE_SR1_2BYTE BIT9 // QE position when you write 16 bits at one time.
#if !NON_OS_BUILD
#ifndef BOOTLOADER_BUILD
/* Normal app version maps to spi_flash_mmap.h operations...
*/
static const char *TAG = "bootloader_mmap";
@@ -112,7 +111,7 @@ esp_err_t bootloader_flash_erase_range(uint32_t start_addr, uint32_t size)
return esp_flash_erase_region(NULL, start_addr, size);
}
#else // NON_OS_BUILD
#else //BOOTLOADER_BUILD
/* Bootloader version, uses ROM functions only */
#if CONFIG_IDF_TARGET_ESP32
#include "esp32/rom/cache.h"
@@ -128,53 +127,16 @@ esp_err_t bootloader_flash_erase_range(uint32_t start_addr, uint32_t size)
#include "esp32s3/rom/opi_flash.h"
#elif CONFIG_IDF_TARGET_ESP32P4
#include "esp32p4/rom/opi_flash.h"
#elif CONFIG_IDF_TARGET_ESP32C5
#include "esp32c5/rom/opi_flash.h"
#endif
#include "spi_flash/spi_flash_defs.h"
#if ESP_TEE_BUILD
#include "esp_fault.h"
#include "esp_flash_partitions.h"
#include "esp32c6/rom/spi_flash.h"
extern bool esp_tee_flash_check_paddr_in_active_tee_part(size_t paddr);
#endif
static const char *TAG = "bootloader_flash";
/*
* NOTE: Memory mapping strategy
*
* Bootloader:
* - Uses the first N-1 MMU entries for general memory mapping.
* - Reserves the Nth (last) MMU entry for flash read through the cache
* (auto-decryption).
* - This strategy is viable because the bootloader runs exclusively
* on the device from the internal SRAM.
*
* ESP-TEE (Trusted Execution Environment)
* - Cannot adopt the strategy used by the bootloader as the TEE app operates
* in parallel to the REE.
* - The few initial MMU entries have already been taken by the TEE and REE
* application flash IDROM segments.
* - The REE could have also mapped some custom flash partitions it requires.
* - Therefore, the TEE uses MMU entries from the end of the range, with the number
* of entries corresponding to the size of its IDROM segment sizes.
* - The final MMU entry in this range is reserved for flash reads through the
* cache (auto-decryption).
* - The pages used by TEE are protected by PMP (Physical Memory Protection).
* While REE attempts to mmap this protected area would trigger a load access
* fault, this is unlikely since the MMU can address up to 16MB at once.
*/
#if CONFIG_IDF_TARGET_ESP32
/* Use first 50 blocks in MMU for bootloader_mmap,
50th block for bootloader_flash_read
*/
#define MMU_BLOCK0_VADDR SOC_DROM_LOW
#define MMU_TOTAL_SIZE (0x320000)
#define MMU_BLOCK50_VADDR (MMU_BLOCK0_VADDR + MMU_TOTAL_SIZE)
#define MMAP_MMU_SIZE (0x320000)
#define MMU_BLOCK50_VADDR (MMU_BLOCK0_VADDR + MMAP_MMU_SIZE)
#define FLASH_READ_VADDR MMU_BLOCK50_VADDR
#else // !CONFIG_IDF_TARGET_ESP32
@@ -188,89 +150,21 @@ static const char *TAG = "bootloader_flash";
* On ESP32S2 we use `(SOC_DRAM0_CACHE_ADDRESS_HIGH - SOC_DRAM0_CACHE_ADDRESS_LOW)`.
* As this code is in bootloader, we keep this on ESP32S2
*/
#define MMU_TOTAL_SIZE (SOC_DRAM0_CACHE_ADDRESS_HIGH - SOC_DRAM0_CACHE_ADDRESS_LOW) // This mmu size means that the mmu size to be mapped
#define MMAP_MMU_SIZE (SOC_DRAM0_CACHE_ADDRESS_HIGH - SOC_DRAM0_CACHE_ADDRESS_LOW) // This mmu size means that the mmu size to be mapped
#else
#define MMU_TOTAL_SIZE (SOC_DRAM_FLASH_ADDRESS_HIGH - SOC_DRAM_FLASH_ADDRESS_LOW) // This mmu size means that the mmu size to be mapped
#define MMAP_MMU_SIZE (SOC_DRAM_FLASH_ADDRESS_HIGH - SOC_DRAM_FLASH_ADDRESS_LOW) // This mmu size means that the mmu size to be mapped
#endif
#define MMU_END_VADDR (MMU_BLOCK0_VADDR + MMU_TOTAL_SIZE)
#define MMU_BLOCKL_VADDR (MMU_END_VADDR - 1 * CONFIG_MMU_PAGE_SIZE)
#define FLASH_READ_VADDR MMU_BLOCKL_VADDR
#define MMU_BLOCK63_VADDR (MMU_BLOCK0_VADDR + MMAP_MMU_SIZE - SPI_FLASH_MMU_PAGE_SIZE)
#define FLASH_READ_VADDR MMU_BLOCK63_VADDR
#endif
#if !ESP_TEE_BUILD
#define MMAP_MMU_SIZE (MMU_TOTAL_SIZE)
// Represents the MMU pages available for mmapping by the bootloader
#define MMU_FREE_PAGES (MMAP_MMU_SIZE / CONFIG_MMU_PAGE_SIZE)
#define FLASH_MMAP_VADDR (MMU_BLOCK0_VADDR)
#else /* ESP_TEE_BUILD */
#define MMAP_MMU_SIZE (CONFIG_SECURE_TEE_IROM_SIZE + CONFIG_SECURE_TEE_DROM_SIZE)
// Represents the MMU pages available for mmapping by the TEE
#define MMU_FREE_PAGES (MMAP_MMU_SIZE / CONFIG_MMU_PAGE_SIZE)
#define FLASH_MMAP_VADDR (MMU_END_VADDR - (MMU_FREE_PAGES + 1) * CONFIG_MMU_PAGE_SIZE)
#endif /* !ESP_TEE_BUILD */
static bool mapped;
// Required for bootloader_flash_munmap() for ESP-TEE
static uint32_t current_mapped_size;
// Current bootloader mapping (ab)used for bootloader_read()
static uint32_t current_read_mapping = UINT32_MAX;
#if ESP_TEE_BUILD && CONFIG_IDF_TARGET_ESP32C6
extern void spi_common_set_dummy_output(esp_rom_spiflash_read_mode_t mode);
extern void spi_dummy_len_fix(uint8_t spi, uint8_t freqdiv);
/* TODO: [ESP-TEE] Workarounds for the ROM read API
*
* The esp_rom_spiflash_read API requires two workarounds on ESP32-C6 ECO0:
*
* 1. [IDF-7199] Call esp_rom_spiflash_write API once before reading.
* Without this, reads return corrupted data.
*
* 2. Configure ROM flash parameters before each read using the function below.
* Without this, the first byte read is corrupted.
*
* Note: These workarounds are not needed for ESP32-C6 ECO1 and later versions.
*/
static void rom_read_api_workaround(void)
{
static bool is_first_call = true;
if (is_first_call) {
uint32_t dummy_val = UINT32_MAX;
uint32_t dest_addr = ESP_PARTITION_TABLE_OFFSET + ESP_PARTITION_TABLE_MAX_LEN;
esp_rom_spiflash_write(dest_addr, &dummy_val, sizeof(dummy_val));
is_first_call = false;
}
uint32_t freqdiv = 0;
#if CONFIG_ESPTOOLPY_FLASHFREQ_80M
freqdiv = 1;
#elif CONFIG_ESPTOOLPY_FLASHFREQ_40M
freqdiv = 2;
#elif CONFIG_ESPTOOLPY_FLASHFREQ_20M
freqdiv = 4;
#endif
esp_rom_spiflash_read_mode_t read_mode;
#if CONFIG_ESPTOOLPY_FLASHMODE_QIO
read_mode = ESP_ROM_SPIFLASH_QIO_MODE;
#elif CONFIG_ESPTOOLPY_FLASHMODE_QOUT
read_mode = ESP_ROM_SPIFLASH_QOUT_MODE;
#elif CONFIG_ESPTOOLPY_FLASHMODE_DIO
read_mode = ESP_ROM_SPIFLASH_DIO_MODE;
#elif CONFIG_ESPTOOLPY_FLASHMODE_DOUT
read_mode = ESP_ROM_SPIFLASH_DOUT_MODE;
#endif
esp_rom_spiflash_config_clk(freqdiv, 1);
spi_dummy_len_fix(1, freqdiv);
esp_rom_spiflash_config_readmode(read_mode);
spi_common_set_dummy_output(read_mode);
}
#endif
uint32_t bootloader_mmap_get_free_pages(void)
{
/**
@@ -294,15 +188,13 @@ const void *bootloader_mmap(uint32_t src_paddr, uint32_t size)
uint32_t src_paddr_aligned = src_paddr & MMU_FLASH_MASK;
//The addr is aligned, so we add the mask off length to the size, to make sure the corresponding buses are enabled.
uint32_t size_after_paddr_aligned = (src_paddr - src_paddr_aligned) + size;
uint32_t actual_mapped_len = 0;
/**
* @note 1
* Will add here a check to make sure the vaddr is on read-only and executable buses, since we use others for psram
* Now simply check if it's valid vaddr, didn't check if it's readable, writable or executable.
* TODO: IDF-4710
*/
if (mmu_ll_check_valid_ext_vaddr_region(0, FLASH_MMAP_VADDR, size_after_paddr_aligned, MMU_VADDR_DATA | MMU_VADDR_INSTRUCTION) == 0) {
if (mmu_ll_check_valid_ext_vaddr_region(0, MMU_BLOCK0_VADDR, size_after_paddr_aligned, MMU_VADDR_DATA | MMU_VADDR_INSTRUCTION) == 0) {
ESP_EARLY_LOGE(TAG, "vaddr not valid");
return NULL;
}
@@ -312,25 +204,15 @@ const void *bootloader_mmap(uint32_t src_paddr, uint32_t size)
Cache_Read_Disable(0);
Cache_Flush(0);
#else
/* NOTE: [ESP-TEE] Cache suspension vs disabling
*
* For ESP-TEE , we use suspend the cache instead of disabling it to avoid flushing the entire cache.
* This prevents performance hits when returning to the REE app due to cache misses.
* This is not applicable to the bootloader as it runs exclusively on the device from the internal SRAM.
*/
#if !ESP_TEE_BUILD
cache_hal_disable(CACHE_LL_LEVEL_EXT_MEM, CACHE_TYPE_ALL);
#else
cache_hal_suspend(CACHE_LL_LEVEL_EXT_MEM, CACHE_TYPE_ALL);
#endif
#endif
//---------------Do mapping------------------------
ESP_EARLY_LOGD(TAG, "rodata starts from paddr=0x%08" PRIx32 ", size=0x%" PRIx32 ", will be mapped to vaddr=0x%08" PRIx32, src_paddr, size, (uint32_t)FLASH_MMAP_VADDR);
ESP_EARLY_LOGD(TAG, "rodata starts from paddr=0x%08" PRIx32 ", size=0x%" PRIx32 ", will be mapped to vaddr=0x%08" PRIx32, src_paddr, size, (uint32_t)MMU_BLOCK0_VADDR);
#if CONFIG_IDF_TARGET_ESP32
uint32_t count = GET_REQUIRED_MMU_PAGES(size, src_paddr);
int e = cache_flash_mmu_set(0, 0, FLASH_MMAP_VADDR, src_paddr_aligned, 64, count);
ESP_EARLY_LOGV(TAG, "after mapping, starting from paddr=0x%08" PRIx32 " and vaddr=0x%08" PRIx32 ", 0x%" PRIx32 " bytes are mapped", src_paddr_aligned, (uint32_t)FLASH_MMAP_VADDR, count * SPI_FLASH_MMU_PAGE_SIZE);
int e = cache_flash_mmu_set(0, 0, MMU_BLOCK0_VADDR, src_paddr_aligned, 64, count);
ESP_EARLY_LOGV(TAG, "after mapping, starting from paddr=0x%08" PRIx32 " and vaddr=0x%08" PRIx32 ", 0x%" PRIx32 " bytes are mapped", src_paddr_aligned, (uint32_t)MMU_BLOCK0_VADDR, count * SPI_FLASH_MMU_PAGE_SIZE);
if (e != 0) {
ESP_EARLY_LOGE(TAG, "cache_flash_mmu_set failed: %d", e);
Cache_Read_Enable(0);
@@ -341,8 +223,9 @@ const void *bootloader_mmap(uint32_t src_paddr, uint32_t size)
* This hal won't return error, it assumes the inputs are valid. The related check should be done in `bootloader_mmap()`.
* See above comments (note 1) about IDF-4710
*/
mmu_hal_map_region(0, MMU_TARGET_FLASH0, FLASH_MMAP_VADDR, src_paddr_aligned, size_after_paddr_aligned, &actual_mapped_len);
ESP_EARLY_LOGV(TAG, "after mapping, starting from paddr=0x%08" PRIx32 " and vaddr=0x%08" PRIx32 ", 0x%" PRIx32 " bytes are mapped", src_paddr_aligned, (uint32_t)FLASH_MMAP_VADDR, actual_mapped_len);
uint32_t actual_mapped_len = 0;
mmu_hal_map_region(0, MMU_TARGET_FLASH0, MMU_BLOCK0_VADDR, src_paddr_aligned, size_after_paddr_aligned, &actual_mapped_len);
ESP_EARLY_LOGV(TAG, "after mapping, starting from paddr=0x%08" PRIx32 " and vaddr=0x%08" PRIx32 ", 0x%" PRIx32 " bytes are mapped", src_paddr_aligned, (uint32_t)MMU_BLOCK0_VADDR, actual_mapped_len);
#endif
/**
@@ -355,19 +238,14 @@ const void *bootloader_mmap(uint32_t src_paddr, uint32_t size)
Cache_Read_Enable(0);
#else
#if SOC_CACHE_INTERNAL_MEM_VIA_L1CACHE
cache_ll_invalidate_addr(CACHE_LL_LEVEL_ALL, CACHE_TYPE_ALL, CACHE_LL_ID_ALL, FLASH_MMAP_VADDR, actual_mapped_len);
cache_ll_invalidate_addr(CACHE_LL_LEVEL_ALL, CACHE_TYPE_ALL, CACHE_LL_ID_ALL, MMU_BLOCK0_VADDR, actual_mapped_len);
#endif
#if !ESP_TEE_BUILD
cache_hal_enable(CACHE_LL_LEVEL_EXT_MEM, CACHE_TYPE_ALL);
#else
cache_hal_resume(CACHE_LL_LEVEL_EXT_MEM, CACHE_TYPE_ALL);
#endif
#endif
mapped = true;
current_mapped_size = actual_mapped_len;
return (void *)(FLASH_MMAP_VADDR + (src_paddr - src_paddr_aligned));
return (void *)(MMU_BLOCK0_VADDR + (src_paddr - src_paddr_aligned));
}
void bootloader_munmap(const void *mapping)
@@ -379,18 +257,11 @@ void bootloader_munmap(const void *mapping)
Cache_Flush(0);
mmu_init(0);
#else
#if !ESP_TEE_BUILD
cache_hal_disable(CACHE_LL_LEVEL_EXT_MEM, CACHE_TYPE_ALL);
mmu_hal_unmap_all();
#else
cache_hal_suspend(CACHE_LL_LEVEL_EXT_MEM, CACHE_TYPE_ALL);
mmu_hal_unmap_region(0, FLASH_MMAP_VADDR, current_mapped_size);
cache_hal_invalidate_addr(FLASH_MMAP_VADDR, current_mapped_size);
cache_hal_resume(CACHE_LL_LEVEL_EXT_MEM, CACHE_TYPE_ALL);
#endif
#endif
mapped = false;
current_mapped_size = 0;
current_read_mapping = UINT32_MAX;
}
}
@@ -414,11 +285,7 @@ static esp_err_t bootloader_flash_read_no_decrypt(size_t src_addr, void *dest, s
Cache_Read_Disable(0);
Cache_Flush(0);
#else
#if !ESP_TEE_BUILD
cache_hal_disable(CACHE_LL_LEVEL_EXT_MEM, CACHE_TYPE_ALL);
#elif CONFIG_ESP32C6_REV_MIN_0
rom_read_api_workaround();
#endif
#endif
esp_rom_spiflash_result_t r = esp_rom_spiflash_read(src_addr, dest, size);
@@ -426,9 +293,7 @@ static esp_err_t bootloader_flash_read_no_decrypt(size_t src_addr, void *dest, s
#if CONFIG_IDF_TARGET_ESP32
Cache_Read_Enable(0);
#else
#if !ESP_TEE_BUILD
cache_hal_enable(CACHE_LL_LEVEL_EXT_MEM, CACHE_TYPE_ALL);
#endif
#endif
return spi_to_esp_err(r);
@@ -451,13 +316,7 @@ static esp_err_t bootloader_flash_read_allow_decrypt(size_t src_addr, void *dest
Cache_Read_Disable(0);
Cache_Flush(0);
#else
#if !ESP_TEE_BUILD
cache_hal_disable(CACHE_LL_LEVEL_EXT_MEM, CACHE_TYPE_ALL);
#else
cache_hal_suspend(CACHE_LL_LEVEL_EXT_MEM, CACHE_TYPE_ALL);
//---------------Invalidating entries at to-be-mapped v_addr------------------------
cache_hal_invalidate_addr(FLASH_READ_VADDR, SPI_FLASH_MMU_PAGE_SIZE);
#endif
#endif
//---------------Do mapping------------------------
@@ -478,18 +337,13 @@ static esp_err_t bootloader_flash_read_allow_decrypt(size_t src_addr, void *dest
Cache_Read_Enable(0);
#else
#if SOC_CACHE_INTERNAL_MEM_VIA_L1CACHE
cache_ll_invalidate_addr(CACHE_LL_LEVEL_ALL, CACHE_TYPE_ALL, CACHE_LL_ID_ALL, FLASH_MMAP_VADDR, actual_mapped_len);
cache_ll_invalidate_addr(CACHE_LL_LEVEL_ALL, CACHE_TYPE_ALL, CACHE_LL_ID_ALL, MMU_BLOCK0_VADDR, actual_mapped_len);
#endif
#if !ESP_TEE_BUILD
cache_hal_enable(CACHE_LL_LEVEL_EXT_MEM, CACHE_TYPE_ALL);
#else
cache_hal_resume(CACHE_LL_LEVEL_EXT_MEM, CACHE_TYPE_ALL);
#endif
#endif
}
map_ptr = (uint32_t *)(FLASH_READ_VADDR + (word_src - map_at));
dest_words[word] = *map_ptr;
current_read_mapping = UINT32_MAX;
}
return ESP_OK;
}
@@ -518,19 +372,7 @@ esp_err_t bootloader_flash_read(size_t src_addr, void *dest, size_t size, bool a
esp_err_t bootloader_flash_write(size_t dest_addr, void *src, size_t size, bool write_encrypted)
{
/* NOTE: [ESP-TEE] Flash operation address validation with anti-FI check
*
* Ensure that flash operations cannot be executed within forbidden memory ranges
* by validating the address before proceeding.
*/
#if ESP_TEE_BUILD
bool addr_chk = esp_tee_flash_check_paddr_in_active_tee_part(dest_addr);
if (addr_chk) {
ESP_EARLY_LOGE(TAG, "bootloader_flash_write invalid dest_addr");
return ESP_FAIL;
}
ESP_FAULT_ASSERT(!addr_chk);
#endif
esp_err_t err;
size_t alignment = write_encrypted ? 32 : 4;
if ((dest_addr % alignment) != 0) {
ESP_EARLY_LOGE(TAG, "bootloader_flash_write dest_addr 0x%x not %d-byte aligned", dest_addr, alignment);
@@ -545,29 +387,16 @@ esp_err_t bootloader_flash_write(size_t dest_addr, void *src, size_t size, bool
return ESP_FAIL;
}
esp_err_t err = bootloader_flash_unlock();
err = bootloader_flash_unlock();
if (err != ESP_OK) {
return err;
}
esp_rom_spiflash_result_t rc = ESP_ROM_SPIFLASH_RESULT_OK;
if (write_encrypted && !ENCRYPTION_IS_VIRTUAL) {
rc = esp_rom_spiflash_write_encrypted(dest_addr, src, size);
return spi_to_esp_err(esp_rom_spiflash_write_encrypted(dest_addr, src, size));
} else {
rc = esp_rom_spiflash_write(dest_addr, src, size);
return spi_to_esp_err(esp_rom_spiflash_write(dest_addr, src, size));
}
/* NOTE: [ESP-TEE] Cache flushing after flash writes/erases
*
* After writing or erasing the flash, we need to flush the cache at locations
* corresponding to the destination write/erase address. This prevents stale data
* from being read from already memory-mapped addresses that were modified.
*/
#if ESP_TEE_BUILD
spi_flash_check_and_flush_cache(dest_addr, size);
#endif
return spi_to_esp_err(rc);
}
esp_err_t bootloader_flash_erase_sector(size_t sector)
@@ -577,13 +406,6 @@ esp_err_t bootloader_flash_erase_sector(size_t sector)
esp_err_t bootloader_flash_erase_range(uint32_t start_addr, uint32_t size)
{
#if ESP_TEE_BUILD
bool addr_chk = esp_tee_flash_check_paddr_in_active_tee_part(start_addr);
if (addr_chk) {
return ESP_ERR_INVALID_ARG;
}
ESP_FAULT_ASSERT(!addr_chk);
#endif
if (start_addr % FLASH_SECTOR_SIZE != 0) {
return ESP_ERR_INVALID_ARG;
}
@@ -604,10 +426,6 @@ esp_err_t bootloader_flash_erase_range(uint32_t start_addr, uint32_t size)
++sector;
}
}
#if ESP_TEE_BUILD
spi_flash_check_and_flush_cache(start_addr, size);
#endif
return spi_to_esp_err(rc);
}
@@ -618,37 +436,37 @@ void bootloader_flash_32bits_address_map_enable(esp_rom_spiflash_read_mode_t fla
switch (flash_mode) {
case ESP_ROM_SPIFLASH_DOUT_MODE:
cache_rd.addr_bit_len = 32;
cache_rd.dummy_bit_len = SPI_FLASH_DOUT_DUMMY_BITLEN;
cache_rd.dummy_bit_len = 8;
cache_rd.cmd = CMD_FASTRD_DUAL_4B;
cache_rd.cmd_bit_len = 8;
break;
case ESP_ROM_SPIFLASH_DIO_MODE:
cache_rd.addr_bit_len = 32;
cache_rd.dummy_bit_len = SPI_FLASH_DIO_DUMMY_BITLEN;
cache_rd.dummy_bit_len = 4;
cache_rd.cmd = CMD_FASTRD_DIO_4B;
cache_rd.cmd_bit_len = 8;
break;
case ESP_ROM_SPIFLASH_QOUT_MODE:
cache_rd.addr_bit_len = 32;
cache_rd.dummy_bit_len = SPI_FLASH_QOUT_DUMMY_BITLEN;
cache_rd.dummy_bit_len = 8;
cache_rd.cmd = CMD_FASTRD_QUAD_4B;
cache_rd.cmd_bit_len = 8;
break;
case ESP_ROM_SPIFLASH_QIO_MODE:
cache_rd.addr_bit_len = 32;
cache_rd.dummy_bit_len = SPI_FLASH_QIO_DUMMY_BITLEN;
cache_rd.dummy_bit_len = 6;
cache_rd.cmd = CMD_FASTRD_QIO_4B;
cache_rd.cmd_bit_len = 8;
break;
case ESP_ROM_SPIFLASH_FASTRD_MODE:
cache_rd.addr_bit_len = 32;
cache_rd.dummy_bit_len = SPI_FLASH_FASTRD_DUMMY_BITLEN;
cache_rd.dummy_bit_len = 8;
cache_rd.cmd = CMD_FASTRD_4B;
cache_rd.cmd_bit_len = 8;
break;
case ESP_ROM_SPIFLASH_SLOWRD_MODE:
cache_rd.addr_bit_len = 32;
cache_rd.dummy_bit_len = SPI_FLASH_SLOWRD_DUMMY_BITLEN;
cache_rd.dummy_bit_len = 0;
cache_rd.cmd = CMD_SLOWRD_4B;
cache_rd.cmd_bit_len = 8;
break;
@@ -662,7 +480,7 @@ void bootloader_flash_32bits_address_map_enable(esp_rom_spiflash_read_mode_t fla
}
#endif
#endif // NON_OS_BUILD
#endif // BOOTLOADER_BUILD
FORCE_INLINE_ATTR bool is_issi_chip(const esp_rom_spiflash_chip_t* chip)
@@ -681,7 +499,7 @@ FORCE_INLINE_ATTR bool is_mxic_chip(const esp_rom_spiflash_chip_t* chip)
return BYTESHIFT(chip->device_id, 2) == MXIC_ID;
}
esp_err_t IRAM_ATTR bootloader_flash_unlock_default(void)
esp_err_t IRAM_ATTR __attribute__((weak)) bootloader_flash_unlock(void)
{
// At the beginning status == new_status == status_sr2 == new_status_sr2 == 0.
// If the register doesn't need to be updated, keep them the same (0), so that no command will be actually sent.
@@ -750,17 +568,6 @@ esp_err_t IRAM_ATTR bootloader_flash_unlock_default(void)
return err;
}
esp_err_t __attribute__((weak, alias("bootloader_flash_unlock_default"))) bootloader_flash_unlock(void);
#if CONFIG_SECURE_TEE_EXT_FLASH_MEMPROT_SPI1 && !NON_OS_BUILD
extern uint32_t bootloader_flash_execute_command_common(
uint8_t command,
uint32_t addr_len, uint32_t address,
uint8_t dummy_len,
uint8_t mosi_len, uint32_t mosi_data,
uint8_t miso_len);
#else
IRAM_ATTR uint32_t bootloader_flash_execute_command_common(
uint8_t command,
uint32_t addr_len, uint32_t address,
@@ -813,7 +620,6 @@ IRAM_ATTR uint32_t bootloader_flash_execute_command_common(
}
return ret;
}
#endif
uint32_t IRAM_ATTR bootloader_execute_flash_command(uint8_t command, uint32_t mosi_data, uint8_t mosi_len, uint8_t miso_len)
{
@@ -865,7 +671,7 @@ void bootloader_spi_flash_reset(void)
#define XMC_SUPPORT CONFIG_BOOTLOADER_FLASH_XMC_SUPPORT
#define XMC_VENDOR_ID_1 0x20
#if NON_OS_BUILD
#if BOOTLOADER_BUILD
#define BOOTLOADER_FLASH_LOG(level, ...) ESP_EARLY_LOG##level(TAG, ##__VA_ARGS__)
#else
static DRAM_ATTR char bootloader_flash_tag[] = "bootloader_flash";
@@ -981,7 +787,7 @@ esp_err_t IRAM_ATTR bootloader_flash_reset_chip(void)
bool IRAM_ATTR bootloader_flash_is_octal_mode_enabled(void)
{
#if SOC_SPI_MEM_SUPPORT_FLASH_OPI_MODE
#if SOC_SPI_MEM_SUPPORT_OPI_MODE
return efuse_ll_get_flash_type();
#else
return false;

View File

@@ -93,7 +93,7 @@ void IRAM_ATTR bootloader_flash_gpio_config(const esp_image_header_t* pfhdr)
pkg_ver == EFUSE_RD_CHIP_VER_PKG_ESP32PICOV302) {
// For ESP32D2WD or ESP32-PICO series,the SPI pins are already configured
// flash clock signal should come from IO MUX.
gpio_ll_func_sel(&GPIO, FLASH_CLK_IO, MSPI_FUNC_NUM);
gpio_hal_iomux_func_sel(PERIPHS_IO_MUX_SD_CLK_U, FUNC_SD_CLK_SPICLK);
SET_PERI_REG_BITS(PERIPHS_IO_MUX_SD_CLK_U, FUN_DRV, drv, FUN_DRV_S);
} else {
const uint32_t spiconfig = esp_rom_efuse_get_flash_gpio_info();
@@ -108,14 +108,14 @@ void IRAM_ATTR bootloader_flash_gpio_config(const esp_image_header_t* pfhdr)
esp_rom_gpio_connect_out_signal(FLASH_SPIHD_IO, SPIHD_OUT_IDX, 0, 0);
esp_rom_gpio_connect_in_signal(FLASH_SPIHD_IO, SPIHD_IN_IDX, 0);
//select pin function gpio
gpio_ll_func_sel(&GPIO, FLASH_SPIQ_IO, PIN_FUNC_GPIO);
gpio_ll_func_sel(&GPIO, FLASH_SPID_IO, PIN_FUNC_GPIO);
gpio_ll_func_sel(&GPIO, FLASH_SPIHD_IO, PIN_FUNC_GPIO);
gpio_ll_func_sel(&GPIO, FLASH_SPIWP_IO, PIN_FUNC_GPIO);
gpio_ll_func_sel(&GPIO, FLASH_CS_IO, PIN_FUNC_GPIO);
gpio_hal_iomux_func_sel(PERIPHS_IO_MUX_SD_DATA0_U, PIN_FUNC_GPIO);
gpio_hal_iomux_func_sel(PERIPHS_IO_MUX_SD_DATA1_U, PIN_FUNC_GPIO);
gpio_hal_iomux_func_sel(PERIPHS_IO_MUX_SD_DATA2_U, PIN_FUNC_GPIO);
gpio_hal_iomux_func_sel(PERIPHS_IO_MUX_SD_DATA3_U, PIN_FUNC_GPIO);
gpio_hal_iomux_func_sel(PERIPHS_IO_MUX_SD_CMD_U, PIN_FUNC_GPIO);
// flash clock signal should come from IO MUX.
gpio_ll_func_sel(&GPIO, FLASH_CLK_IO, MSPI_FUNC_NUM);
// set drive ability for clock
gpio_hal_iomux_func_sel(PERIPHS_IO_MUX_SD_CLK_U, FUNC_SD_CLK_SPICLK);
SET_PERI_REG_BITS(PERIPHS_IO_MUX_SD_CLK_U, FUN_DRV, drv, FUN_DRV_S);
uint32_t flash_id = g_rom_flashchip.device_id;
@@ -190,7 +190,7 @@ int bootloader_flash_get_wp_pin(void)
case EFUSE_RD_CHIP_VER_PKG_ESP32PICOV302:
return ESP32_PICO_V3_GPIO;
default:
return FLASH_SPIWP_IO;
return MSPI_IOMUX_PIN_NUM_WP;
}
#endif
}
@@ -207,7 +207,7 @@ void bootloader_configure_spi_pins(int drv)
pkg_ver == EFUSE_RD_CHIP_VER_PKG_ESP32PICOV302) {
// For ESP32D2WD or ESP32-PICO series,the SPI pins are already configured
// flash clock signal should come from IO MUX.
gpio_ll_func_sel(&GPIO, FLASH_CLK_IO, MSPI_FUNC_NUM);
gpio_hal_iomux_func_sel(PERIPHS_IO_MUX_SD_CLK_U, FUNC_SD_CLK_SPICLK);
SET_PERI_REG_BITS(PERIPHS_IO_MUX_SD_CLK_U, FUN_DRV, drv, FUN_DRV_S);
} else {
const uint32_t spiconfig = esp_rom_efuse_get_flash_gpio_info();
@@ -222,14 +222,14 @@ void bootloader_configure_spi_pins(int drv)
esp_rom_gpio_connect_out_signal(FLASH_SPIHD_IO, SPIHD_OUT_IDX, 0, 0);
esp_rom_gpio_connect_in_signal(FLASH_SPIHD_IO, SPIHD_IN_IDX, 0);
//select pin function gpio
gpio_ll_func_sel(&GPIO, FLASH_SPIQ_IO, PIN_FUNC_GPIO);
gpio_ll_func_sel(&GPIO, FLASH_SPID_IO, PIN_FUNC_GPIO);
gpio_ll_func_sel(&GPIO, FLASH_SPIHD_IO, PIN_FUNC_GPIO);
gpio_ll_func_sel(&GPIO, FLASH_SPIWP_IO, PIN_FUNC_GPIO);
gpio_ll_func_sel(&GPIO, FLASH_CS_IO, PIN_FUNC_GPIO);
gpio_hal_iomux_func_sel(PERIPHS_IO_MUX_SD_DATA0_U, PIN_FUNC_GPIO);
gpio_hal_iomux_func_sel(PERIPHS_IO_MUX_SD_DATA1_U, PIN_FUNC_GPIO);
gpio_hal_iomux_func_sel(PERIPHS_IO_MUX_SD_DATA2_U, PIN_FUNC_GPIO);
gpio_hal_iomux_func_sel(PERIPHS_IO_MUX_SD_DATA3_U, PIN_FUNC_GPIO);
gpio_hal_iomux_func_sel(PERIPHS_IO_MUX_SD_CMD_U, PIN_FUNC_GPIO);
// flash clock signal should come from IO MUX.
gpio_ll_func_sel(&GPIO, FLASH_CLK_IO, MSPI_FUNC_NUM);
// set drive ability for clock
gpio_hal_iomux_func_sel(PERIPHS_IO_MUX_SD_CLK_U, FUNC_SD_CLK_SPICLK);
SET_PERI_REG_BITS(PERIPHS_IO_MUX_SD_CLK_U, FUN_DRV, drv, FUN_DRV_S);
#if CONFIG_SPIRAM_TYPE_ESPPSRAM32 || CONFIG_SPIRAM_TYPE_ESPPSRAM64
@@ -371,10 +371,6 @@ esp_err_t bootloader_init_spi_flash(void)
}
#endif
if ((void*)bootloader_flash_unlock != (void*)bootloader_flash_unlock_default) {
ESP_EARLY_LOGD(TAG, "Using overridden bootloader_flash_unlock");
}
bootloader_flash_unlock();
#if CONFIG_ESPTOOLPY_FLASHMODE_QIO || CONFIG_ESPTOOLPY_FLASHMODE_QOUT

View File

@@ -238,9 +238,6 @@ esp_err_t bootloader_init_spi_flash(void)
bootloader_init_flash_configure();
bootloader_spi_flash_resume();
if ((void*)bootloader_flash_unlock != (void*)bootloader_flash_unlock_default) {
ESP_EARLY_LOGD(TAG, "Using overridden bootloader_flash_unlock");
}
bootloader_flash_unlock();
#if CONFIG_ESPTOOLPY_FLASHMODE_QIO || CONFIG_ESPTOOLPY_FLASHMODE_QOUT

View File

@@ -247,9 +247,6 @@ esp_err_t bootloader_init_spi_flash(void)
#endif
bootloader_spi_flash_resume();
if ((void*)bootloader_flash_unlock != (void*)bootloader_flash_unlock_default) {
ESP_EARLY_LOGD(TAG, "Using overridden bootloader_flash_unlock");
}
bootloader_flash_unlock();
#if CONFIG_ESPTOOLPY_FLASHMODE_QIO || CONFIG_ESPTOOLPY_FLASHMODE_QOUT

View File

@@ -28,8 +28,7 @@
#include "hal/mmu_ll.h"
#include "hal/cache_hal.h"
#include "hal/cache_ll.h"
#include "hal/mspi_ll.h"
#include "bootloader_flash_override.h"
#include "hal/mspi_timing_tuning_ll.h"
void bootloader_flash_update_id()
{
@@ -54,7 +53,7 @@ void IRAM_ATTR bootloader_init_mspi_clock(void)
// Set source mspi pll clock as 80M in bootloader stage.
// SPLL clock on C5 is 480MHz , and mspi_pll needs 80MHz
// in this stage, set divider as 6
_mspi_timing_ll_set_flash_clk_src(0, FLASH_CLK_SRC_SPLL);
mspi_ll_clock_src_sel(MSPI_CLK_SRC_SPLL);
mspi_ll_fast_set_hs_divider(6);
}
@@ -118,9 +117,6 @@ static void update_flash_config(const esp_image_header_t *bootloader_hdr)
case ESP_IMAGE_FLASH_SIZE_16MB:
size = 16;
break;
case ESP_IMAGE_FLASH_SIZE_32MB:
size = 32;
break;
default:
size = 2;
}
@@ -197,9 +193,6 @@ static void print_flash_info(const esp_image_header_t *bootloader_hdr)
case ESP_IMAGE_FLASH_SIZE_16MB:
str = "16MB";
break;
case ESP_IMAGE_FLASH_SIZE_32MB:
str = "32MB";
break;
default:
str = "2MB";
break;
@@ -225,19 +218,12 @@ esp_err_t bootloader_init_spi_flash(void)
bootloader_init_flash_configure();
bootloader_spi_flash_resume();
if ((void*)bootloader_flash_unlock != (void*)bootloader_flash_unlock_default) {
ESP_EARLY_LOGD(TAG, "Using overridden bootloader_flash_unlock");
}
bootloader_flash_unlock();
#if CONFIG_ESPTOOLPY_FLASHMODE_QIO || CONFIG_ESPTOOLPY_FLASHMODE_QOUT
bootloader_enable_qio_mode();
#endif
#if CONFIG_BOOTLOADER_CACHE_32BIT_ADDR_QUAD_FLASH
bootloader_flash_32bits_address_map_enable(bootloader_flash_get_spi_mode());
#endif
print_flash_info(&bootloader_image_hdr);
cache_hal_disable(CACHE_LL_LEVEL_EXT_MEM, CACHE_TYPE_ALL);
@@ -306,10 +292,6 @@ void bootloader_flash_hardware_init(void)
bootloader_spi_flash_resume();
bootloader_flash_unlock();
#if CONFIG_BOOTLOADER_CACHE_32BIT_ADDR_QUAD_FLASH
bootloader_flash_32bits_address_map_enable(bootloader_flash_get_spi_mode());
#endif
cache_hal_disable(CACHE_LL_LEVEL_EXT_MEM, CACHE_TYPE_ALL);
update_flash_config(&hdr);
cache_hal_enable(CACHE_LL_LEVEL_EXT_MEM, CACHE_TYPE_ALL);

View File

@@ -201,9 +201,6 @@ esp_err_t bootloader_init_spi_flash(void)
{
bootloader_init_flash_configure();
bootloader_spi_flash_resume();
if ((void*)bootloader_flash_unlock != (void*)bootloader_flash_unlock_default) {
ESP_EARLY_LOGD(TAG, "Using overridden bootloader_flash_unlock");
}
bootloader_flash_unlock();
#if CONFIG_ESPTOOLPY_FLASHMODE_QIO || CONFIG_ESPTOOLPY_FLASHMODE_QOUT

View File

@@ -24,7 +24,7 @@
#include "hal/mmu_ll.h"
#include "hal/cache_hal.h"
#include "hal/cache_ll.h"
#include "hal/mspi_ll.h"
#include "hal/mspi_timing_tuning_ll.h"
static const char *TAG __attribute__((unused)) = "boot.esp32c61";
@@ -51,7 +51,7 @@ void IRAM_ATTR bootloader_init_mspi_clock(void)
// Set source mspi pll clock as 80M in bootloader stage.
// SPLL clock on C61 is 480MHz , and mspi_pll needs 80MHz
// in this stage, set divider as 6
_mspi_timing_ll_set_flash_clk_src(0, FLASH_CLK_SRC_DEFAULT);
mspi_ll_clock_src_sel(MSPI_CLK_SRC_SPLL);
mspi_ll_fast_set_hs_divider(6);
}
@@ -212,9 +212,6 @@ esp_err_t bootloader_init_spi_flash(void)
bootloader_init_mspi_clock();
bootloader_init_flash_configure();
bootloader_spi_flash_resume();
if ((void*)bootloader_flash_unlock != (void*)bootloader_flash_unlock_default) {
ESP_EARLY_LOGD(TAG, "Using overridden bootloader_flash_unlock");
}
bootloader_flash_unlock();
#if CONFIG_ESPTOOLPY_FLASHMODE_QIO || CONFIG_ESPTOOLPY_FLASHMODE_QOUT

View File

@@ -24,7 +24,6 @@
#include "hal/mmu_ll.h"
#include "hal/cache_hal.h"
#include "hal/cache_ll.h"
#include "hal/mspi_ll.h"
#include "soc/pcr_reg.h"
void bootloader_flash_update_id()
@@ -88,7 +87,7 @@ void IRAM_ATTR bootloader_configure_spi_pins(int drv)
static void IRAM_ATTR bootloader_flash_clock_init(void)
{
// At this moment, BBPLL should be enabled, safe to switch MSPI clock source to PLL_F64M (default clock src) to raise speed
_mspi_timing_ll_set_flash_clk_src(0, FLASH_CLK_SRC_PLL_F64M);
REG_SET_FIELD(PCR_MSPI_CONF_REG, PCR_MSPI_CLK_SEL, 2);
}
static void update_flash_config(const esp_image_header_t *bootloader_hdr)
@@ -210,9 +209,6 @@ esp_err_t bootloader_init_spi_flash(void)
{
bootloader_init_flash_configure();
bootloader_spi_flash_resume();
if ((void*)bootloader_flash_unlock != (void*)bootloader_flash_unlock_default) {
ESP_EARLY_LOGD(TAG, "Using overridden bootloader_flash_unlock");
}
bootloader_flash_unlock();
#if CONFIG_ESPTOOLPY_FLASHMODE_QIO || CONFIG_ESPTOOLPY_FLASHMODE_QOUT

View File

@@ -1,287 +0,0 @@
/*
* SPDX-FileCopyrightText: 2024 Espressif Systems (Shanghai) CO LTD
*
* SPDX-License-Identifier: Apache-2.0
*/
#include <stdbool.h>
#include <assert.h>
#include "string.h"
#include "sdkconfig.h"
#include "esp_err.h"
#include "esp_log.h"
#include "esp_rom_gpio.h"
#include "flash_qio_mode.h"
#include "bootloader_flash_config.h"
#include "bootloader_flash_priv.h"
#include "bootloader_init.h"
#include "hal/mmu_hal.h"
#include "hal/cache_hal.h"
#include "hal/cache_ll.h"
#include "hal/mspi_ll.h"
#include "soc/pcr_reg.h"
static const char *TAG = "boot.esp32h21";
void bootloader_flash_update_id()
{
esp_rom_spiflash_chip_t *chip = &rom_spiflash_legacy_data->chip;
chip->device_id = bootloader_read_flash_id();
}
void bootloader_flash_update_size(uint32_t size)
{
rom_spiflash_legacy_data->chip.chip_size = size;
}
void IRAM_ATTR bootloader_flash_cs_timing_config()
{
SET_PERI_REG_MASK(SPI_MEM_USER_REG(0), SPI_MEM_CS_HOLD_M | SPI_MEM_CS_SETUP_M);
SET_PERI_REG_BITS(SPI_MEM_CTRL2_REG(0), SPI_MEM_CS_HOLD_TIME_V, 0, SPI_MEM_CS_HOLD_TIME_S);
SET_PERI_REG_BITS(SPI_MEM_CTRL2_REG(0), SPI_MEM_CS_SETUP_TIME_V, 0, SPI_MEM_CS_SETUP_TIME_S);
}
void IRAM_ATTR bootloader_flash_clock_config(const esp_image_header_t *pfhdr)
{
uint32_t spi_clk_div = 0;
switch (pfhdr->spi_speed) {
case ESP_IMAGE_SPI_SPEED_DIV_1:
spi_clk_div = 1;
break;
case ESP_IMAGE_SPI_SPEED_DIV_2:
spi_clk_div = 2;
break;
case ESP_IMAGE_SPI_SPEED_DIV_3:
spi_clk_div = 3;
break;
case ESP_IMAGE_SPI_SPEED_DIV_4:
spi_clk_div = 4;
break;
default:
break;
}
esp_rom_spiflash_config_clk(spi_clk_div, 0);
}
void IRAM_ATTR bootloader_configure_spi_pins(int drv)
{
uint8_t clk_gpio_num = MSPI_IOMUX_PIN_NUM_CLK;
uint8_t q_gpio_num = MSPI_IOMUX_PIN_NUM_MISO;
uint8_t d_gpio_num = MSPI_IOMUX_PIN_NUM_MOSI;
uint8_t cs0_gpio_num = MSPI_IOMUX_PIN_NUM_CS0;
uint8_t hd_gpio_num = MSPI_IOMUX_PIN_NUM_HD;
uint8_t wp_gpio_num = MSPI_IOMUX_PIN_NUM_WP;
esp_rom_gpio_pad_set_drv(clk_gpio_num, drv);
esp_rom_gpio_pad_set_drv(q_gpio_num, drv);
esp_rom_gpio_pad_set_drv(d_gpio_num, drv);
esp_rom_gpio_pad_set_drv(cs0_gpio_num, drv);
esp_rom_gpio_pad_set_drv(hd_gpio_num, drv);
esp_rom_gpio_pad_set_drv(wp_gpio_num, drv);
}
static void IRAM_ATTR bootloader_flash_clock_init(void)
{
// At this moment, BBPLL should be enabled, safe to switch MSPI clock source to PLL_F64M (default clock src) to raise speed
_mspi_timing_ll_set_flash_clk_src(0, FLASH_CLK_SRC_PLL_F64M);
}
static void update_flash_config(const esp_image_header_t *bootloader_hdr)
{
uint32_t size;
switch (bootloader_hdr->spi_size) {
case ESP_IMAGE_FLASH_SIZE_1MB:
size = 1;
break;
case ESP_IMAGE_FLASH_SIZE_2MB:
size = 2;
break;
case ESP_IMAGE_FLASH_SIZE_4MB:
size = 4;
break;
case ESP_IMAGE_FLASH_SIZE_8MB:
size = 8;
break;
case ESP_IMAGE_FLASH_SIZE_16MB:
size = 16;
break;
default:
size = 2;
}
// Set flash chip size
esp_rom_spiflash_config_param(rom_spiflash_legacy_data->chip.device_id, size * 0x100000, 0x10000, 0x1000, 0x100, 0xffff); // TODO: set mode
}
static void print_flash_info(const esp_image_header_t *bootloader_hdr)
{
ESP_EARLY_LOGD(TAG, "magic %02x", bootloader_hdr->magic);
ESP_EARLY_LOGD(TAG, "segments %02x", bootloader_hdr->segment_count);
ESP_EARLY_LOGD(TAG, "spi_mode %02x", bootloader_hdr->spi_mode);
ESP_EARLY_LOGD(TAG, "spi_speed %02x", bootloader_hdr->spi_speed);
ESP_EARLY_LOGD(TAG, "spi_size %02x", bootloader_hdr->spi_size);
const char *str;
switch (bootloader_hdr->spi_speed) {
case ESP_IMAGE_SPI_SPEED_DIV_2:
str = "32MHz";
break;
case ESP_IMAGE_SPI_SPEED_DIV_3:
str = "21.3MHz";
break;
case ESP_IMAGE_SPI_SPEED_DIV_4:
str = "16MHz";
break;
case ESP_IMAGE_SPI_SPEED_DIV_1:
str = "64MHz";
break;
default:
str = "16MHz";
break;
}
ESP_EARLY_LOGI(TAG, "SPI Speed : %s", str);
/* SPI mode could have been set to QIO during boot already,
so test the SPI registers not the flash header */
esp_rom_spiflash_read_mode_t spi_mode = bootloader_flash_get_spi_mode();
switch (spi_mode) {
case ESP_ROM_SPIFLASH_QIO_MODE:
str = "QIO";
break;
case ESP_ROM_SPIFLASH_QOUT_MODE:
str = "QOUT";
break;
case ESP_ROM_SPIFLASH_DIO_MODE:
str = "DIO";
break;
case ESP_ROM_SPIFLASH_DOUT_MODE:
str = "DOUT";
break;
case ESP_ROM_SPIFLASH_FASTRD_MODE:
str = "FAST READ";
break;
default:
str = "SLOW READ";
break;
}
ESP_EARLY_LOGI(TAG, "SPI Mode : %s", str);
switch (bootloader_hdr->spi_size) {
case ESP_IMAGE_FLASH_SIZE_1MB:
str = "1MB";
break;
case ESP_IMAGE_FLASH_SIZE_2MB:
str = "2MB";
break;
case ESP_IMAGE_FLASH_SIZE_4MB:
str = "4MB";
break;
case ESP_IMAGE_FLASH_SIZE_8MB:
str = "8MB";
break;
case ESP_IMAGE_FLASH_SIZE_16MB:
str = "16MB";
break;
default:
str = "2MB";
break;
}
ESP_EARLY_LOGI(TAG, "SPI Flash Size : %s", str);
}
static void IRAM_ATTR bootloader_init_flash_configure(void)
{
bootloader_flash_clock_init();
bootloader_configure_spi_pins(1);
bootloader_flash_cs_timing_config();
}
static void bootloader_spi_flash_resume(void)
{
bootloader_execute_flash_command(CMD_RESUME, 0, 0, 0);
esp_rom_spiflash_wait_idle(&g_rom_flashchip);
}
esp_err_t bootloader_init_spi_flash(void)
{
bootloader_init_flash_configure();
bootloader_spi_flash_resume();
bootloader_flash_unlock();
#if CONFIG_ESPTOOLPY_FLASHMODE_QIO || CONFIG_ESPTOOLPY_FLASHMODE_QOUT
bootloader_enable_qio_mode();
#endif
print_flash_info(&bootloader_image_hdr);
cache_hal_disable(CACHE_LL_LEVEL_EXT_MEM, CACHE_TYPE_ALL);
update_flash_config(&bootloader_image_hdr);
cache_hal_enable(CACHE_LL_LEVEL_EXT_MEM, CACHE_TYPE_ALL);
//ensure the flash is write-protected
bootloader_enable_wp();
return ESP_OK;
}
#if CONFIG_APP_BUILD_TYPE_RAM && !CONFIG_APP_BUILD_TYPE_PURE_RAM_APP
static void bootloader_flash_set_spi_mode(const esp_image_header_t* pfhdr)
{
esp_rom_spiflash_read_mode_t mode;
switch(pfhdr->spi_mode) {
case ESP_IMAGE_SPI_MODE_QIO:
mode = ESP_ROM_SPIFLASH_QIO_MODE;
break;
case ESP_IMAGE_SPI_MODE_QOUT:
mode = ESP_ROM_SPIFLASH_QOUT_MODE;
break;
case ESP_IMAGE_SPI_MODE_DIO:
mode = ESP_ROM_SPIFLASH_DIO_MODE;
break;
case ESP_IMAGE_SPI_MODE_FAST_READ:
mode = ESP_ROM_SPIFLASH_FASTRD_MODE;
break;
case ESP_IMAGE_SPI_MODE_SLOW_READ:
mode = ESP_ROM_SPIFLASH_SLOWRD_MODE;
break;
default:
mode = ESP_ROM_SPIFLASH_DIO_MODE;
}
esp_rom_spiflash_config_readmode(mode);
}
void bootloader_flash_hardware_init(void)
{
esp_rom_spiflash_attach(0, false);
//init cache hal
cache_hal_init();
//init mmu
mmu_hal_init();
// update flash ID
bootloader_flash_update_id();
// Check and run XMC startup flow
esp_err_t ret = bootloader_flash_xmc_startup();
assert(ret == ESP_OK);
/* Alternative of bootloader_init_spi_flash */
// RAM app doesn't have headers in the flash. Make a default one for it.
esp_image_header_t WORD_ALIGNED_ATTR hdr = {
.spi_mode = ESP_IMAGE_SPI_MODE_DIO,
.spi_speed = ESP_IMAGE_SPI_SPEED_DIV_2,
.spi_size = ESP_IMAGE_FLASH_SIZE_2MB,
};
bootloader_configure_spi_pins(1);
bootloader_flash_set_spi_mode(&hdr);
bootloader_flash_clock_config(&hdr);
bootloader_flash_clock_init();
bootloader_flash_cs_timing_config();
bootloader_spi_flash_resume();
bootloader_flash_unlock();
cache_hal_disable(CACHE_LL_LEVEL_EXT_MEM, CACHE_TYPE_ALL);
update_flash_config(&hdr);
cache_hal_enable(CACHE_LL_LEVEL_EXT_MEM, CACHE_TYPE_ALL);
//ensure the flash is write-protected
bootloader_enable_wp();
}
#endif //CONFIG_APP_BUILD_TYPE_RAM && !CONFIG_APP_BUILD_TYPE_PURE_RAM_APP

View File

@@ -1,282 +0,0 @@
/*
* SPDX-FileCopyrightText: 2025 Espressif Systems (Shanghai) CO LTD
*
* SPDX-License-Identifier: Apache-2.0
*/
#include <stdbool.h>
#include <assert.h>
#include "string.h"
#include "sdkconfig.h"
#include "esp_err.h"
#include "esp_log.h"
#include "esp_rom_gpio.h"
#include "esp_rom_efuse.h"
#include "rom/spi_flash.h"
#include "rom/efuse.h"
#include "soc/efuse_reg.h"
#include "soc/spi_mem_reg.h"
#include "soc/soc_caps.h"
#include "flash_qio_mode.h"
#include "bootloader_flash_config.h"
#include "bootloader_common.h"
#include "bootloader_flash_priv.h"
#include "bootloader_init.h"
#include "hal/mmu_hal.h"
#include "hal/mmu_ll.h"
#include "hal/cache_hal.h"
#include "hal/cache_ll.h"
static const char *TAG = "boot.esp32h4";
void bootloader_flash_update_id()
{
esp_rom_spiflash_chip_t *chip = &rom_spiflash_legacy_data->chip;
chip->device_id = bootloader_read_flash_id();
}
void bootloader_flash_update_size(uint32_t size)
{
rom_spiflash_legacy_data->chip.chip_size = size;
}
void IRAM_ATTR bootloader_flash_cs_timing_config()
{
SET_PERI_REG_MASK(SPI_MEM_USER_REG(0), SPI_MEM_CS_HOLD_M | SPI_MEM_CS_SETUP_M);
SET_PERI_REG_BITS(SPI_MEM_CTRL2_REG(0), SPI_MEM_CS_HOLD_TIME_V, 0, SPI_MEM_CS_HOLD_TIME_S);
SET_PERI_REG_BITS(SPI_MEM_CTRL2_REG(0), SPI_MEM_CS_SETUP_TIME_V, 0, SPI_MEM_CS_SETUP_TIME_S);
}
void IRAM_ATTR bootloader_flash_clock_config(const esp_image_header_t *pfhdr)
{
uint32_t spi_clk_div = 0;
switch (pfhdr->spi_speed) {
case ESP_IMAGE_SPI_SPEED_DIV_1:
spi_clk_div = 1;
break;
case ESP_IMAGE_SPI_SPEED_DIV_2:
spi_clk_div = 2;
break;
case ESP_IMAGE_SPI_SPEED_DIV_3:
spi_clk_div = 3;
break;
case ESP_IMAGE_SPI_SPEED_DIV_4:
spi_clk_div = 4;
break;
default:
break;
}
esp_rom_spiflash_config_clk(spi_clk_div, 0);
}
void IRAM_ATTR bootloader_configure_spi_pins(int drv)
{
uint8_t clk_gpio_num = MSPI_IOMUX_PIN_NUM_CLK;
uint8_t q_gpio_num = MSPI_IOMUX_PIN_NUM_MISO;
uint8_t d_gpio_num = MSPI_IOMUX_PIN_NUM_MOSI;
uint8_t cs0_gpio_num = MSPI_IOMUX_PIN_NUM_CS0;
uint8_t hd_gpio_num = MSPI_IOMUX_PIN_NUM_HD;
uint8_t wp_gpio_num = MSPI_IOMUX_PIN_NUM_WP;
esp_rom_gpio_pad_set_drv(clk_gpio_num, drv);
esp_rom_gpio_pad_set_drv(q_gpio_num, drv);
esp_rom_gpio_pad_set_drv(d_gpio_num, drv);
esp_rom_gpio_pad_set_drv(cs0_gpio_num, drv);
esp_rom_gpio_pad_set_drv(hd_gpio_num, drv);
esp_rom_gpio_pad_set_drv(wp_gpio_num, drv);
}
static void update_flash_config(const esp_image_header_t *bootloader_hdr)
{
uint32_t size;
switch (bootloader_hdr->spi_size) {
case ESP_IMAGE_FLASH_SIZE_1MB:
size = 1;
break;
case ESP_IMAGE_FLASH_SIZE_2MB:
size = 2;
break;
case ESP_IMAGE_FLASH_SIZE_4MB:
size = 4;
break;
case ESP_IMAGE_FLASH_SIZE_8MB:
size = 8;
break;
case ESP_IMAGE_FLASH_SIZE_16MB:
size = 16;
break;
default:
size = 2;
}
// Set flash chip size
esp_rom_spiflash_config_param(rom_spiflash_legacy_data->chip.device_id, size * 0x100000, 0x10000, 0x1000, 0x100, 0xffff); // TODO: [ESP32H4] IDF-12290 set mode
}
static void print_flash_info(const esp_image_header_t *bootloader_hdr)
{
ESP_EARLY_LOGD(TAG, "magic %02x", bootloader_hdr->magic);
ESP_EARLY_LOGD(TAG, "segments %02x", bootloader_hdr->segment_count);
ESP_EARLY_LOGD(TAG, "spi_mode %02x", bootloader_hdr->spi_mode);
ESP_EARLY_LOGD(TAG, "spi_speed %02x", bootloader_hdr->spi_speed);
ESP_EARLY_LOGD(TAG, "spi_size %02x", bootloader_hdr->spi_size);
const char *str;
switch (bootloader_hdr->spi_speed) {
case ESP_IMAGE_SPI_SPEED_DIV_2:
str = "32MHz";
break;
case ESP_IMAGE_SPI_SPEED_DIV_4:
str = "16MHz";
break;
case ESP_IMAGE_SPI_SPEED_DIV_1:
str = "64MHz";
break;
default:
str = "16MHz";
break;
}
ESP_EARLY_LOGI(TAG, "SPI Speed : %s", str);
/* SPI mode could have been set to QIO during boot already,
so test the SPI registers not the flash header */
esp_rom_spiflash_read_mode_t spi_mode = bootloader_flash_get_spi_mode();
switch (spi_mode) {
case ESP_ROM_SPIFLASH_QIO_MODE:
str = "QIO";
break;
case ESP_ROM_SPIFLASH_QOUT_MODE:
str = "QOUT";
break;
case ESP_ROM_SPIFLASH_DIO_MODE:
str = "DIO";
break;
case ESP_ROM_SPIFLASH_DOUT_MODE:
str = "DOUT";
break;
case ESP_ROM_SPIFLASH_FASTRD_MODE:
str = "FAST READ";
break;
default:
str = "SLOW READ";
break;
}
ESP_EARLY_LOGI(TAG, "SPI Mode : %s", str);
switch (bootloader_hdr->spi_size) {
case ESP_IMAGE_FLASH_SIZE_1MB:
str = "1MB";
break;
case ESP_IMAGE_FLASH_SIZE_2MB:
str = "2MB";
break;
case ESP_IMAGE_FLASH_SIZE_4MB:
str = "4MB";
break;
case ESP_IMAGE_FLASH_SIZE_8MB:
str = "8MB";
break;
case ESP_IMAGE_FLASH_SIZE_16MB:
str = "16MB";
break;
default:
str = "2MB";
break;
}
ESP_EARLY_LOGI(TAG, "SPI Flash Size : %s", str);
}
static void IRAM_ATTR bootloader_init_flash_configure(void)
{
bootloader_configure_spi_pins(1);
bootloader_flash_cs_timing_config();
}
static void bootloader_spi_flash_resume(void)
{
bootloader_execute_flash_command(CMD_RESUME, 0, 0, 0);
esp_rom_spiflash_wait_idle(&g_rom_flashchip);
}
esp_err_t bootloader_init_spi_flash(void)
{
bootloader_init_flash_configure();
bootloader_spi_flash_resume();
bootloader_flash_unlock();
#if CONFIG_ESPTOOLPY_FLASHMODE_QIO || CONFIG_ESPTOOLPY_FLASHMODE_QOUT
bootloader_enable_qio_mode();
#endif
print_flash_info(&bootloader_image_hdr);
cache_hal_disable(CACHE_LL_LEVEL_EXT_MEM, CACHE_TYPE_ALL);
update_flash_config(&bootloader_image_hdr);
cache_hal_enable(CACHE_LL_LEVEL_EXT_MEM, CACHE_TYPE_ALL);
//ensure the flash is write-protected
bootloader_enable_wp();
return ESP_OK;
}
#if CONFIG_APP_BUILD_TYPE_RAM && !CONFIG_APP_BUILD_TYPE_PURE_RAM_APP
static void bootloader_flash_set_spi_mode(const esp_image_header_t* pfhdr)
{
esp_rom_spiflash_read_mode_t mode;
switch(pfhdr->spi_mode) {
case ESP_IMAGE_SPI_MODE_QIO:
mode = ESP_ROM_SPIFLASH_QIO_MODE;
break;
case ESP_IMAGE_SPI_MODE_QOUT:
mode = ESP_ROM_SPIFLASH_QOUT_MODE;
break;
case ESP_IMAGE_SPI_MODE_DIO:
mode = ESP_ROM_SPIFLASH_DIO_MODE;
break;
case ESP_IMAGE_SPI_MODE_FAST_READ:
mode = ESP_ROM_SPIFLASH_FASTRD_MODE;
break;
case ESP_IMAGE_SPI_MODE_SLOW_READ:
mode = ESP_ROM_SPIFLASH_SLOWRD_MODE;
break;
default:
mode = ESP_ROM_SPIFLASH_DIO_MODE;
}
esp_rom_spiflash_config_readmode(mode);
}
void bootloader_flash_hardware_init(void)
{
esp_rom_spiflash_attach(0, false);
//init cache hal
cache_hal_init();
//init mmu
mmu_hal_init();
// update flash ID
bootloader_flash_update_id();
// Check and run XMC startup flow
esp_err_t ret = bootloader_flash_xmc_startup();
assert(ret == ESP_OK);
/* Alternative of bootloader_init_spi_flash */
// RAM app doesn't have headers in the flash. Make a default one for it.
esp_image_header_t WORD_ALIGNED_ATTR hdr = {
.spi_mode = ESP_IMAGE_SPI_MODE_DIO,
.spi_speed = ESP_IMAGE_SPI_SPEED_DIV_2,
.spi_size = ESP_IMAGE_FLASH_SIZE_2MB,
};
bootloader_configure_spi_pins(1);
bootloader_flash_set_spi_mode(&hdr);
bootloader_flash_clock_config(&hdr);
bootloader_flash_cs_timing_config();
bootloader_spi_flash_resume();
bootloader_flash_unlock();
cache_hal_disable(CACHE_LL_LEVEL_EXT_MEM, CACHE_TYPE_ALL);
update_flash_config(&hdr);
cache_hal_enable(CACHE_LL_LEVEL_EXT_MEM, CACHE_TYPE_ALL);
//ensure the flash is write-protected
bootloader_enable_wp();
}
#endif //CONFIG_APP_BUILD_TYPE_RAM && !CONFIG_APP_BUILD_TYPE_PURE_RAM_APP

View File

@@ -19,7 +19,7 @@
#include "bootloader_init.h"
#include "hal/mmu_hal.h"
#include "hal/mmu_ll.h"
#include "hal/mspi_ll.h"
#include "hal/spimem_flash_ll.h"
#include "hal/cache_hal.h"
#include "hal/cache_ll.h"
#include "esp_private/bootloader_flash_internal.h"
@@ -44,8 +44,8 @@ void IRAM_ATTR bootloader_flash_cs_timing_config(void)
void IRAM_ATTR bootloader_init_mspi_clock(void)
{
_mspi_timing_ll_set_flash_clk_src(0, FLASH_CLK_SRC_SPLL);
_mspi_timing_ll_set_flash_core_clock(0, 80);
_spimem_flash_ll_select_clk_source(0, FLASH_CLK_SRC_SPLL);
_spimem_ctrlr_ll_set_core_clock(0, 6);
}
void IRAM_ATTR bootloader_flash_clock_config(const esp_image_header_t *pfhdr)
@@ -225,16 +225,7 @@ static void bootloader_spi_flash_resume(void)
esp_err_t bootloader_init_spi_flash(void)
{
bootloader_init_flash_configure();
#if CONFIG_BOOTLOADER_FLASH_DC_AWARE
// Reset flash, clear volatile bits DC[0:1]. Make it work under default mode to boot.
bootloader_spi_flash_reset();
#endif
bootloader_spi_flash_resume();
if ((void*)bootloader_flash_unlock != (void*)bootloader_flash_unlock_default) {
ESP_EARLY_LOGD(TAG, "Using overridden bootloader_flash_unlock");
}
bootloader_flash_unlock();
#if CONFIG_ESPTOOLPY_FLASHMODE_QIO || CONFIG_ESPTOOLPY_FLASHMODE_QOUT

View File

@@ -262,10 +262,6 @@ esp_err_t bootloader_init_spi_flash(void)
}
#endif
if ((void*)bootloader_flash_unlock != (void*)bootloader_flash_unlock_default) {
ESP_EARLY_LOGD(TAG, "Using overridden bootloader_flash_unlock");
}
bootloader_flash_unlock();
#if CONFIG_ESPTOOLPY_FLASHMODE_QIO || CONFIG_ESPTOOLPY_FLASHMODE_QOUT

View File

@@ -286,9 +286,6 @@ esp_err_t bootloader_init_spi_flash(void)
#endif
bootloader_spi_flash_resume();
if ((void*)bootloader_flash_unlock != (void*)bootloader_flash_unlock_default) {
ESP_EARLY_LOGD(TAG, "Using overridden bootloader_flash_unlock");
}
bootloader_flash_unlock();
#if CONFIG_ESPTOOLPY_FLASHMODE_QIO || CONFIG_ESPTOOLPY_FLASHMODE_QOUT

View File

@@ -1,5 +1,5 @@
/*
* SPDX-FileCopyrightText: 2015-2024 Espressif Systems (Shanghai) CO LTD
* SPDX-FileCopyrightText: 2015-2023 Espressif Systems (Shanghai) CO LTD
*
* SPDX-License-Identifier: Apache-2.0
*/
@@ -18,7 +18,6 @@
#include "soc/efuse_periph.h"
#include "soc/io_mux_reg.h"
#include "esp_private/spi_flash_os.h"
#include "bootloader_flash_override.h"
static const char *TAG = "qio_mode";
@@ -35,7 +34,7 @@ static const char *TAG = "qio_mode";
Searching of this table stops when the first match is found.
*/
const DRAM_ATTR bootloader_qio_info_t __attribute__((weak)) bootloader_flash_qe_support_list_default[] = {
const bootloader_qio_info_t __attribute__((weak)) bootloader_flash_qe_support_list[] = {
/* Manufacturer, mfg_id, flash_id, id mask, Read Status, Write Status, QIE Bit */
{ "MXIC", 0xC2, 0x2000, 0xFF00, bootloader_read_status_8b_rdsr, bootloader_write_status_8b_wrsr, 6 },
{ "ISSI", 0x9D, 0x4000, 0xCF00, bootloader_read_status_8b_rdsr, bootloader_write_status_8b_wrsr, 6 }, /* IDs 0x40xx, 0x70xx */
@@ -54,9 +53,7 @@ const DRAM_ATTR bootloader_qio_info_t __attribute__((weak)) bootloader_flash_qe_
{ NULL, 0xFF, 0xFFFF, 0xFFFF, bootloader_read_status_8b_rdsr2, bootloader_write_status_8b_wrsr2, 1 },
};
const DRAM_ATTR bootloader_qio_info_t* bootloader_flash_qe_support_list __attribute__((weak)) = bootloader_flash_qe_support_list_default;
uint8_t DRAM_ATTR __attribute__((weak)) bootloader_flash_qe_list_count = (sizeof(bootloader_flash_qe_support_list_default) / sizeof(bootloader_qio_info_t));
#define NUM_CHIPS (sizeof(bootloader_flash_qe_support_list) / sizeof(bootloader_qio_info_t))
static esp_err_t enable_qio_mode(bootloader_flash_read_status_fn_t read_status_fn,
bootloader_flash_write_status_fn_t write_status_fn,
@@ -85,11 +82,7 @@ void bootloader_enable_qio_mode(void)
flash_id = raw_flash_id & 0xFFFF;
ESP_LOGD(TAG, "Manufacturer ID 0x%02x chip ID 0x%04x", mfg_id, flash_id);
if ((intptr_t)bootloader_flash_qe_support_list != (intptr_t)bootloader_flash_qe_support_list_default) {
ESP_EARLY_LOGD(TAG, "Using overridden bootloader_flash_qio, the list number is %d", bootloader_flash_qe_list_count);
}
for (i = 0; i < bootloader_flash_qe_list_count - 1; i++) {
for (i = 0; i < NUM_CHIPS - 1; i++) {
const bootloader_qio_info_t *chip = &bootloader_flash_qe_support_list[i];
if (mfg_id == chip->mfg_id && (flash_id & chip->id_mask) == (chip->flash_id & chip->id_mask)) {
ESP_LOGI(TAG, "Enabling QIO for flash chip %s", bootloader_flash_qe_support_list[i].manufacturer);
@@ -97,7 +90,7 @@ void bootloader_enable_qio_mode(void)
}
}
if (i == bootloader_flash_qe_list_count - 1) {
if (i == NUM_CHIPS - 1) {
ESP_LOGI(TAG, "Enabling default flash chip QIO");
}
enable_qio_mode(bootloader_flash_qe_support_list[i].read_status_fn,

View File

@@ -1,5 +1,5 @@
/*
* SPDX-FileCopyrightText: 2018-2025 Espressif Systems (Shanghai) CO LTD
* SPDX-FileCopyrightText: 2018-2024 Espressif Systems (Shanghai) CO LTD
*
* SPDX-License-Identifier: Apache-2.0
*/
@@ -24,19 +24,6 @@ typedef enum {
ESP_IMAGE_APPLICATION
} esp_image_type;
/**
* @brief Check if the chip revision meets the image requirements.
*
* This function verifies whether the actual chip revision satisfies the minimum
* and optionally the maximum chip revision requirements specified in the image.
*
* @param image_header Pointer to the image header containing revision details.
* @param check_max_revision If true, also checks the maximum chip revision requirements.
*
* @return true if the chip revision meets the requirements, false otherwise.
*/
bool bootloader_common_check_chip_revision_validity(const esp_image_header_t *image_header, bool check_max_revision);
/**
* @brief Read ota_info partition and fill array from two otadata structures.
*

View File

@@ -1,53 +0,0 @@
/*
* SPDX-FileCopyrightText: 2023-2024 Espressif Systems (Shanghai) CO LTD
*
* SPDX-License-Identifier: Apache-2.0
*/
#pragma once
#include "esp_flash_partitions.h"
#ifdef __cplusplus
extern "C" {
#endif
/**
* @brief Fetch the currently running TEE partition
*
* @param[in] tee_ota_info TEE OTA data partition
*
* @return Subtype of the running TEE partition, or -1 if an error occurred
*/
int bootloader_utility_tee_get_boot_partition(const esp_partition_pos_t *tee_ota_info);
/**
* @brief Set a new TEE boot partition in the TEE OTA data
*
* @param[in] tee_ota_info TEE OTA data partition
* @param[in] tee_try_part Partition table entry for the new boot partition
*
* @return ESP_OK on success, or an error code otherwise
*/
esp_err_t bootloader_utility_tee_set_boot_partition(const esp_partition_pos_t *tee_ota_info, const esp_partition_info_t *tee_try_part);
/**
* @brief Fetch the next TEE partition for update
*
* @param[in] tee_ota_info TEE OTA data partition
*
* @return Subtype of the next TEE partition for update, or -1 if an error occurred
*/
int bootloader_utility_tee_get_next_update_partition(const esp_partition_pos_t *tee_ota_info);
/**
* @brief Mark the current TEE app as valid and cancel update rollback
*
* @param[in] tee_ota_info TEE OTA data partition
*
* @return ESP_OK on success, or an error code otherwise
*/
esp_err_t bootloader_utility_tee_mark_app_valid_and_cancel_rollback(const esp_partition_pos_t *tee_ota_info);
#ifdef __cplusplus
}
#endif

View File

@@ -26,9 +26,6 @@ typedef enum {
ESP_CHIP_ID_ESP32H2 = 0x0010, /*!< chip ID: ESP32-H2 */
ESP_CHIP_ID_ESP32P4 = 0x0012, /*!< chip ID: ESP32-P4 */
ESP_CHIP_ID_ESP32C5 = 0x0017, /*!< chip ID: ESP32-C5 */
ESP_CHIP_ID_ESP32C61= 0x0014, /*!< chip ID: ESP32-C61 */
ESP_CHIP_ID_ESP32H21= 0x0019, /*!< chip ID: ESP32-H21 */
ESP_CHIP_ID_ESP32H4 = 0x001C, /*!< chip ID: ESP32-H4 */
ESP_CHIP_ID_INVALID = 0xFFFF /*!< Invalid chip ID (we defined it to make sure the esp_chip_id_t is 2 bytes size) */
} __attribute__((packed)) esp_chip_id_t;

Some files were not shown because too many files have changed in this diff Show More