Compare commits

...

1664 Commits

Author SHA1 Message Date
Ivan Grokhotkov
012fafb827 versions: Update version to 5.1.0 2022-08-04 09:55:43 +02:00
Marius Vikhammer
87fbc2f487 Merge branch 'bugfix/ulp_wformat' into 'master'
ulp: fix -Wformat errors in ULP tests

See merge request espressif/esp-idf!19379
2022-08-04 14:13:14 +08:00
Vilem Zavodny
6e98440ab1 Merge branch 'example/i80_controller_touch' into 'master'
Add support touch into LCD example

See merge request espressif/esp-idf!18436
2022-08-04 13:50:08 +08:00
Marius Vikhammer
75cdc683ff ulp: fix -Wformat errors in ULP tests 2022-08-04 12:19:28 +08:00
Island
6c8375e2d2 Merge branch 'feature/support_ble_on_esp32c2_26M' into 'master'
support BLE with 26M xtal for esp32c2

See merge request espressif/esp-idf!19300
2022-08-04 11:07:20 +08:00
Marius Vikhammer
bc08de5f46 Merge branch 'feature/ulp_test_app' into 'master'
ulp: migrate tests to pytest embedded

Closes IDF-5605

See merge request espressif/esp-idf!19342
2022-08-04 09:12:56 +08:00
Alexey Lapshin
c462711c74 Merge branch 'bugfix/wno-format-riscv' into 'master'
build system: re-enable -Wformat warnings for RISC-V

Closes IDF-3735

See merge request espressif/esp-idf!17000
2022-08-03 23:16:53 +08:00
Jiang Jiang Jian
d8190673fe Merge branch 'bugfix/fix_disconnect_after_set_country_issue' into 'master'
esp_wifi: fix disconnect after set country issue

Closes WIFI-4637, WIFI-4638, and TCI-988

See merge request espressif/esp-idf!19204
2022-08-03 21:43:27 +08:00
Alexey Lapshin
03ce915668 build system: re-add -Wno-format as private flag for some test_apps 2022-08-03 16:42:47 +04:00
Alexey Lapshin
d10d57a597 build system: remove -Wno-format global option 2022-08-03 16:42:47 +04:00
Ivan Grokhotkov
e596c84d49 build system: re-add -Wno-format as private flag for some example components 2022-08-03 16:42:47 +04:00
Ivan Grokhotkov
401c10ecfb build system: re-add -Wno-format as private flag for some components 2022-08-03 16:42:47 +04:00
Ivan Grokhotkov
879352b7f3 build system: remove -Wno-format flag for RISC-V targets 2022-08-03 16:42:47 +04:00
Ivan Grokhotkov
cb1033abf8 log: fix -Wformat issue when uint32_t == unsigned long 2022-08-03 16:42:47 +04:00
Song Ruo Jing
842efaf753 Merge branch 'bugfix/rtc_fastmem_lpu_c3_h2' into 'master'
sleep: fix wrong register access to set/clear rtc fast mem low power mode on c3 and h2

Closes IDF-5746

See merge request espressif/esp-idf!19361
2022-08-03 19:52:24 +08:00
Alex Lisitsyn
f352469cd3 Merge branch 'bugfix/uart_fails_1M_baud_rate' into 'master'
driver: check UART physical communication on 1M baudrate

Closes IDFGH-7366

See merge request espressif/esp-idf!18211
2022-08-03 19:50:09 +08:00
Alex Lisitsyn
76a084caa3 driver: check UART physical communication on 1M baudrate 2022-08-03 19:50:09 +08:00
morris
38264f0812 Merge branch 'bugfix/kconfig_allow_pain_comment' into 'master'
kconfig: support plain comment in the menu

See merge request espressif/esp-idf!19345
2022-08-03 19:43:43 +08:00
Omar Chebib
b2eb0e16d4 Merge branch 'bugfix/TWDT_link_interruptee_stack' into 'master'
Task WDT: Interuptee task stack is now used for backtracing

Closes IDF-4976

See merge request espressif/esp-idf!19026
2022-08-03 18:23:28 +08:00
Kevin (Lao Kaiyao)
762da7e5ba Merge branch 'bugfix/fix_legacy_i2s_clock_test_failure' into 'master'
i2s_legacy_test: fix the clock test failure

Closes IDFCI-1402 and IDFCI-1408

See merge request espressif/esp-idf!19319
2022-08-03 17:13:43 +08:00
morris
104bd44377 kconfig: support plain comment in the menu 2022-08-03 17:03:54 +08:00
morris
307d26659e Merge branch 'bugfix/rmt_hw_issue' into 'master'
rmt: only use register to control the IDLE state (hardware issue workaround)

See merge request espressif/esp-idf!19344
2022-08-03 17:01:44 +08:00
Shubham Kulkarni
7bfb89e3b3 Merge branch 'feature/custom_partition_subtypes' into 'master'
gen_esp32part.py: Support custom partition types

See merge request espressif/esp-idf!18656
2022-08-03 16:43:57 +08:00
Jiang Jiang Jian
373524cec2 Merge branch 'opt/bluedroid_adv_report_datapath' into 'master'
component/bt: optimize BLE adv report datapath and adv report flow control mechanism

Closes BT-2561

See merge request espressif/esp-idf!19171
2022-08-03 16:31:23 +08:00
Armando (Dou Yiwen)
df1c54d6fc Merge branch 'ci/raise_c3_adc_high_low_test_threshold' into 'master'
ci: raise legacy adc high/low test low thresh on ESP32C3

See merge request espressif/esp-idf!19356
2022-08-03 15:21:45 +08:00
songruojing
e8915e14e7 esp_hw_support: fix wrong register access to set/clear rtc fast mem low power mode on c3 and h2 2022-08-03 14:33:13 +08:00
Konstantin Kondrashov
e57257a6db Merge branch 'feature/adds_efuse_hdr' into 'master'
efuse: Adds missing header

Closes IDF-5734

See merge request espressif/esp-idf!19328
2022-08-03 13:43:44 +08:00
Shubham Kulkarni
3689035b7c tests: Fix CI build failures 2022-08-03 05:18:37 +00:00
Shubham Kulkarni
1bb1b70e0f docs: Add documentation for define extra partition subtypes through build system 2022-08-03 05:18:37 +00:00
Shubham Kulkarni
24f9e348c9 test_apps: Add a test to verify working of custom partition subtypes 2022-08-03 05:18:37 +00:00
Shubham Kulkarni
b6d69840e8 partition_table: Support registering custom subtypes 2022-08-03 05:18:37 +00:00
laokaiyao
4c446222e1 i2s_test: fix mono stereo test 2022-08-03 13:14:48 +08:00
laokaiyao
a32a89b002 i2s_legacy_test: fix the clock test issue 2022-08-03 13:14:48 +08:00
Shu Chen
3e4c0a40c2 Merge branch 'feature/update_esp32h2beta2_libphy_libbtbb' into 'master'
esp_phy: update esp32h2beta2 libphy and libbtbb

See merge request espressif/esp-idf!19231
2022-08-03 12:46:00 +08:00
Shu Chen
e380704731 Merge branch 'feature/otbr-nat64' into 'master'
openthread: add NAT64 and DNS64 support

See merge request espressif/esp-idf!18708
2022-08-03 12:01:23 +08:00
muhaidong
5fd42affdb esp_wifi: fix disconnect after set country issue 2022-08-03 11:53:37 +08:00
Chen Jian Xing
804bdc1721 Merge branch 'bugfix/fix_deinit_return_ok_when_wifi_no_longer_initialized_issue' into 'master'
esp_wifi: fix deinit return wrong value.

Closes IDFGH-7037, IDFGH-7475, and DOC-3220

See merge request espressif/esp-idf!18445
2022-08-03 11:41:20 +08:00
Armando
50229cfe06 ci: raise legacy adc high/low test low thresh 2022-08-03 11:28:52 +08:00
morris
de365f0e7a Merge branch 'feature/mcpwm_test_iram_safe' into 'master'
driver-ng: test with CONFIG_COMPILER_OPTIMIZATION_NONE=y

See merge request espressif/esp-idf!19283
2022-08-03 10:55:02 +08:00
morris
8de9fd8cd7 rmt: only use register to control IDLE state
hardware issue: we can't control the IDLE level by the stop item
when loop transmission is enabled.
But we can always control the IDLE state by register.
2022-08-03 10:51:43 +08:00
morris
45524408df coverity: fix uninit variable issue in driver
Related CID:
389832, 389838, 389880, 286743, 286752, 395156, 291011, 396001, 396002
2022-08-03 10:46:50 +08:00
Marius Vikhammer
035924a8f1 ulp: migrate tests to pytest embedded 2022-08-03 09:36:17 +08:00
Ivan Grokhotkov
f332790af5 Merge branch 'feature/update-gdb-to-11.2_20220729' into 'master'
tools: update gdb version to '11.2_20220729'

Closes IDFGH-7851

See merge request espressif/esp-idf!19293
2022-08-02 23:59:19 +08:00
morris
480f80868a mcpwm: test iram safe interrupt 2022-08-02 23:07:06 +08:00
morris
cf4cfc69ed esp_adc: add test with -O0 2022-08-02 23:07:06 +08:00
morris
a5a171926b rmt: add test with -O0 2022-08-02 23:07:06 +08:00
morris
031adc01c4 gpio: add test with -O0 2022-08-02 23:07:06 +08:00
morris
ca175857d1 pcnt: add test with -O0 2022-08-02 23:07:06 +08:00
morris
8987164385 i2s: add test with -O0 2022-08-02 23:07:06 +08:00
morris
7faf1bee73 gptimer: add test with -O0 2022-08-02 22:53:36 +08:00
KonstantinKondrashov
3f6a1625bb efuse: Adds missing header 2022-08-02 22:43:12 +08:00
Ivan Grokhotkov
a0689f0434 Merge branch 'feature/format-hint' into 'master'
Tools: Add hint to resolve [u]int32_t formatting errors

See merge request espressif/esp-idf!19296
2022-08-02 22:41:06 +08:00
Roland Dobai
8e88444f29 Merge branch 'bugfix/enable-extending-fat-table' into 'master'
fatfsgen.py/fatfsparse.py: enabled extension of the FAT table

Closes IDF-5688 and IDF-5733

See merge request espressif/esp-idf!19299
2022-08-02 22:39:06 +08:00
zhangwenxu
0da97b43d3 esp_phy: update esp32h2beta2 libphy and libbtbb
esp32h2beta2 rx performance optimization
2022-08-02 14:01:05 +00:00
Martin Gano
59ecac263e Merge branch 'docs/add-missing-cmd-parameter-fatfsparse' into 'master'
fatfsparse.py/docs: Added missing cmd parameter to the docs

See merge request espressif/esp-idf!19301
2022-08-02 18:56:25 +08:00
Karl Wang
2462003fde component/bt: use OSI utility "osi_event" for HCI downstream data processing 2022-08-02 17:40:00 +08:00
wangmengyang
f402778320 component/bt: consider to handle HCI LE Direct Advertising Report 2022-08-02 17:40:00 +08:00
Karl Wang
8c756dad23 component/bt: allocate and use one static buffer for HCI adv flow control command 2022-08-02 17:40:00 +08:00
wangmengyang
85fc8321c8 component/bt: use fixed_pkt_queue instead of fixed_queue for hci commands
some fixes after modifications:
  1. removed the use of waiting_command_t
  2. fix assert for HCI write_eir command
  3. fixed the crash upon handling command status event when trying to free to the HCI command buffer
  4. fixed the issue in transmitting HCI vendor specific commands
  5. fixed the lost command complete callbacks for HCI commands LE_RAND and LE_ENCRYPT
2022-08-02 17:37:24 +08:00
Alexey Lapshin
5fb109f2e8 Tools: Add hint to resolve [u]int32_t formatting errors 2022-08-02 12:45:10 +04:00
Fu Hanxi
f315986401 Merge branch 'feat/add_ci_related_requirements_txt' into 'master'
Feat/add ci related requirements txt

Closes IDF-4590 and IDFCI-1389

See merge request espressif/esp-idf!19246
2022-08-02 15:49:36 +08:00
Jiang Jiang Jian
c47c0097e2 Merge branch 'bugfix/memory_debug_not_work' into 'master'
bugfix/fix the dependency error of macro for memory debug

Closes IDFGH-9248

See merge request espressif/esp-idf!19233
2022-08-02 15:48:58 +08:00
wangmengyang
9bda2381ea component/bt: add a timer to monitor the adv flow control credits downwards procedure 2022-08-02 14:14:07 +08:00
wangmengyang
5f074e1336 component/bt: fix adv report flow control logic, give ADV report credits every 10 packets 2022-08-02 14:14:07 +08:00
wangmengyang
0a1fa3e204 component/bt: add simple ADV flow control mechanism -- drop the packets when the adv report queues are considered full 2022-08-02 14:14:07 +08:00
wangmengyang
9a5f854760 component/bt: use the OSI utility "osi_event" to handle adv report in btc_layer 2022-08-02 14:14:07 +08:00
Karl Wang
a075aa564f component/bt: use the OSI utility "pkt_queue" to store ADV report packet in btu layer 2022-08-02 14:14:07 +08:00
wangmengyang
57336e0a0e component/bt: use the OSI utility "osi_event" for hci_hal_h4 upstream data packets handling 2022-08-02 14:14:07 +08:00
wangmengyang
3c8671f592 component/bt: use the OSI utility "osi_event" to handle A2DP source data Tx processing 2022-08-02 14:14:07 +08:00
wangmengyang
578bfa3600 component/bt: use the OSI utility "osi_event" to handle A2DP sink data Rx processing 2022-08-02 14:14:07 +08:00
wangmengyang
c0b86fefc6 component/bt: add new OSI utility "fixed_pkt_queue", which has same functionality with "fixed_queue" 2022-08-02 14:14:07 +08:00
Karl Wang
eea8a285e3 component/bt: add new OSI utility "pkt_queue" which acts as a mutex-protected linked list, to be used as data queue between tasks 2022-08-02 14:14:07 +08:00
wangmengyang
7c1ee339bc component/bt: add new OSI utility "osi_event" to support the scenario that event need only to be handle once. 2022-08-02 14:14:07 +08:00
wangmengyang
81c87cf4ca component/bt: make OSI thread workqueue length configurable through API
reduce the length of workqueue1 for BTC and HCI task

# Conflicts:
#	components/bt/common/osi/thread.c
2022-08-02 14:14:07 +08:00
wangmengyang
77e98e468d component/bt: modify the implementation of osi_thread using freeRTOS queue 2022-08-02 14:14:07 +08:00
Vilem Zavodny
036705fe8f examples/lcd: Add touch support into i80 lcd example. 2022-08-02 08:11:13 +02:00
Omar Chebib
2f7bae7a6e Task WDT: add a panic test case for to test panic on both CPU cores 2022-08-02 12:41:14 +08:00
Omar Chebib
e25cda2c40 Task WDT: Interuptee task stack is now used for backtracing, regardless of the CPU core
For RISC-V and Xtensa targets, in case a panic needs to happen when
Task WDT is triggered (ESP_TASK_WDT_PANIC), the interruptee's stack
is now used for printing the backtrace.
Abort after Task Watchdog is triggered can happen on APP CPU (second core).
2022-08-02 12:41:14 +08:00
muhaidong
ab8be80c3c esp_wifi: fix deinit return wrong value
1. Deinit does not return ESP_ERR_WIFI_NOT_INIT if the wifi driver is no longer initialized.
2. Fix get wrong channel value use esp_wifi_get_config.
3. Fix bug of missing unlock when wifi stop.
4. Fix annotation error of api esp_wifi_connect.
2022-08-02 11:45:21 +08:00
Marius Vikhammer
d7ab8fd4ba Merge branch 'docs/pdf_lcd' into 'master'
docs: fix broken link to lcd example

See merge request espressif/esp-idf!19331
2022-08-02 11:35:34 +08:00
Jiang Jiang Jian
03a8235098 Merge branch 'bugfix/set_default_authmode_wpa2' into 'master'
esp_wifi: set default authmode threshold as wpa2 for STA mode

Closes WIFI-2438

See merge request espressif/esp-idf!19034
2022-08-02 11:10:56 +08:00
Marius Vikhammer
1fa411d515 Merge branch 'feature/system_test_pytest' into 'master'
CI: migrate esp_event and select example to pytest

See merge request espressif/esp-idf!19295
2022-08-02 10:50:46 +08:00
Marius Vikhammer
67d0a10548 Merge branch 'bugfix/rtc_brownout_isr_handler_stall' into 'master'
system: fix brownout ISR triggering assert on single-core configs.

Closes IDFGH-7939

See merge request espressif/esp-idf!19304
2022-08-02 10:38:29 +08:00
Marius Vikhammer
ff71e54f70 docs: fix broken link to lcd example 2022-08-02 10:15:31 +08:00
Marius Vikhammer
5d23a757d6 Merge branch 'feature/ulp_uart' into 'master'
ulp-riscv: uart print

See merge request espressif/esp-idf!19229
2022-08-02 09:14:48 +08:00
morris
7d5eb1fc01 Merge branch 'example/lcd_spi_1' into 'master'
Change LCD example gc9a01 to universal SPI LCD example with SPI touch

Closes IDF-5399

See merge request espressif/esp-idf!19221
2022-08-02 08:03:15 +08:00
Martin Gaňo
2d173c0777 fatfsgen.py: enabled extension of the FAT table
Closes IDF-5688
2022-08-01 20:29:02 +02:00
morris
06b31d487b Merge branch 'touch_sensor/update_touch_sensor_examples' into 'master'
touch_sensor: update touch sensor examples

Closes IDF-3885 and IDFGH-7751

See merge request espressif/esp-idf!19284
2022-08-02 01:25:04 +08:00
morris
30639b1093 example: update example_lvgl_demo_ui prototype 2022-08-01 23:02:44 +08:00
Vilem Zavodny
df3e506703 example: LCD and touch panel share the same SPI bus 2022-08-01 23:02:44 +08:00
Roland Dobai
956f08826f Merge branch 'fix/esp32c2_gcov_example_build' into 'master'
esp32c2: fix gcov example build

See merge request espressif/esp-idf!19201
2022-08-01 20:28:36 +08:00
Jiang Jiang Jian
681fe85dd6 Merge branch 'docs/c2_protocols_update' into 'master'
docs: remove protocols chapters from C2 not updated list

See merge request espressif/esp-idf!19310
2022-08-01 19:42:40 +08:00
Wei Tian Hua
b9b047399d Merge branch 'bugfix/fix_legacy_pair_not_send_link_key_host' into 'master'
component_bt: fix legacy pair controller does not send the link key to the host

Closes BTCI-107

See merge request espressif/esp-idf!14670
2022-08-01 16:59:49 +08:00
morris
20e253e663 Merge branch 'feature/rgb_lcd_rotation' into 'master'
rgb_lcd: support mirror and swap axis

See merge request espressif/esp-idf!19059
2022-08-01 16:47:12 +08:00
Fu Hanxi
7720e348c2 Merge branch 'ci/system_apps_pytest' into 'master'
ci: migrate system flash_psram test app to pytest

Closes IDFCI-1141

See merge request espressif/esp-idf!19161
2022-08-01 16:45:09 +08:00
Mahavir Jain
9b518380b2 Merge branch 'contrib/github_pr_9452' into 'master'
coap: Update examples to use latest features of libcoap component (GitHub PR)

Closes IDFGH-7934

See merge request espressif/esp-idf!19308
2022-08-01 16:35:24 +08:00
Marius Vikhammer
0f555b2a1d system: fix brownout ISR triggering assert on single-core configs.
ISR handler was incorrectly calling stall other cpu even on single core systems

Closes https://github.com/espressif/esp-idf/issues/9456
2022-08-01 16:18:30 +08:00
morris
dba813bac4 Merge branch 'bugfix/disable_rom_lgo' into 'master'
system: moved placement of disable rom log efuse in startup flow

Closes IDFGH-7940

See merge request espressif/esp-idf!19305
2022-08-01 16:04:20 +08:00
Fu Hanxi
b684730da2 ci: use the new requirement txt
will be cleaned up in IDFCI-1347
2022-08-01 15:52:21 +08:00
Fu Hanxi
17e312f87b docs: improve the installation instructions 2022-08-01 15:52:21 +08:00
Fu Hanxi
d0a2849b02 feat: add requirements.ttfw.txt 2022-08-01 15:52:21 +08:00
Fu Hanxi
01baaf33ed feat: add requirements.ci.txt 2022-08-01 15:49:15 +08:00
Fu Hanxi
9c6e636c0a ci: --preserve-all is mandatory to run locally for unit-test apps 2022-08-01 15:49:15 +08:00
Fu Hanxi
742663dd9b feat: add requirements.docs.txt 2022-08-01 15:49:15 +08:00
Fu Hanxi
8132f8b5e1 ci: add esp32h2 marker to pytest.ini 2022-08-01 15:49:15 +08:00
Jiang Jiang Jian
b885499c74 Merge branch 'refactor/move_common_adc_part_to_hw_support' into 'master'
esp_adc: move esp_adc out of g1 dependency list

Closes IDF-5637

See merge request espressif/esp-idf!19159
2022-08-01 15:39:45 +08:00
Jiacheng Guo
905856a054 openthread: add NAT64 and DNS64 support
* Add required configs and headers for NAT64 and DNS64
* Add hook for DNS name resolution
* Add NAT64 and DNS64 example commands
2022-08-01 15:31:49 +08:00
Chen Yu Dong
4d0385d9f0 Merge branch 'ci/target_test_do_not_need_submodules' into 'master'
CI: Do not need submodules in target test

See merge request espressif/esp-idf!19139
2022-08-01 15:21:06 +08:00
Roland Dobai
592afea93e Merge branch 'ci/lift_restriction_on_ttfw_idf' into 'master'
ci: lift the restriction on pygdbmi in ttfw_idf

See merge request espressif/esp-idf!18982
2022-08-01 14:55:04 +08:00
Mahavir Jain
3fcfc80c17 Merge branch 'bugfix/ulp_adc_miss_cpp_guard' into 'master'
ulp: fix missing cpp header guard

Closes IDFGH-7953

See merge request espressif/esp-idf!19303
2022-08-01 14:48:54 +08:00
Wei Tian Hua
aeb9cd267f Merge branch 'bugfix/memory_copy_bugs_in_bluedroid' into 'master'
components_bt/bluedroid: Fix Memory Copy Build Err

Closes IDFGH-7871

See merge request espressif/esp-idf!19182
2022-08-01 14:32:39 +08:00
Ivan Grokhotkov
0d4a533b74 Merge branch 'bugfix/usb_console_reset' into 'master'
esp_system: usb_console: fix restart when Wi-Fi is working

Closes IDFGH-5683

See merge request espressif/esp-idf!19289
2022-08-01 13:36:44 +08:00
wangyuanze
59ef1e1928 touch_sensor: add pytest for all examples 2022-08-01 13:16:04 +08:00
wangyuanze
526f8f048b touch_sensor: enlarge task stack in examples 2022-08-01 13:16:04 +08:00
wangyuanze
0e3bd7592f touch_sensor: update readme for all examples 2022-08-01 13:16:04 +08:00
wangyuanze
4a617e459a touch_sensor: make touch_element compile on esp32s3
Closes: https://github.com/espressif/esp-idf/issues/9292
2022-08-01 13:16:03 +08:00
Guillaume Souchere
8357fc728f Merge branch 'bugfix/update-doc-freertos-task-header' into 'master'
freertos: Update the documentation of the ulBitsToClearOnEntry parameter

Closes IDFGH-5468

See merge request espressif/esp-idf!19277
2022-08-01 13:07:45 +08:00
Marius Vikhammer
c0030f6d62 docs: remove protocols chapters from C2 not updated list 2022-08-01 12:58:06 +08:00
Marius Vikhammer
7c78de7be8 CI: migrate esp_event and select example to pytest 2022-08-01 12:20:06 +08:00
Kevin (Lao Kaiyao)
6658b7eb0a Merge branch 'feature/setup_target_test_for_c2_26m' into 'master'
ci: setup 26mhz esp32c2 runner

Closes IDF-5526

See merge request espressif/esp-idf!19032
2022-08-01 11:54:09 +08:00
weitianhua
e51df179ad components_bt/bluedroid: Fix Memory&String Copy Build Err
1. When setting compilier into -O2 optimization, build for classic bt demo will get wrong
   2. Fix a memcpy bug that maybe get memory truncated

Closes https://github.com/espressif/esp-idf/issues/9398
2022-08-01 11:37:46 +08:00
Marius Vikhammer
da91fb7a81 system: moved placement of disable rom log efuse in startup flow
Functions used for burning this efuse would log, but at this point
esp_log is not initialized. Moved to a later point in the startup process.

Closes https://github.com/espressif/esp-idf/issues/9457
2022-08-01 11:16:17 +08:00
zhouli
13770a2660 rgb_lcd: support mirror and swap axis 2022-08-01 03:05:19 +00:00
Marius Vikhammer
af329784b1 ulp: fix missing cpp header guard
https://github.com/espressif/esp-idf/issues/9464
2022-08-01 10:19:32 +08:00
Wan Lei
1265a2db9d Merge branch 'refactor/add_missing_include_path_for_soc_struct_files' into 'master'
Fix check_public_headers violations for soc component

Closes IDF-5397

See merge request espressif/esp-idf!19158
2022-08-01 10:14:04 +08:00
Wu Zheng Hui
7c17a04733 Merge branch 'feature/optimize_chips_memory_allocation' into 'master'
system: Optimize chips bootloader and heap memory allocation

Closes IDF-4585 and IDF-4299

See merge request espressif/esp-idf!18807
2022-08-01 10:11:01 +08:00
Michael (XIAO Xufeng)
198fd08fb3 Merge branch 'contrib/github_pr_7872' into 'master'
QA: Check driver installation status (GitHub PR)

Closes IDFGH-6196

See merge request espressif/esp-idf!16630
2022-08-01 09:59:26 +08:00
Kapil Gupta
e9c18ad02f esp_wifi: set default authmode as wpa2 2022-07-30 10:43:39 +05:30
Shen Weilong
028d071e84 support BLE with 26M xtal for esp32c2 2022-07-29 21:36:33 +08:00
Martin Gaňo
a542e9424c fatfsparse.py/docs: Added missing cmd parameter to the docs 2022-07-29 15:29:23 +02:00
Darian
b66be87f88 Merge branch 'bugfix/increase_ipc_stack_size_for_esp32s3' into 'master'
esp_system: Increase IPC stack size for ESP32-S3

Closes IDFCI-1403

See merge request espressif/esp-idf!19250
2022-07-29 21:23:43 +08:00
Alexey Lapshin
f44196c46b tools: update gdb version to '11.2_20220729'
Closes https://github.com/espressif/esp-idf/issues/9379
2022-07-29 13:47:34 +04:00
laokaiyao
4ab8f00b47 ci: setup 26mhz esp32c2 runner 2022-07-29 17:10:34 +08:00
wuzhenghui
5e8ba9cea8 use enum and designated initializers in soc_memory_type define 2022-07-29 17:07:41 +08:00
wuzhenghui
70eabb5492 ci: fix ci 2022-07-29 17:07:41 +08:00
wuzhenghui
7cb9304b65 Clean IRAM and DRAM address space conversion macros 2022-07-29 17:07:39 +08:00
jincheng
ca0d8be5b8 fix the dependency error of macro for memory debug 2022-07-29 17:03:59 +08:00
Chen Yudong
486dbf441b CI: Do not need submodules in target test 2022-07-29 08:31:33 +00:00
Omar Chebib
fde4afc67a Merge branch 'bugfix/queue_use_vtasksettimeoutstate' into 'master'
FreeRTOS: Modifying a timeout is now protected on multi-core configuration

Closes IDF-3808

See merge request espressif/esp-idf!19259
2022-07-29 15:33:01 +08:00
Darian Leung
e073fc4254 esp_system: Increase IPC stack size for ESP32-S3
ESP32-S3 stacks have currently have less useable space compared to other targets (due to
AI coprocessor context registers). This has caused a stack overflow in the IPC tasks under
some configurations. This commit increases the default IPC stack size for the ESP32-S3.
2022-07-29 15:00:57 +08:00
Fu Hanxi
9e3f4f0a41 Merge branch 'bugfix/add_c2_40mhz_tag_for_example_pytest' into 'master'
ci: add the forgotten xtal 40mhz tag for c2 example pytest

See merge request espressif/esp-idf!19291
2022-07-29 14:53:21 +08:00
Kapil Gupta
ebd6a467b4 Merge branch 'bugfix/rsnxe_invalid_pointer_dereference' into 'master'
wpa_supplicant: fix invalid pointer free

Closes WIFI-4672, WIFI-4673, and WIFI-4674

See merge request espressif/esp-idf!19287
2022-07-29 14:25:58 +08:00
David Čermák
8d62485a12 Merge branch 'feat/lwip_dhcps_append_opts' into 'master'
lw-ip/dhcpserver: Support for adding extra opts

Closes IDFGH-973

See merge request espressif/esp-idf!19115
2022-07-29 14:02:20 +08:00
David Čermák
fdfda6e064 Merge branch 'feat/add_netif_dependency_test' into 'master'
esp_netif/ci: Add test to verify dependencies to/from lwip/drivers

See merge request espressif/esp-idf!19179
2022-07-29 13:18:12 +08:00
Marius Vikhammer
32efa1e92d Add ULP-RISCV print and bitbanged UART tx API
Add example to demonstrate the use of this API.
2022-07-29 12:18:01 +08:00
Darian
c22968182a Merge branch 'bugfix/spinlocks_misused_as_critical_sections' into 'master'
esp_hw_support: Fix misuse of spinlocks as critical sections

See merge request espressif/esp-idf!19282
2022-07-29 11:57:28 +08:00
Omar Chebib
692891e773 FreeRTOS: Modifying a timeout is now protected on multi-core configuration 2022-07-29 11:56:06 +08:00
laokaiyao
19486ad115 ci: add the forgotten xtal 40mhz tag for c2 example pytest 2022-07-29 11:32:05 +08:00
Aleksei Apaseev
22f65d961f ci: lift the restriction on pygdbmi in ttfw_idf 2022-07-29 11:24:12 +08:00
wanlei
bb5a95f1aa soc: fix register header files not self-contain 2022-07-29 11:18:06 +08:00
Wang Yuan Ze
0acae63317 Merge branch 'spi_flash/fix_hpm_dummy_in_80m_flash_and_psram' into 'master'
spi_flash: fix hpm dummy error when using 80m flash and psram

Closes IDF-5696

See merge request espressif/esp-idf!19244
2022-07-29 11:05:47 +08:00
wuzhenghui
65aea5d177 stack/dram is also IRAM0 accessible 2022-07-29 10:51:48 +08:00
wuzhenghui
2ad49a9be5 update bootloader.ld rom_boot ram usage info 2022-07-29 10:51:47 +08:00
wuzhenghui
31183270fb bugfix: fix SOC_ROM_STACK_START defines 2022-07-29 10:51:47 +08:00
wuzhenghui
21a4eda4d4 Use the entire sharedbuffer space as the heap of the D/IRAM attribute 2022-07-29 10:51:47 +08:00
wuzhenghui
d6461d91e2 update bootloader memory allocation 2022-07-29 10:51:47 +08:00
Anton Maklakov
4ae9f7a488 Merge branch 'bugfix/precommit-on-windows' into 'master'
tools: Fix copyright check in pre-commit for windows

See merge request espressif/esp-idf!19288
2022-07-29 10:26:19 +08:00
Ivan Grokhotkov
bf10146a15 esp_system, vfs: fix incomplete blocking reads in vfs_cdcacm
Blocking read from cdcacm VFS could return less bytes than requested.
This didn’t match the behaviour of other VFS drivers, and higher level
code could misbehave.
2022-07-28 17:28:08 +02:00
Ivan Grokhotkov
3254f8deae esp_system: usb_console: fix restart when Wi-Fi is working
Previously, reset over USB CDC was done by calling esp_restart from
an interrupt handler. This works only until some restart hook function
is registered using esp_register_shutdown_handler, and the hook
function tries to do something that isn’t allowed in an interrupt
handler. One such case is with Wi-Fi. When Wi-Fi driver is installed,
it registers esp_wifi_stop as a shutdown handler function. However
esp_wifi_stop cannot be called from an ISR, and hence we shouldn’t
call esp_restart from an ISR either.

This commit modifies USB CDC driver to call esp_restart by posting it
to esp_timer task.

Closes https://github.com/espressif/esp-idf/issues/7404
2022-07-28 17:15:03 +02:00
David Čermák
ac0487e8b7 Merge branch 'feature/support_mqtt5_protocol' into 'master'
Make MQTT client to comply with mqtt v5.0 spec

See merge request espressif/esp-idf!17345
2022-07-28 21:24:56 +08:00
Sergei Silnov
4f93db4f5a tools: Fix copyright check in pre-commit for windows 2022-07-28 15:16:53 +02:00
Jon Shallow
98d346a81e coap: Update examples to use latest features of libcoap component
Support libcoap build with Client Only or Server Only code.
2022-07-28 13:11:52 +00:00
Kapil Gupta
465996fba5 wpa_supplicant: fix invalid pointer free 2022-07-28 12:47:31 +00:00
Erhan Kurubas
b0881a1e6c examples/gcov: add missing supported targets to readme 2022-07-28 13:59:29 +02:00
Erhan Kurubas
3a9f711f77 examples/gcov: set esp32c2 default blink gpio 2022-07-28 13:59:29 +02:00
Erhan Kurubas
22d771bf51 esp32c2: fix gcov example build 2022-07-28 13:59:29 +02:00
Martin Gano
50626e776e Merge branch 'bugfix/speedup-fatfsgen-cluster-allocation' into 'master'
fatfsgen.py: Speedup FAT cluster allocation in fatfs partition generator

Closes IDF-5243

See merge request espressif/esp-idf!19216
2022-07-28 18:02:11 +08:00
Darian Leung
05ff1039dc esp_hw_support: Fix misuse of spinlocks as critical sections
Spinlocks themselves do not constitute critical sections as after a spinlock is acquired, interrupts
can remain enabled. However, there are some places where spinlocks are used direclty instead of using
the portMUX_TYPE and portENTER_CRITICAL_...() APIs. This commit fixes those calls.
2022-07-28 17:25:00 +08:00
Guillaume Souchere
421a408b42 freertos: Update the docuementation of the ulBitsToClearOnEntry parameter in xTaskGenericNotifyWait() function.
Closes https://github.com/espressif/esp-idf/issues/7207

The description of how the xTaskGenericNotifyWait parameter is handled in the
xTaskGenericNotifyWait() function was inaccurate.

In this commit, the description was updated to match the implementation of xTaskGenericNotifyWait().
2022-07-28 10:30:41 +02:00
David Čermák
e7e350d439 Merge branch 'bugfix/lwip_store_esp_netif_ptr' into 'master'
esp_netif/lw-ip: Use netif-client-data to store esp_netif ptr

Closes IDFGH-7813 and IDF-5542

See merge request espressif/esp-idf!19075
2022-07-28 14:54:08 +08:00
Jing Li
2c41aae1e7 Merge branch 'bugfix/temp_fix_clk8m_and_cpu_cannot_pd_at_the_same_time' into 'master'
esp_hw_support/sleep: fix cannot pd cpu and rc fast at the same time during light sleep

Closes WIFI-4492 and IDF-5473

See merge request espressif/esp-idf!19196
2022-07-28 14:45:28 +08:00
Rahul Tank
7ed3157351 Merge branch 'bugfix/add_max_procs_config' into 'master'
Nimble: Configurable option to modify max gatt procedures allowed for GATT client

See merge request espressif/esp-idf!19197
2022-07-28 14:38:41 +08:00
wangyuanze
8781a50abe spi_flash: fix hpm dummy error when using 80m flash and psram 2022-07-28 14:32:30 +08:00
yuanjm
7dcc29d0be Add mqtt5 build test rules 2022-07-28 06:24:43 +00:00
yuanjm
196831efa8 example: Add mqtt5 example 2022-07-28 06:24:43 +00:00
yuanjm
66e0171c42 test: Add mqtt5 unit-test 2022-07-28 06:24:43 +00:00
yuanjm
5a7b17ff7d mqtt: Add mqtt5 Kconfig 2022-07-28 06:24:43 +00:00
xiongweichao
7eedd710c2 fix legacy pair controller does not send the link key to the host
Closes https://github.com/espressif/esp-idf/issues/5850
2022-07-28 14:21:48 +08:00
Kevin (Lao Kaiyao)
feeb023447 Merge branch 'feature/add_xtal_40mhz_tag_for_c2_test' into 'master'
ci: add xtal_40mhz tag for c2 tests

See merge request espressif/esp-idf!19109
2022-07-28 13:55:29 +08:00
Jiang Jiang Jian
49348299f0 Merge branch 'bugfix/qatest_spp_crash' into 'master'
bugfix/qatest spp crash

Closes BT-1875, BT-2410, BT-2015, and BT-2536

See merge request espressif/esp-idf!19232
2022-07-28 13:44:56 +08:00
Isha Pardikar
3f161b9c98 Merge branch 'bugfix/nimble_l2cap_coc_cmake' into 'master'
Fixed cmake file for nimble L2CAP COC example

See merge request espressif/esp-idf!19265
2022-07-28 13:25:55 +08:00
Mahavir Jain
c0e096d5b2 Merge branch 'contrib/github_pr_9446' into 'master'
Add missing comma (GitHub PR)

Closes IDFGH-7928

See merge request espressif/esp-idf!19271
2022-07-28 12:36:30 +08:00
morris
ef02fb63dd Merge branch 'bugfix/fix_wrong_mmu_end_addr_check' into 'master'
mmu: fix wrong mmu end check in mmu_ll.h

See merge request espressif/esp-idf!19257
2022-07-28 12:00:35 +08:00
Armando
4f80c0f27e esp_adc: remove esp_adc from g1 component dependencies 2022-07-28 03:49:48 +00:00
Armando
5e6a16380a esp_adc: move adc common hw related code into esp_hw_support 2022-07-28 03:49:48 +00:00
jingli
7211b0a89a esp_hw_support/sleep: fix cannot pd cpu and rc fast at the same time during light sleep
Since cpu retention dma use rc fast as clk source, so rc_fast_digi
will be enabled when we config to pd cpu. And cpu retention does not
need rc fast keep on during light sleep. So, if we use rc_fast_digi
to determine whether rc fast can be powered down, then cpu and and
rc fast cannot pd at the same time.
2022-07-28 11:10:58 +08:00
Kevin (Lao Kaiyao)
9a7a1fe61f Merge branch 'contrib/github_pr_9430' into 'master'
Fix offset for cosine wave function generator (GitHub PR)

Closes IDFGH-7911

See merge request espressif/esp-idf!19254
2022-07-28 10:56:43 +08:00
laokaiyao
ba235c5615 ci: add xtal_40mhz tag for c2 tests 2022-07-28 02:02:18 +00:00
Marius Vikhammer
45ad46eb27 Merge branch 'docs/c2_api_ref_sys' into 'master'
docs: update api-ref system docs for C2

Closes IDF-4214 and IDF-4224

See merge request espressif/esp-idf!19218
2022-07-28 09:33:12 +08:00
Martin Gaňo
d56e692f2f fatfsgen.py: Speedup FAT cluster allocation in fatfsgen.py
Closes IDF-5243
2022-07-28 01:37:39 +02:00
Roland Dobai
9b87390daf Merge branch 'bugfix/fix_the_monitor_consol_problem' into 'master'
tools: Fix the monitor console problem

Closes IDF-5514 and IDFGH-7913

See merge request espressif/esp-idf!19129
2022-07-28 01:05:48 +08:00
Tomas Rezucha
5bd6696557 Merge branch 'feature/usb_device/hid' into 'master'
usb: Add HID device example

Closes IDFGH-7637, IDFGH-5054, IDF-581, and IDFGH-6013

See merge request espressif/esp-idf!19177
2022-07-27 21:18:50 +08:00
David Cermak
64f4f0ac1e esp_netif/lwip: Use netif-client-data to store esp_netif ptr
lwip/netif struct has two places to store user's data
* netif->state (1 void*) but that might be occupied in special cases
* netif->client_dtat (n void*s) but that must be enabled in opts.h
This commit stores esp_netif_t* primarily in state, but if any special
netif is enabled in menuconfig (bridgeif, pppos), it uses netif->client_data.
This commit also fixes incorrect esp_netif that is attached to
IP_EVENT_GOT_IP6 event posted by pppos interfaces in:
c585618b97/components/esp_netif/lwip/esp_netif_lwip_ppp.c (L114)

Closes https://github.com/espressif/esp-idf/issues/9345
2022-07-27 11:55:18 +00:00
morris
96c29841bb Merge branch 'feature/mcpwm_new_driver' into 'master'
 MCPWM Driver-NG

Closes IDF-2471, IDF-2895, IDF-20, and IDF-3945

See merge request espressif/esp-idf!11480
2022-07-27 19:25:06 +08:00
Armando
42dfb5cadd esp_psram: improve mapping log when physical range is larger
After this commit, when physical address is larger than vaddr range,
driver will still map as much as it can, but also give a verbose level
log to show the actual mapped size
2022-07-27 10:22:09 +00:00
Armando
f325ad2211 mmu: fix wrong mmu end check
In mmu code, we follow the rule that the `end` address shouldn't be
touched. This commit fix wrong end address check in mmu_ll.h
2022-07-27 10:22:09 +00:00
jincheng
44607e10ea add protect for bt_util_buf_env buffers when access by task and interrupt
ignore the assert_err in rm_bt_clkoff1_setf
2022-07-27 17:56:08 +08:00
FanhuaCloud
a1c04ad6fd Add missing comma
Add missing comma when CONFIG_ESP32S3_DATA_CACHE_16KB is enabled
2022-07-27 17:12:17 +08:00
Rahul Tank
2be66a6151 Nimble: Configurable option to modify max gatt procedures allowed for GATT
client
2022-07-27 08:59:37 +00:00
simon.chupin
5468d79382 tools: fix idf.py monitor consol problem
Closes https://github.com/espressif/esp-idf/issues/9432
2022-07-27 08:35:30 +00:00
Armando (Dou Yiwen)
1ed5e5130e Merge branch 'bugfix/increase_overhead_when_test_adc_continuous_iram' into 'master'
esp_adc: increase test consumption threshold

Closes IDFCI-1397

See merge request espressif/esp-idf!19206
2022-07-27 16:16:23 +08:00
Marius Vikhammer
9d599c207f docs: update api-ref system docs for C2 2022-07-27 16:12:26 +08:00
Ivan Grokhotkov
0330e952d1 Merge branch 'feature/add-wl-support-fatfsparse' into 'master'
fatfsparse.py: Add support for WL

Closes IDF-4994 and IDF-5522

See merge request espressif/esp-idf!18760
2022-07-27 16:01:02 +08:00
Mahavir Jain
ab724cf7dd Merge branch 'ci/fix_dash_shell_with_comment' into 'master'
ci: fix regex in if statement for dash compatibility

See merge request espressif/esp-idf!19258
2022-07-27 15:47:45 +08:00
Isha Pardikar
97b1211b71 Merge branch 'bugfix/nimble_l2cap_coc_cmake' into 'master'
NimBLE : Fixed nimble L2CAP COC example CMakeLists.txt
2022-07-27 13:03:14 +05:30
morris
e4868548c7 doc: update MCPWM api reference with new driver API 2022-07-27 15:22:24 +08:00
morris
169a43b8eb example: update MCPWM sync example with new driver API 2022-07-27 15:22:24 +08:00
morris
1557a533fe example: update servo example with new driver API 2022-07-27 15:22:24 +08:00
morris
6751b229f1 example: update capture example with new driver API 2022-07-27 15:22:24 +08:00
morris
b77446b5c8 example: update bldc example with new driver API 2022-07-27 15:22:24 +08:00
morris
938b3d717f example: update bdc speed control example with new driver API 2022-07-27 15:22:24 +08:00
morris
1571417679 mcpwm: new driver implementation 2022-07-27 15:22:24 +08:00
morris
fd3a1ffc21 mcpwm: deprecate legacy driver 2022-07-27 15:08:58 +08:00
laokaiyao
77a5c209d9 dac_ll: sync PR changes to esp32s2 2022-07-27 14:45:48 +08:00
Florian Loitsch
2f307b8b65 Feedback. 2022-07-27 14:45:48 +08:00
Florian Loitsch
3793e90790 Fix offset for cosine wave function generator 2022-07-27 14:45:48 +08:00
Fu Hanxi
e4ba92ce69 ci: remove comment for dash compatibility 2022-07-27 14:02:00 +08:00
Isha Pardikar
7b1da8ab0a Merge branch 'feature/rainmaker_BT_configurable' into 'master'
Wifi_prov_mgr: Made BT configurable after provisioning is completed

See merge request espressif/esp-idf!18014
2022-07-27 13:59:56 +08:00
Tomas Rezucha
45e8115dc6 usb: Add HID device example
Closes https://github.com/espressif/esp-idf/issues/6839
Closes https://github.com/espressif/esp-idf/issues/7700
2022-07-27 05:31:09 +00:00
paul356
1144f752f4 use kconfig to add config options 2022-07-27 05:31:09 +00:00
Mu Hai Dong
0aa6612371 Merge branch 'docs/remove_wifi_part_docs_not_updated_esp32c2' into 'master'
docs: remove wifi part in docs_not_updated of esp32c2

Closes WIFI-4620

See merge request espressif/esp-idf!19024
2022-07-27 13:11:54 +08:00
morris
a9878292ba Merge branch 'contrib/github_pr_7637' into 'master'
update clk_flags requirement for i2c docs (GitHub PR)

Closes IDFGH-5949

See merge request espressif/esp-idf!16632
2022-07-27 12:32:40 +08:00
Fu Hanxi
cdbc581f96 Merge branch 'ci/fix_os_pathlike' into 'master'
ci: fix subtyping in type annotations under python3.7

See merge request espressif/esp-idf!19255
2022-07-27 12:01:10 +08:00
Fu Hanxi
eb3be68b2a ci: fix syntax error 2022-07-27 11:11:09 +08:00
Fu Hanxi
f5cbe88c22 ci: fix no subtyping for type annotation in python3.7
https://peps.python.org/pep-0544/
2022-07-27 11:11:09 +08:00
Waheed Barghouthi
d5bfbfc095 doc: update clk_flags requirement for i2c docs
Merges https://github.com/espressif/esp-idf/pull/7637
2022-07-27 11:02:43 +08:00
Mo Fei Fei
0d6de25d1c Merge branch 'docs/add_cn_trans_for_migration_guides_system' into 'master'
Docs: add cn trans for migration-guides/system

Closes DOC-3324

See merge request espressif/esp-idf!19046
2022-07-27 10:45:41 +08:00
Anton Maklakov
80b97faade Merge branch 'docs/get_started_macos_rosetta' into 'master'
docs: add a suggestion for apple m1 users

Closes IDFGH-7758

See merge request espressif/esp-idf!18981
2022-07-27 10:03:48 +08:00
Roland Dobai
2cf1370115 Merge branch 'refactor/add_python_types_hints_to_ci' into 'master'
ci: Add python types hints

See merge request espressif/esp-idf!18726
2022-07-26 21:52:17 +08:00
Wang Zi Yan
8fca591407 Merge branch 'docs/provide_tips_for_Mac_users' into 'master'
docs: provide tips for Mac users

Closes DOC-3327

See merge request espressif/esp-idf!19245
2022-07-26 21:04:09 +08:00
Martin Gaňo
2ddcda29b3 fatfsparse.py: Add support for WL 2022-07-26 14:50:07 +02:00
Ivan Grokhotkov
c38c153f6a Merge branch 'bugfix/cpu_utils_watchpoint_num' into 'master'
xtensa: fix swapped breakpoint and watchpoint numbers

Closes IDFCI-1315

See merge request espressif/esp-idf!19213
2022-07-26 20:31:10 +08:00
Anton Maklakov
f5b626db63 docs: add CN translation for linux-macos-setup.rst update 2022-07-26 18:16:49 +07:00
Armando
0e6c8aef19 esp_adc: increase adc continuous iram test time overhead a bit
Prior to this commit, overhead is 0us on esp32s2, s3, c3, c2. However
when the conv_done event happens, software takes some time to do
necessary operations.
2022-07-26 18:19:14 +08:00
Isha Pardikar
2cfcae8d41 Merge branch 'feature/rainmaker_BT_configurable' into 'master'
Doc: Made bluetooth configurable after wifi provisioning is completed

See merge request espressif/esp-idf!18014
2022-07-26 15:21:27 +05:30
wangziyan
1f56072b3c docs: update the tips 2022-07-26 17:35:30 +08:00
Dai Zi Yan
29189198b9 Merge branch 'docs/translate_migration_guides' into 'master'
docs: translated removed-components and build-system

Closes DOC-3338

See merge request espressif/esp-idf!19095
2022-07-26 16:15:53 +08:00
Mahavir Jain
c917219c04 Merge branch 'contrib/github_pr_9408' into 'master'
nvs_partition_gen: Allow up to 4000 byte strings with NVS V2 (GitHub PR)

Closes IDFGH-7884

See merge request espressif/esp-idf!19195
2022-07-26 15:48:43 +08:00
intern
9387248dfc docs: add cn trans for migration-guides/system 2022-07-26 15:41:51 +08:00
wangziyan
b09b3bd5b1 docs: provide tips for Mac users 2022-07-26 15:29:44 +08:00
David Cermak
b5d13b9837 lwip/dhcpserver: Support for adding extra opts
This enables users appending an extra, user defined options in dhcp
server messages. Example of adding captive_portal option (160) to dhcp
offer message is provided:
* Add idf-lwip hook file (project makefile):
  idf_component_get_property(lwip lwip COMPONENT_LIB)
  target_compile_options(${lwip} PRIVATE "-I${PROJECT_DIR}/main")
  target_compile_definitions(${lwip} PRIVATE "-DESP_IDF_LWIP_HOOK_FILENAME=\"add_captive_portal.h\"")
* Implement appending (add_captive_portal.h):
  #pragma once
  #define LWIP_HOOK_DHCPS_POST_APPEND_OPTS(netif, dhcp, state, pp_opts) \
  if ((state)==DHCPOFFER) { *(pp_opts) = append_captive_portal_uri(*(pp_opts)); }
  static inline uint8_t *append_captive_portal_uri(uint8_t *optptr)
  {
    const static uint8_t DHCP_OPTION_CAPTIVE_PORTAL=160;
    const static char CAPTIVE_PORTAL_URI[]="my_uri";
    int size = sizeof(CAPTIVE_PORTAL_URI) - 1;
    *optptr++ = DHCP_OPTION_CAPTIVE_PORTAL;
    *optptr++ = size;
    for(int i = 0; i < size; ++i) {
        *optptr++ = CAPTIVE_PORTAL_URI[i];
    }
    return optptr;
  }

Merges https://github.com/espressif/esp-idf/pull/3308
2022-07-26 07:09:22 +00:00
daiziyan
b995b584bd docs: translated removed-components and build-system 2022-07-26 14:55:01 +08:00
Marius Vikhammer
4f1046a292 ulp-riscv: made ulp_riscv_delay_cycles more accurate 2022-07-26 14:32:39 +08:00
Anton Maklakov
57f231af82 docs: add a suggestion for apple m1 users
Closes: https://github.com/espressif/esp-idf/issues/9300
2022-07-26 11:14:05 +07:00
Marius Vikhammer
c2a5f48498 ci: migrate system test apps to pytest 2022-07-26 11:47:28 +08:00
Fu Hanxi
b823831a26 Merge branch 'ci/set_include_nightly_run_rule_for_all_jobs' into 'master'
ci: export INCLUDE_NIGHTLY_RUN when mr got label

See merge request espressif/esp-idf!19116
2022-07-26 10:35:16 +08:00
Fu Hanxi
7ed174aee0 Merge branch 'ci/fix_wrongly_cleanup_preserve_dirs' into 'master'
ci: fix cleanup bin wrongly when extra_preserve_dir equals to the app dir

See merge request espressif/esp-idf!19214
2022-07-26 10:35:09 +08:00
Martin Vychodil
85f21a02d8 Merge branch 'feature/storage_migrate_to_pytest' into 'master'
examples/storage: Tests migrated to pytest

Closes IDFCI-1139 and IDFCI-1353

See merge request espressif/esp-idf!18453
2022-07-26 05:20:42 +08:00
morris
3385fff2b0 Merge branch 'refactor/systimer_hal_support_other_xtal' into 'master'
systimer: refactor hal to accomodate more xtal choices

Closes IDF-5643

See merge request espressif/esp-idf!19175
2022-07-25 23:36:49 +08:00
David Cermak
9806dff253 esp_netif/ci: Add test to verify dependencies to/from lwip/drivers 2022-07-25 16:58:05 +02:00
Fu Hanxi
a8f6cfb97d ci: export INCLUDE_NIGHTLY_RUN when mr got label 2022-07-25 16:24:23 +08:00
morris
5e50ec1d66 systimer: add helper functions to convert between tick and us 2022-07-25 16:08:52 +08:00
morris
783e1781bd esp_rom: patch systimer driver for esp32c2 2022-07-25 16:08:52 +08:00
morris
d94432fea8 systimer: refactor hal to accomodate more xtal choices 2022-07-25 16:08:52 +08:00
Roland Dobai
0f08d4050d Merge branch 'feat/add_hints' into 'master'
Tools: Add more hint examples on how to resolve breaking changes of v5.0

See merge request espressif/esp-idf!19178
2022-07-25 16:04:32 +08:00
Fu Hanxi
59cc82349a ci: fix cleanup bin wrongly when extra_preserve_dir equals to the app dir 2022-07-25 15:54:54 +08:00
Ivan Grokhotkov
a97686f607 xtensa: fix swapped breakpoint and watchpoint numbers 2022-07-25 09:43:10 +02:00
Michael (XIAO Xufeng)
f19dfd6afb Merge branch 'ci/reduce_usage_of_ut_sdio_runners' into 'master'
CI: reduce usage of sdio runners (UT_044, UT_045)

See merge request espressif/esp-idf!19184
2022-07-25 15:12:16 +08:00
Fu Hanxi
51d6f9c885 Merge branch 'fix/missing_component_ut_junit_report' into 'master'
CI: junit report not merged in component ut

Closes IDFCI-1388

See merge request espressif/esp-idf!19207
2022-07-25 14:01:09 +08:00
Isha Pardikar
d46a2af0bf Merge branch 'feature/nimble_l2cap_coc' into 'master'
NimBLE: Add example framework for  L2CAP COC

See merge request espressif/esp-idf!18483
2022-07-25 12:28:38 +08:00
Wang Fang
2100469a8b Merge branch 'docs/update_documents_regarding_flash_and_ulp_and_wakeupSource' into 'master'
Updated documents related to wakeup source, ulp, flash-encryption and memory types

Closes DOC-2947, DOC-2963, and DOC-2966

See merge request espressif/esp-idf!17873
2022-07-25 12:19:26 +08:00
Fu Hanxi
377cd97f4d fix: junit report not merged in component ut
related github pr: https://github.com/espressif/pytest-embedded/pull/111

released in pytest-embedded 0.7.6
2022-07-25 11:34:58 +08:00
Wang Fang
83a0cd33ce docs: updated documents related to wakeup source, ulp, flash-encryption and memory types 2022-07-25 10:57:40 +08:00
Martin Vychodil
8def7b3e55 Merge branch 'contrib/github_pr_9361' into 'master'
Change placeholder in ESP_LOGD conditionally depending on FF_FS_EXFAT (GitHub PR)

Closes IDFGH-7832 and IDFGH-7735

See merge request espressif/esp-idf!19111
2022-07-24 16:49:22 +08:00
Martin Vychodil
a16431c7a9 Merge branch 'feature/vfs_serial_fcntl_get_rd_wr_state' into 'master'
vfs: uart/cdcacm/usb_serial_jtag fcntl return read/write state

See merge request espressif/esp-idf!19168
2022-07-24 16:15:28 +08:00
Chen Jian Xing
feefe820a4 Merge branch 'bugfix/esp32c2_coex_timer_clk_src' into 'master'
esp_wifi: select slowclk as coex hardware timer source on esp32c2

See merge request espressif/esp-idf!19170
2022-07-23 11:37:35 +08:00
Jakob Hasse
45b3662c3a Merge branch 'bugfix/esp_timer_mux_static' into 'master'
bugfix (esp_timer): made os spinlock static

See merge request espressif/esp-idf!19112
2022-07-23 05:58:06 +08:00
simon.chupin
819d5a2b61 ci: Add python types hints 2022-07-22 21:15:01 +02:00
Fu Hanxi
585e0431c7 Merge branch 'test/spi_param_redund_desc' into 'master'
test_spi: fixed redundant quotes in test descriptions

See merge request espressif/esp-idf!19140
2022-07-23 02:22:58 +08:00
Darian
c8ee369a7c Merge branch 'feature/deprecate-old-cpu-api' into 'master'
HAL: Deprecate old CPU/SoC/Interrupt Controller HAL API

Closes IDF-4919 and IDF-5032

See merge request espressif/esp-idf!18987
2022-07-23 00:37:33 +08:00
John
aaf35889b6 Change placeholder in ESP_LOGD conditionally depending on FF_FS_EXFAT
In case of using EXFAT by setting in ffconf.h:
the type FSIZE_t is changing from 4 to 8 bytes.

As a result,  ESP_LOGD() in vfs_fat_lseek() does not compile:
error: format '%d' expects argument of type 'int', but argument 8 has type 'FSIZE_t' {aka 'long long unsigned int'} [-Werror=format=]
     ESP_LOGD(TAG, "%s: offset=%ld, filesize:=%d", __func__, new_pos, f_size(file));

To solve the problem we need to change %d with %lld conditionally, depending on FF_FS_EXFAT.

Closes https://github.com/espressif/esp-idf/pull/9361
2022-07-22 16:52:14 +01:00
liuning
bc2f2a3100 esp_wifi: select slowclk as coex hardware timer source on esp32c2 2022-07-22 21:44:11 +08:00
Jiang Jiang Jian
05b31339f6 Merge branch 'docs/improve_pytest_related_readme' into 'master'
docs: improve ci related docs

See merge request espressif/esp-idf!19169
2022-07-22 21:26:53 +08:00
Jiang Jiang Jian
88f2f5fdd7 Merge branch 'bugfix/default_config_sae_pwe_value' into 'master'
esp_wifi: WPA3 SAE keep default value as h2e and hunting and pecking for sae pwe

See merge request espressif/esp-idf!19015
2022-07-22 20:30:58 +08:00
Roland Dobai
6928d1f3ec Tools: Add more hint examples on how to resolve breaking changes of v5.0 2022-07-22 13:47:31 +02:00
morris
dc7d39d6cf Merge branch 'bugfix/esp_system_make_xt_wdt_lock_static' into 'master'
bugfix (esp_system): made xt_wdt spinlock static

See merge request espressif/esp-idf!19113
2022-07-22 18:20:20 +08:00
Zhang Xiao Yan
a1b5dae782 Merge branch 'docs/updated_DevBoards_based_on_feedbacks' into 'master'
docs:updates based on feedbacks

Closes DOC-3376, DOC-3375, DOC-3180, and DOC-3353

See merge request espressif/esp-idf!19154
2022-07-22 17:57:36 +08:00
radek.tandler
3271088428 storage examples migrated to pytest 2022-07-22 10:23:53 +02:00
Jakob Hasse
bff6826ee1 bugfix (esp_system): made xt_wdt spinlock static 2022-07-22 08:17:59 +00:00
Linda
3d5f2fbafc docs:updates based on feedbacks 2022-07-22 15:58:09 +08:00
Island
37bc05c84d Merge branch 'bugfix/vendor_model_send_message_no_memory' into 'master'
ble_mesh:example: free the memory of malloc

See merge request espressif/esp-idf!19135
2022-07-22 15:18:38 +08:00
Yuan Hong Hui
33d6c07d6e ble_mesh:example: free the memory of malloc 2022-07-22 15:18:37 +08:00
Chen Yudong
9b44bc1d31 CI: reduce usage of sdio runners 2022-07-22 15:03:44 +08:00
Shreyas Sheth
341a92aaa5 esp_wifi: WPA3 SAE keep default value as h2e and hunting and pecking for sae pwe 2022-07-22 12:23:13 +05:30
Isha Pardikar
eeea118ca5 Merge branch 'feature/nimble_l2cap_coc' into 'master'
NimBLE : BLE example for L2CAP connection oriented channels

See merge request !18483
2022-07-22 11:43:16 +05:30
Jiang Jiang Jian
0e874812a0 Merge branch 'bugfix/sync_reg_base' into 'master'
esp_wifi: fix crash in esp_wifi_set_ant_gpio()

Closes IDFGH-7720

See merge request espressif/esp-idf!19096
2022-07-22 14:07:33 +08:00
Jiang Jiang Jian
9a6ccb7f57 Merge branch 'bugfix/make_sure_sempher_and_queue_used_in_isr_is_in_DRAM' into 'master'
Bugfix/make sure sempher and queue used in isr is in dram

Closes WIFI-3571, IDFGH-7458, IDFGH-7342, and IDFGH-7569

See merge request espressif/esp-idf!19160
2022-07-22 14:04:27 +08:00
Jiang Jiang Jian
371a935e76 Merge branch 'bugfix/wpa2_enterprise_issues' into 'master'
esp_wifi: WPA2 enterprise related changes

Closes WIFI-4579

See merge request espressif/esp-idf!19162
2022-07-22 13:56:41 +08:00
Angus Gratton
bb141956df nvs_partition_gen: Allow up to 4000 byte strings with NVS V2
As documented, the limit for NVS format v2 is 4000 bytes for a string.
2022-07-22 15:43:19 +10:00
Armando (Dou Yiwen)
1fc4d2b598 Merge branch 'bugfix/remove_psram_dependency_in_idf_as_lib_example' into 'master'
idf_as_lib: remove dependency to esp_psram

Closes IDF-5238

See merge request espressif/esp-idf!18992
2022-07-22 13:17:08 +08:00
Jiang Jiang Jian
2be53e6765 Merge branch 'bugfix/provide-description-for-preserve-time' into 'master'
fatfsgen.py: add description of the parameter PRESERVE_TIME

Closes IDF-5638

See merge request espressif/esp-idf!19147
2022-07-22 12:27:51 +08:00
Jiang Jiang Jian
621dac0e49 Merge branch 'feature/option_to_advertise_random_addr' into 'master'
NimBLE: Feature/option to advertise random addr

See merge request espressif/esp-idf!18896
2022-07-22 11:56:15 +08:00
Jiang Jiang Jian
22b17a3471 Merge branch 'bugfix/schm_process_in_active_crash' into 'master'
Coex: fixed crash when calculating end transfer time

See merge request espressif/esp-idf!18330
2022-07-22 11:02:08 +08:00
Simon
2989735515 Merge branch 'feature/support_xmc_HPM' into 'master'
spi_flash: Re-enable HPM mode for several XMC chips.

Closes IDF-5362

See merge request espressif/esp-idf!18648
2022-07-22 10:47:37 +08:00
Cao Sen Miao
ec6a56ed0c spi_flash: re-enable the HPM mode on several XMC chips 2022-07-22 09:54:56 +08:00
morris
a56f68acd9 Merge branch 'bugfix/coverity_driver_issue_clean' into 'master'
fix driver issue found by coverity

See merge request espressif/esp-idf!19145
2022-07-22 09:25:40 +08:00
Marius Vikhammer
2179439798 Merge branch 'ci/blink_pytest' into 'master'
CI: migrate blink example test to pytest

Closes IDFCI-1141

See merge request espressif/esp-idf!19155
2022-07-22 09:24:48 +08:00
Fu Hanxi
8e9cdb0770 docs: improve ci related docs 2022-07-22 08:18:19 +08:00
morris
c4e84751a5 driver: fix public header exceptions for driver 2022-07-22 00:12:36 +00:00
morris
9a921ada7f rmt: const callback event data 2022-07-22 00:12:36 +00:00
morris
741b031e83 soc: added SOC_TOUCH_SENSE_SUPPORTED macro 2022-07-22 00:12:36 +00:00
morris
5dbae0c2cd esp_adc: fix dead code reported by coverity 2022-07-22 00:12:36 +00:00
morris
9d0c72aad0 Merge branch 'bugfix/rgb_pclk_polarity_bug_workaround' into 'master'
rgb_lcd: workaround pclk polarity bug

Closes IDF-5611

See merge request espressif/esp-idf!19068
2022-07-22 08:06:40 +08:00
Guillaume Souchere
50a58b4a83 esp_hw_support: Fix formatting of intr_alloc.h and test_panic.c 2022-07-22 00:06:06 +08:00
Guillaume Souchere
7c6a39ed2e esp_system: Add esp_cpu.h migration guide
This commit:
- adds the migration guide for migrating from the now deprecated cpu_hal/ll.h,
  soc_hal/ll.h, and interrupt_controller_hal.h to esp_cpu.h.
- adds the migration guide for migrating from the now deleted compare_set.h header file.
- adds the migration guide for migrating from the now deleted esp_cpu_get_ccount(),
  esp_cpu_set_ccount() and esp_cpu_in_ocd_debug_mode() functions in esp_cpu.h.
2022-07-22 00:06:06 +08:00
Guillaume Souchere
0bac33ed41 esp_system: Remove deprecate section from esp_cpu.h
- Remove esp_cpu_in_ocd_mode() from esp_cpu.h. Users should call esp_cpu_dbgr_is_attached() instead.
- Remove esp_cpu_get_ccount() from esp_cpu.h. Users should call esp_cpu_get_cycle_count() instead.
- Remove esp_cpu_set_ccount() from esp_cpu.h. Users should call esp_cpu_set_cycle_count() instead.
- Other IDF components updated to call esp_cpu_dbgr_is_attached(), esp_cpu_get_cycle_count() and esp_cpu_set_cycle_count() as well.
2022-07-22 00:06:06 +08:00
Guillaume Souchere
dcae121d80 hal: Deprecate soc_hal.h and soc_ll.h interface
This commit marks all functions in soc_hal.h and soc_ll.h as deprecated.
Users should use functions from esp_cpu.h instead.

Also added missing wrap funcions for esp_cpu_stall() in test_panic.c files.
2022-07-22 00:06:06 +08:00
Guillaume Souchere
6005cc9163 hal: Deprecate interrupt_controller_hal.h, cpu_hal.h and cpu_ll.h interfaces
This commit marks all functions in interrupt_controller_hal.h, cpu_ll.h and cpu_hal.h as deprecated.
Users should use functions from esp_cpu.h instead.
2022-07-22 00:06:06 +08:00
Darian Leung
781d06af73 esp_hw_support: Remove compare_set.h API
This function removes the following legacy atomic CAS functions:

From compare_set.h (file removed):
- compare_and_set_native()
- compare_and_set_extram()

From portmacro.h
- uxPortCompareSet()
- uxPortCompareSetExtram()

Users should call esp_cpu_compare_and_set() instead as this function hides the details
of atomic CAS on internal and external RAM addresses.

Due to the removal of compare_set.h, some missing header includes are also fixed in this commit.
2022-07-22 00:06:06 +08:00
Darian Leung
d37fa7e244 esp_hw_support: Update spinlocks to use esp_cpu_compare_and_set()
esp_cpu_compare_and_set() abstracts the atomic compare-and-set instruction by
hiding the details of whether the target variable is in internal or external
RAM. This commit updates "spinlocks.h" as follows:

- esp_cpu_compare_and_set() is now called instead of "compare_set.h"
- Refactored spinlock logic to be more optimized and have more stringent sanity checks
2022-07-22 00:06:06 +08:00
Darian Leung
64117a0c59 esp_system: Fix esp_cpu_compare_and_set()
This commit fixes esp_cpu_compare_and_set() in the following ways

- Removed call to esp_ptr_external_ram() as it incurred > 80 CPU cycles (due to multiple nested
  function calls, and those functions not being in IRAM). We now check manually if the pointer
  is in external RAM for increased speed.
- Fixed infinite wait when attempting to get the external_ram_cas_lock. The function should
  return immediatley if any part of the compare and set call fails.
- The preprocessor conditions of esp_cpu_compare_and_set() to depend on CONFIG_SPIRAM instead
  of SOC_SPIRAM_SUPPORTED. Even if the target supports SPIRAM, we only need the external RAM
  compare and set feature if SPIRAM is enabled.

Also fixed incorrect inclusion of esp_intr_alloc.h in esp_cpu.h
2022-07-22 00:06:06 +08:00
shenjun
4cfed490ad esp_wifi: fix crash in esp_wifi_set_ant_gpio() 2022-07-21 22:18:08 +08:00
morris
454d658309 rgb_lcd: workaround pclk polarity bug by setting mo>=2 2022-07-21 13:06:09 +00:00
morris
a149afb0c0 rgb_lcd: support PLL240MHz clock source 2022-07-21 13:06:09 +00:00
David Čermák
36f49f361c Merge branch 'bugfix/esp_netif_clean_deps_lwip' into 'master'
esp-netif/lw-ip: Make dependencies one-directional

Closes IDF-4459, IDF-4460, IDF-1099, and IDFGH-6287

See merge request espressif/esp-idf!18084
2022-07-21 20:18:05 +08:00
Jiang Jiang Jian
7a5f5760fd Merge branch 'bugfix/optimize_beacon_timeout_issue' into 'master'
esp_wifi:bugfix optimize beacon timeout issue

Closes WIFI-4647

See merge request espressif/esp-idf!19153
2022-07-21 19:48:00 +08:00
Jiang Jiang Jian
cf5b097c88 Merge branch 'bugfix/further_fix_for_mspi_current_leakage' into 'master'
system/sleep: further fix spi flash/ram current leakage

Closes IDF-4720

See merge request espressif/esp-idf!18566
2022-07-21 19:14:26 +08:00
Jing Li
66395a5c00 system/sleep: further fix spi flash/ram current leakage 2022-07-21 19:14:26 +08:00
Armando (Dou Yiwen)
097e64f8c7 Merge branch 'bugfix/adc2_legacy_oneshot_clk_gating_issue' into 'master'
adc: fix legacy oneshot driver clock gating issue on c3 and c2

See merge request espressif/esp-idf!19144
2022-07-21 19:13:20 +08:00
Roland Dobai
0406fe819a Merge branch 'bugfix/fix_test_cmake_warning_full' into 'master'
CI: Fix the test "smallest partition is nearly full"

See merge request espressif/esp-idf!19156
2022-07-21 19:09:29 +08:00
Simon
62bc3348d5 Merge branch 'ci/flash_encryption_test' into 'master'
flash_encryption: Add several test environments for flash encryption test

Closes IDF-5530

See merge request espressif/esp-idf!19043
2022-07-21 18:38:18 +08:00
Kevin (Lao Kaiyao)
83fc39a9f4 Merge branch 'feature/i2s_follow_up_work_of_driver_ng' into 'master'
i2s: follow-up works of Driver-NG

Closes IDFGH-7660, DOC-3313, and IDF-5235

See merge request espressif/esp-idf!18644
2022-07-21 18:33:00 +08:00
xueyunfei
07d2eaaead esp_wifi:bugfix optimize beacon timeout issue 2022-07-21 08:23:59 +00:00
Dong Heng
37c18d9ee4 vfs: uart/cdcacm/usb_serial_jtag fcntl return read/write state 2022-07-21 16:16:44 +08:00
Kapil Gupta
951928960b esp_wifi: WPA2 enterprise related changes
1. Removed DHE ciphers when mbedTLS is disabled since they take
too much processing power.
2. Removed support of SHA384 and SHA512 when mbedTLS is disabled
due to too much processing needed.
3. Fixed bugs in crypto_hash_init API which was causing
EAP connections to fail when mbedTLS was enabled.
4. Cleaned some code of crypto_hash_***
2022-07-21 13:33:18 +05:30
David Cermak
b8fa24d100 esp_netif/openthread: Update ot_br and ot_port libs
Add libraries with ot_port, that includes netif/lwip port layers
in esp-openthread
2022-07-21 10:01:19 +02:00
laokaiyao
edee3ee3cd i2s: add slot sequence table
Closes: https://github.com/espressif/esp-idf/issues/9208

When I2S is configured into different modes, the slot sequence varies.
This commit updates slot sequence tables and corresponding descriptions
in (both code and programming guide).
2022-07-21 15:52:39 +08:00
laokaiyao
92ea22fe81 i2s: support esp32h2 2022-07-21 15:52:39 +08:00
laokaiyao
90866e99fb i2s: add basic examples for STD/TDM/PDM mode 2022-07-21 15:52:39 +08:00
Omar Chebib
4e7ba0f8bd CI: Fix the test "smallest partition is nearly full"
This test will not fail anymore if the binary size is bigger than 170K.
2022-07-21 15:49:20 +08:00
Rahul Tank
24741cc0de NimBLE: Added option to advertise random address 2022-07-21 07:11:47 +00:00
Jiang Jiang Jian
92b4e134bb Merge branch 'bugfix/remove_inappropriate_bluetooth_init_api' into 'master'
Remove unused bluetooth init api

See merge request espressif/esp-idf!18923
2022-07-21 14:53:44 +08:00
Chen Yu Dong
db7df70331 Merge branch 'ci/update_sniffer_case' into 'master'
CI: update example sniffer test case

See merge request espressif/esp-idf!19134
2022-07-21 14:03:46 +08:00
Jiang Jiang Jian
080ba9a80e Merge branch 'bugfix/phy_init_failed_when_wifi_deinit' into 'master'
bugfix for phy init failed when wifi deinit

Closes WIFI-4631

See merge request espressif/esp-idf!19127
2022-07-21 13:58:20 +08:00
baohongde
db308d2939 components/coex: Make sure sempher and queue used in isr is in DRAM
Closes https://github.com/espressif/esp-idf/issues/9032
Closes https://github.com/espressif/esp-idf/issues/8928
Closes https://github.com/espressif/esp-idf/issues/9129
2022-07-21 13:56:02 +08:00
baohongde
6d631d14de components/bt: Make sure sempher and queue used in isr is in DRAM 2022-07-21 13:50:29 +08:00
Marius Vikhammer
e828026eb5 CI: migrate blink example test to pytest 2022-07-21 11:24:50 +08:00
Darian
0570c5db1a Merge branch 'bugfix/freertos_xTaskIncrementTick' into 'master'
freertos: Fix xTaskIncrementTick() and xTaskResumeAll()

Closes IDF-4698 and IDF-4705

See merge request espressif/esp-idf!17204
2022-07-21 08:14:30 +08:00
Mahavir Jain
15039f367d Merge branch 'update/update_certs_bundle' into 'master'
Update esp_crt_bundle certificates

See merge request espressif/esp-idf!19132
2022-07-21 06:14:41 +08:00
Abhik Roy
757a171e39 Merge branch 'example/icmpv6_ping' into 'master'
icmpv6_ping example code formatting.

See merge request espressif/esp-idf!19136
2022-07-21 03:32:02 +08:00
morris
2e47a422e3 Merge branch 'example/rmt_ds18b20' into 'master'
example: simulate 1-wire protocol with RMT driver (take DS18B20 as example)

Closes IDF-1457

See merge request espressif/esp-idf!18857
2022-07-20 23:16:40 +08:00
wangyuanze
20afcc96a8 example: add onewire_ds18b20 example 2022-07-20 14:12:43 +00:00
wangyuanze
ab0c4abd6e rmt: add open-drain flag on tx channel 2022-07-20 14:12:43 +00:00
morris
8944479bcd Merge branch 'feature/gpio_sigma_delta_ng' into 'master'
 SDM Driver-NG (Sigma-Delta channel allocator)

Closes IDF-5261 and IDF-2877

See merge request espressif/esp-idf!18626
2022-07-20 21:30:12 +08:00
Sudeep Mohanty
dadafb753f Merge branch 'bugfix/freertos_oneshot_timer_active_after_expiry' into 'master'
freertos: Fixed a bug where xTimerIsTimerActive incorrectly returns pdTRUE from callback

Closes IDFGH-6353

See merge request espressif/esp-idf!19076
2022-07-20 21:06:05 +08:00
David Cermak
e7afdff6ca esp_netif: Make set_link_speed() conditional on MIB2_STATS 2022-07-20 14:59:34 +02:00
David Cermak
89bb1fdec1 esp_netif: Add error checks to dhcp server state transitions 2022-07-20 14:59:34 +02:00
David Cermak
e85f45b539 examples/cxx: Remove esp_modem examples
Examples are maintained and supported in esp-protocols
2022-07-20 14:59:33 +02:00
David Cermak
5c383d7b73 esp_netif/lwip: Fix deps cycles to "lwip -> esp_netif -> phy-drivers"
Fix dependency tree so that lwip doesn't depend on any specific network
interface component.
Network interface drivers shall depend on esp_netif.
esp_netif shall depend on lwip (but not on any specific interface
driver) -- it optionally depends on vfs and esp_eth (need ethernet
header for L2/bridge mode)
2022-07-20 14:59:07 +02:00
Jiang Jiang Jian
84ae84e3fe Merge branch 'bugfix/fix_lora_ie_bcn' into 'master'
Fix missing LoRa IE length in SoftAP beacon

Closes WIFI-4495

See merge request espressif/esp-idf!18997
2022-07-20 20:23:02 +08:00
David Čermák
e7ccaaf9ca Merge branch 'feature/update_mqtt_client' into 'master'
[MQTT] - Updates esp_mqtt configuration struct

See merge request espressif/esp-idf!18101
2022-07-20 19:52:04 +08:00
Martin Gaňo
58b1c140d7 fatfsgen.py: add description of the parameter PRESERVE_TIME 2022-07-20 13:06:57 +02:00
Kapil Gupta
b8267a59eb Merge branch 'bugfix/wps_disable_disconnect' into 'master'
WiFi: Do not disconnect in WPS disable API incase WPS is done/scanning

Closes IDFGH-7807

See merge request espressif/esp-idf!19092
2022-07-20 18:47:32 +08:00
Nachiket Kukade
792472c419 esp_wifi: Update wifi libs
Add missing LoRa IE length while allocating for Beacon in SoftAP LoRa mode
2022-07-20 09:24:46 +00:00
morris
3277b11c39 Merge branch 'feature/esp_lcd_spi_rx_1' into 'master'
Add support SPI rx into LCD component

Closes IDFGH-7661

See merge request espressif/esp-idf!19020
2022-07-20 16:59:44 +08:00
Ivan Grokhotkov
e56b1fd59d Merge branch 'feature/unity_runner_get_test_list' into 'master'
unity: expose some internal functions to allow iterating over tests

See merge request espressif/esp-idf!19056
2022-07-20 16:57:49 +08:00
Roland Dobai
2020e77743 Merge branch 'contrib/github_pr_9375' into 'master'
Tools: resolve symlinks in IDF_PATH when installing (GitHub PR)

Closes IDFGH-7846

See merge request espressif/esp-idf!19119
2022-07-20 16:49:29 +08:00
Roland Dobai
9012e7b59f Merge branch 'bugfix/fix_NotImplementedError_on_windows_by_updating_error_msg' into 'master'
tools: Improve the error message for handling NotImplementedError on Windows

See merge request espressif/esp-idf!19097
2022-07-20 16:48:40 +08:00
Roland Dobai
39a0925836 Merge branch 'contrib/github_pr_9385' into 'master'
Tools: Avoid the crash of IDF Monitor when it is run without an ELF file

Closes IDFGH-7859

See merge request espressif/esp-idf!19141
2022-07-20 16:46:12 +08:00
Armando
638f39ff40 adc: fix legacy oneshot driver clock gating issue on c3 and c2 2022-07-20 16:35:59 +08:00
Mahavir Jain
d921199c59 Merge branch 'bugfix/cbor_newlib_nano_case' into 'master'
examples/cbor: fix parsing with newlib nano config

Closes IDFCI-1375

See merge request espressif/esp-idf!19107
2022-07-20 16:30:22 +08:00
Michael (XIAO Xufeng)
5d24a207b6 test_spi: fixed redundant quotes in test descriptions 2022-07-20 15:36:10 +08:00
Vilem Zavodny
7b3fe6d832 esp_lcd: Add RX into SPI lcd panel. 2022-07-20 07:07:33 +00:00
Vilem Zavodny
a7bd917c42 esp_lcd: Fix code style. 2022-07-20 07:07:33 +00:00
Slamy
256945997d fixed misaligned data transfer for ssd1306
(cherry picked from commit 46a2bf8ac9)
2022-07-20 07:07:33 +00:00
morris
75d411a003 doc: update sdm api reference 2022-07-20 14:59:50 +08:00
morris
edb5600348 sdm: refactor example with new driver 2022-07-20 14:59:50 +08:00
morris
f33428f2e5 sdm: added channel allocator for sigma delta module 2022-07-20 14:59:50 +08:00
morris
e080248141 sdm: deprecate legacy driver 2022-07-20 14:59:50 +08:00
morris
4154eaec93 sdm: clean up soc/hal/ll code 2022-07-20 14:59:50 +08:00
morris
9e532696f4 pcnt: add const qualifier to event data 2022-07-20 14:59:50 +08:00
Abhik Roy
8ab028c85e icmpv6_ping example code formatting. 2022-07-20 12:14:59 +05:30
xueyunfei
b4d11d00ca bugfix for phy init failed when wifi deinit 2022-07-20 14:16:08 +08:00
morris
ee771c1d08 Merge branch 'test/gptimer_c2_xtal26mhz' into 'master'
gptimer: test on c2 with xtal 26mhz

Closes IDF-5419 and IDF-5418

See merge request espressif/esp-idf!18993
2022-07-20 13:57:55 +08:00
GengYuchao
964304b751 Change the selection based on target to function selection 2022-07-20 13:06:56 +08:00
Chen Yudong
8c01bdd4c3 CI: update example sniffer test case 2022-07-20 13:02:55 +08:00
Cao Sen Miao
e69f658ac6 flash_encryption: Add several test environments for flash encryption test 2022-07-20 12:49:42 +08:00
morris
bec44ca2e9 gptimer: test on c2 with xtal 26mhz 2022-07-20 04:40:28 +00:00
Mahavir Jain
075e0729de Merge branch 'bugfix/mbedtls_dep_on_driver' into 'master'
mbedtls: remove dependency on driver component

Closes IDF-1265

See merge request espressif/esp-idf!19081
2022-07-20 12:04:34 +08:00
morris
6cab124d7c Merge branch 'bugfix/corrected_typo_in_example_peripherals_usb_device' into 'master'
example: peripherals/usb/device: fix typo naming of local variables

See merge request espressif/esp-idf!19080
2022-07-20 11:56:04 +08:00
GengYuchao
f34b3912b0 Fix blufi crash caused by the break change 2022-07-20 11:44:00 +08:00
GengYuchao
6db79c3950 Fix missing blufi sdkconfig.defaults for esp32c2 2022-07-20 11:44:00 +08:00
GengYuchao
298583b116 Fix nimble port api adapt remove esp_nimble_hci_and_controller_init 2022-07-20 11:44:00 +08:00
GengYuchao
fd055d3ba6 Fix example after removing API esp_nimble_hci_and_controller_init 2022-07-20 11:44:00 +08:00
GengYuchao
5430ad0519 Remove esp_nimble_hci_and_controller_init function 2022-07-20 11:44:00 +08:00
Darian Leung
38d974aca0 freertos: Update scheduler suspension unit tests
This commit updates unit tests for vTaskSuspendAll()/xTaskResumeAll().
2022-07-20 11:32:10 +08:00
Darian Leung
ac38f9aaf1 freertos: Rename scheduler suspension test file 2022-07-20 11:32:10 +08:00
Darian Leung
db26ff2503 freertos: Fix vTaskSuspendAll() and xTaskResumeAll()
This commit fixes vTaskSuspendAll() and xTaskResumeAll() in the following ways.

- For vTaskSuspendAll()
    - Sync function source code with upstream single core version
    - Clearly mark IDF additions
- For xTaskResumeAll()
    - Sync function source code with upstream single core version
    - Clearly mark IDF additions
    - Fix bug where cores other than core 0 were allowed to unwind pended ticks
2022-07-20 11:32:10 +08:00
Darian Leung
5971253971 freertos: Fix vTaskStepTick() and xTaskCatchUpTicks()
This commit fixes the following issues:

- Clearly mark IDF additions in vTaskStepTick() and xTaskCatchUpTicks()
- Add back vTaskSuspendAll()/xTaskResumeAll() to xTaskCatchUpTicks(). Scheduler
  suspension and resumption is required to unwind the pended ticks.
2022-07-20 11:32:10 +08:00
Darian Leung
7a4e1fee99 freertos: Fix xTaskIncrementTick()
Previously, xTaskIncrementTick() would always trigger a yield (i.e., return pdTRUE)
when called on core 1. This would mean core 1 would call vTaskSwitchContext() on
every tick, leading to uneccesary CPU overhead.

This commit fixes xTaskIncrementTick() in the following ways:

- Clearly mark IDF additions in xTaskIncrementTick()
- Moved esp_vApplicationTickHook() to be called direclty in xPortSysTickHandler() in order to
  simplify xTaskIncrementTick().
- Only core 0 calls xTaskIncrementTick() in order to simplify the function's logic. Core 0 is
  solely responsible for managing xTickCount and xPendedTicks
- All other cores call xTaskIncrementTickOtherCores() instead which is a simplified version of
  xTaskIncrementTick() and handles the following:
    - Check if core 0 has unblocked a higher priority task to run
    - Check if the current core requires time slicing
    - Call vApplicationTickHook()
2022-07-20 11:31:50 +08:00
Marius Vikhammer
c585618b97 Merge branch 'docs/broken_links' into 'master'
docs: fixed misc broken links

See merge request espressif/esp-idf!19131
2022-07-20 10:49:42 +08:00
Espressif BOT
72fe927e85 Update esp_crt_bundle certificates 2022-07-20 10:00:11 +08:00
Marius Vikhammer
1315f85e01 docs: fixed misc broken links 2022-07-20 09:43:52 +08:00
jiangguangming
e0d9220a6e example: peripherals/usb: fix typo naming of local variables 2022-07-20 09:36:24 +08:00
Marius Vikhammer
3c2c9206dd Merge branch 'bugfix/lightsleep_example_test_flaky' into 'master'
ci: fixed flakey light sleep example test

Closes IDFCI-1373

See merge request espressif/esp-idf!19102
2022-07-20 09:16:21 +08:00
Marek Fiala
2968b3b946 Tools: Resolve symlinks when installing ESP-IDF using install.sh
Closes: https://github.com/espressif/esp-idf/pull/9375
2022-07-19 21:13:00 +02:00
Adam Simpkins
ff75c4f3b5 Tools: resolve symlinks in IDF_PATH when installing
Use `pwd -P` to resolve any symlinks in the current directory path.
This makes the behavior in the shell script similar to the idf_tools.py
code, which calls `os.path.realpath()`.  Without this, multiple entries
can get created in the `idfInstalled` dictionary in idf-env.json, and
the installed targets and features are not fully present in all entries.
This results in a broken installation, where `export.sh` cannot set up
the environment correctly afterwards.
2022-07-19 21:13:00 +02:00
Roland Dobai
715e851c12 Merge branch 'feature/idf_targets_data_and_actions' into 'master'
Tools: Export selected target idf.py actions

Closes IDF-4500

See merge request espressif/esp-idf!18780
2022-07-20 02:38:44 +08:00
Marek Fiala
9c0969b512 Tools: Export selected target actions
Added option --json to action help, for export selected target actions
2022-07-19 20:02:55 +02:00
Ivan Grokhotkov
de3990f1c0 Merge branch 'doc/esp32c2_jtag' into 'master'
docs: update JTAG related information for ESP32-C2

Closes IDF-4327

See merge request espressif/esp-idf!18496
2022-07-20 01:55:23 +08:00
Wang Ning
394a195015 Merge branch 'docs/restructure_migration_guide' into 'master'
Docs/Restructure Migration Guides

See merge request espressif/esp-idf!18920
2022-07-19 23:15:07 +08:00
Song Ruo Jing
4734b1433b Merge branch 'bugfix/gpio_hal_coverity_fix' into 'master'
gpio: Fix ESP32S3 GPIO48 does not support hold function bug and Fix coverity report

Closes IDF-4901

See merge request espressif/esp-idf!18805
2022-07-19 21:37:15 +08:00
Armando (Dou Yiwen)
9f6f61345b Merge branch 'feature/adc_driver_ng' into 'master'
ADC Driver NG

Closes IDF-4560, IDF-3908, IDF-4225, IDF-2482, IDF-4111, IDF-3610, IDF-4058, IDF-3801, IDF-3636, IDF-2537, IDF-4310, IDF-5150, IDF-5151, and IDF-4979

See merge request espressif/esp-idf!17960
2022-07-19 21:28:31 +08:00
Roland Dobai
b59309852a Merge branch 'features/check_SPDX_license' into 'master'
Add SPDX license check

Closes PACMAN-386

See merge request espressif/esp-idf!18664
2022-07-19 18:57:05 +08:00
Wang Ning
4526a5abf5 docs/restructure_migration_guides 2022-07-19 18:54:51 +08:00
Sudeep Mohanty
5e1437deb8 freertos: Fixed a bug where xTimerIsTimerActive incorrectly returns pdTRUE from callback
This commit fixes the following:
- Fixes a bug wherein the timer status is active for oneshot timers that
expire before they are started.
- Callback calls for periodic timers where made before the timers were
auto-reloaded.
- Timer expiry trace was being set after the timer callback is called.

Closes https://github.com/espressif/esp-idf/issues/8014
2022-07-19 10:42:09 +02:00
Chen Jian Xing
4808f9b725 Merge branch 'bugfix/fix_write_to_null_pointer_if_malloc_failed_issue' into 'master'
Bugfix/fix write to null pointer if malloc failed issue

Closes IDFGH-7836

See merge request espressif/esp-idf!19087
2022-07-19 16:32:44 +08:00
Ivan Grokhotkov
c0e94c6688 Merge branch 'feature/update-gdb-to-11.2_20220715' into 'master'
tools: update gdb version to '11.2_20220715'

Closes IDFGH-7787

See merge request espressif/esp-idf!19071
2022-07-19 16:04:07 +08:00
Mahavir Jain
0c09406173 examples/cbor: keep newlib nano disabled in the example
CBOR parsing fails with newlib nano configuration, observed on ESP32-C2.

Closes IDFCI-1375
2022-07-19 13:27:51 +05:30
Jakob Hasse
1f75fc0aa1 bugfix (esp_timer): made os spinlock static 2022-07-19 15:35:32 +08:00
Marius Vikhammer
12dcb95644 Merge branch 'ci/remove_temp_deepsleep_tag' into 'master'
ci: remove temp deepsleep tag runner

Closes IDF-5213

See merge request espressif/esp-idf!18654
2022-07-19 14:58:33 +08:00
Mo Fei Fei
f3a16d5122 Merge branch 'docs/update_nvs_encryption_cn_trans' into 'master'
Docs: Update CN translation for nvs encryption docs

Closes DOC-3202

See merge request espressif/esp-idf!18938
2022-07-19 14:47:16 +08:00
Simon
7c14328daa Merge branch 'fix/i2c_clk_26M' into 'master'
I2C: Add the I2C clock tree, and support 26M XTAL on ESP32-C2

Closes IDF-5005, IDF-5415, and IDF-4535

See merge request espressif/esp-idf!19057
2022-07-19 13:34:22 +08:00
Chen Jian Xing
c449abc8cd Merge branch 'feat/esp32c2_26M_phy_support' into 'master'
esp_phy: Support 26M and 40M crystal for esp32c2 phy

See merge request espressif/esp-idf!19010
2022-07-19 13:00:55 +08:00
Adam Simpkins
9961061811 Tools: fix a crash in idf_monitor.py
If self.elf_exists is false, self.gdb_helper is None, which caused this
code to crash.  It looks like this guard was missed in e30329ffe2.

Previously the code could crash like this:

    Traceback (most recent call last):
      File "/usr/local/src/esp-idf/tools/idf_monitor.py", line 376, in <module>
        main()
      File "/usr/local/src/esp-idf/tools/idf_monitor.py", line 367, in main
        monitor.main_loop()
      File "/usr/local/src/esp-idf/tools/idf_monitor.py", line 163, in main_loop
        self._main_loop()
      File "/usr/local/src/esp-idf/tools/idf_monitor.py", line 268, in _main_loop
        super()._main_loop()
      File "/usr/local/src/esp-idf/tools/idf_monitor.py", line 203, in _main_loop
        self.serial_handler.handle_commands(data, self.target, self.run_make, self.console_reader,
      File "/usr/local/src/esp-idf/tools/idf_monitor_base/serial_handler.py", line 203, in handle_commands
        run_make_func('encrypted-flash' if self.encrypted else 'flash')
      File "/usr/local/src/esp-idf/tools/idf_monitor.py", line 150, in run_make
        run_make(target, self.make, self.console, self.console_parser, self.event_queue, self.cmd_queue,
      File "/usr/local/src/esp-idf/tools/idf_monitor.py", line 237, in __exit__
        self.serial_reader.gdb_exit = self.gdb_helper.gdb_exit  # write gdb_exit flag
    AttributeError: 'NoneType' object has no attribute 'gdb_exit'
2022-07-18 21:34:18 -07:00
Chen Yu Dong
2e9a620659 Merge branch 'ci/fix_advanced_ota_sdkconfig' into 'master'
CI: fix sdkconfig in advanced https ota example

Closes IDFCI-1369 and IDFCI-1370

See merge request espressif/esp-idf!19078
2022-07-19 12:28:00 +08:00
Marius Vikhammer
e4cbaa6f2b ci: remove temp deepsleep tag runner 2022-07-19 12:12:46 +08:00
Shu Chen
6ebdeb3e1c Merge branch 'feature/ot-cli-extension-component' into 'master'
openthread: use managed component for extension commands

See merge request espressif/esp-idf!19025
2022-07-19 11:57:07 +08:00
Jiang Jiang Jian
547785fb86 Merge branch 'feature/enable_h2beta2' into 'master'
esp32h2: use esp32h2-beta2 by default

See merge request espressif/esp-idf!19099
2022-07-19 11:46:14 +08:00
Cao Sen Miao
53580a62b5 I2C: Fullfill the I2C clock tree, and support 26M XTAL on ESP32-C2 2022-07-19 11:41:42 +08:00
Marius Vikhammer
a9ed589501 ci: fixed flakey light sleep example test
A wake-up from timer would trigger before the gpio wakeup in certain cases,
failing the test.

Change the regex to only expect the GPIO wakeup, so that even if there is an extra
timer wakeup it wont fail the test.
2022-07-19 11:03:16 +08:00
David Čermák
d1dc30fd70 Merge branch 'example/icmpv6_ping' into 'master'
examples: Add ICMPv6 Echo Request/Reply example.

See merge request espressif/esp-idf!18731
2022-07-19 05:04:02 +08:00
Ivan Grokhotkov
eeb2808a32 Merge branch 'bugfix/check_readmes_pre_commit_idf_path' into 'master'
ci: allow running check-readmes pre-commit hook without IDF_PATH set

See merge request espressif/esp-idf!19055
2022-07-19 04:46:30 +08:00
simon.chupin
a141be4add tools: Improve the error message for handling NotImplementedError on Windows 2022-07-18 19:03:55 +02:00
Mahavir Jain
508661b03e Merge branch 'bugfix/ipc_O0_stack' into 'master'
ipc: Increase stacksize when compiling with -O0

Closes IDFCI-1372 and IDFCI-1360

See merge request espressif/esp-idf!19083
2022-07-19 00:37:08 +08:00
Mahavir Jain
a94c74c26b mbedtls: remove dependency on driver component
- keep `esp_pm` dependency conditional in mbedtls
- refactor `bt` cmakelist to keep dependencies as private

Related: IDF-1265
2022-07-18 21:10:51 +05:30
David Čermák
5548f5acd6 Merge branch 'bugfix/lwip_ondemand_timers_num_system_timeout' into 'master'
lw ip: Fix on-demand timers to update internal system touts

Closes IDFGH-7595

See merge request espressif/esp-idf!18724
2022-07-18 21:56:57 +08:00
Shu Chen
b45ee118f3 esp32h2: use esp32h2-beta2 by default 2022-07-18 19:52:21 +08:00
Roland Dobai
9c61e5ccb0 Merge branch 'fix/tools_python_checker_message' into 'master'
Tools: Improve the message for missing setuptools in the Python checker

See merge request espressif/esp-idf!19091
2022-07-18 19:50:11 +08:00
Chen Yudong
84942f9121 CI: improve target test rules for ethernet and wifi tests 2022-07-18 18:47:01 +08:00
morris
9df1b0e3a1 Merge branch 'bugfix/not_test_bounce_buffer_mode_iram_safe' into 'master'
rgb_lcd: don't test bounce buffer mode with iram-safe

See merge request espressif/esp-idf!19089
2022-07-18 18:22:53 +08:00
Roland Dobai
b738953e90 Tools: Improve the message for missing setuptools in the Python checker 2022-07-18 11:56:32 +02:00
Jiang Jiang Jian
5b771082bd Merge branch 'bugfix/wifi_owe_memory_leak' into 'master'
esp_wifi:bugfix for wifi owe memory leak

Closes WIFI-4589

See merge request espressif/esp-idf!19011
2022-07-18 17:53:51 +08:00
Kapil Gupta
9d98cd8f8d WiFi: Do not disconnect in WPS disable incase WPS is done/scanning
Closes https://github.com/espressif/esp-idf/issues/9341
2022-07-18 14:57:01 +05:30
Hassan DRAGA
5d27d66ddd QA: Check driver installation status
When you have a large project, uart_driver_install() may fail. For QA we should always check the status of the driver first.
2022-07-18 09:25:22 +00:00
Jiang Jiang Jian
633a9f744a Merge branch 'bugfix/OWE_memory_leak' into 'master'
esp_wifi : fixed OWE memory leak

See merge request espressif/esp-idf!19061
2022-07-18 17:20:36 +08:00
Jiacheng Guo
558ce70f40 openthread: use managed component for extension commands 2022-07-18 16:39:30 +08:00
morris
05c51093c8 rgb_lcd: don't test bounce buffer mode with iram-safe
(cherry picked from commit 3ece942704)
2022-07-18 14:57:50 +08:00
morris
3ece942704 rgb_lcd: don't test bounce buffer mode with iram-safe 2022-07-18 14:55:11 +08:00
Abhik Roy
25c310b3da examples: Add ICMPv6 Echo Request/Reply example.
Added example to create a raw ICMPv6 socket and sends an ICMPv6 Echo-Request
to the destination ipv6 address and wait for Echo-Reply for esp32 and Linux target.
2022-07-18 12:13:23 +05:30
Fu Hanxi
29307e0dbf Merge branch 'ci/fix_nightly_run_missing_app' into 'master'
Ci/fix nightly run missing app

Closes IDFCI-1367 and IDFCI-1359

See merge request espressif/esp-idf!18915
2022-07-18 14:41:07 +08:00
intern
4866e91398 docs: update nvs encryption cn trans 2022-07-18 14:40:56 +08:00
Kapil Gupta
882ad4e5e7 Merge branch 'feature/eloop_debug_framework' into 'master'
wpa_supplicant: Add debug info for eloop functions

See merge request espressif/esp-idf!18451
2022-07-18 14:17:25 +08:00
Marius Vikhammer
ccc184de51 ipc: Increase stacksize when compiling with -O0 2022-07-18 13:55:03 +08:00
Krzysztof Budzynski
45ba00544a Merge branch 'contrib/github_pr_9357' into 'master'
corrected a typo (GitHub PR)

Closes IDFGH-7828

See merge request espressif/esp-idf!19074
2022-07-18 10:58:11 +08:00
Fu Hanxi
d28c1be711 ci: build but set preserve to false for different nightly_run scenarios 2022-07-18 10:17:54 +08:00
Fu Hanxi
4317448f71 ci: allow pytest pass when no tests collected 2022-07-18 09:11:37 +08:00
Fu Hanxi
7bab78014f fix: run_cmd 2022-07-18 09:10:33 +08:00
Chen Yudong
15f779b647 CI: fix sdkconfig in advanced https ota example 2022-07-17 20:15:48 +08:00
Oleg Savchenko
656d6dac15 fix possible memory leak if report level not set 2022-07-17 11:24:12 +03:00
Ivan Grokhotkov
1b1068ce22 Merge branch 'feature/console_log_level_command' into 'master'
console: add log_level command to the example

See merge request espressif/esp-idf!18614
2022-07-16 16:53:51 +08:00
David Čermák
1334011d4f Merge branch 'bugfix/transport_foundation_intialization' into 'master'
tcp_transport: Fix initialition of transport

See merge request espressif/esp-idf!17869
2022-07-16 16:28:49 +08:00
Oleg Savchenko
a70a1d299a fix write to null pointer if malloc failed 2022-07-15 23:55:59 +03:00
Euripedes Rocha
ff1c405ed1 [MQTT] - Updates esp_mqtt configuration struct
- Layered config struct
- Fix examples.
2022-07-15 12:32:50 -03:00
Chen Yu Dong
309440c687 Merge branch 'bugfix/update_get_ip_for_multiple_interfaces' into 'master'
ci: Fix wifi and ethernet test cases

See merge request espressif/esp-idf!18733
2022-07-15 22:07:48 +08:00
Ivan Grokhotkov
ef9e89062a console: add log_level command to the example
This allows calling esp_log_level_set function from the console.
Together with CONFIG_LOG_MAXIMUM_LEVEL option, this allows enabling
logs from different tags at run time.
2022-07-15 14:51:05 +02:00
Ivan Grokhotkov
0abf886284 console: support ESP32-C2 in the 'version' command 2022-07-15 14:51:04 +02:00
Alexey Lapshin
868baf76f3 tools: update gdb version to '11.2_20220715' 2022-07-15 14:59:39 +04:00
Armando
5b523a3313 esp_adc: new esp_adc component and adc drivers 2022-07-15 18:31:00 +08:00
Shyamal Khachane
88db86672d fix for OWE memory leak 2022-07-15 14:29:32 +05:30
songruojing
145454356b gpio: Fix ESP32S3 GPIO48 does not support hold function bug
GPIO_HOLD_MASK array was missing the last item

Add __Static_assert to check array sizes for all gpio_periph.c files to prevent same mistake in the future.
2022-07-15 16:51:25 +08:00
songruojing
0c4b9a0101 gpio: Fix HAL bad bit shift operation on gpio_num_t reported from coverity
All gpio hal and ll functions input arguments gpio_num_t are changed to uint32_t type.
Validation of gpio num should be guaranteed from the driver layer.
2022-07-15 16:51:25 +08:00
David Čermák
c65d818c1d Merge branch 'bugfix/set_ipv6_dns_error' into 'master'
lw ip: Fixed that ipv6 dns cannot work

See merge request espressif/esp-idf!19018
2022-07-15 14:50:02 +08:00
Chen Yudong
d54e1e8379 CI: make sure that reading of the ipv4 address has finished 2022-07-15 14:21:39 +08:00
Chen Yudong
f7981d8760 ci: add python_package for running pytest locally 2022-07-15 14:21:39 +08:00
Chen Yudong
2f75733ad7 CI: Improve common test methods
also fix ota test cases
2022-07-15 14:21:34 +08:00
Paul Jurczak
3cf404f464 corrected a typo 2022-07-15 00:02:19 -06:00
David Čermák
1a7dfa42e6 Merge branch 'bugfix/cpp_include_fix_newlib_net_if_h' into 'master'
Add C++ include guard to if.h (to fix linker errors in asio) (GitHub PR)

Closes IDFGH-7718

See merge request espressif/esp-idf!18850
2022-07-15 13:16:47 +08:00
Jiang Jiang Jian
7497a5287c Merge branch 'bugfix/fix_bluedroid_host_memory_overflow' into 'master'
Fixed bluedroid host memory overflow

Closes BT-2397

See merge request espressif/esp-idf!18897
2022-07-15 11:52:33 +08:00
Wang Yuan Ze
b666bdb01e Merge branch 'example/fix_ir_nec_transceiver_issue' into 'master'
example: Fix rmt callback memory issue in ir_nec_transceiver

See merge request espressif/esp-idf!19040
2022-07-15 11:39:36 +08:00
Ivan Grokhotkov
09c70d5781 unity: expose some internal functions to allow iterating over tests 2022-07-14 19:47:46 +02:00
Chen Yudong
692fbc169c CI: use ssid password from stdin for pytest cases 2022-07-15 01:16:36 +08:00
Chen Yudong
4313ff4655 CI: input ssid password depends on sdkconfig 2022-07-15 01:16:36 +08:00
Chen Yudong
472ac26712 CI: update test cases to use different environment variables
change test environments
optimize asio udp server test
fix icmp echo test case
use ethernet_router env to run iperf test cases
2022-07-15 01:16:35 +08:00
Chen Yudong
5d0302e49f CI: add some common test methods 2022-07-15 01:16:35 +08:00
Chen Yudong
4d9393fc53 example: use example common componments in esp_local_ctrl 2022-07-15 01:16:35 +08:00
Chen Yudong
9575f03b8d CI: fix ip address checker and trace log 2022-07-15 01:16:35 +08:00
Chen Yudong
bf0e4943be common_components: add wifi connect console commands 2022-07-15 01:16:27 +08:00
Ondrej Kosta
c0312e3242 Merge branch 'feature/improve_spi_ethernet_init' into 'master'
esp_eth: SPI Ethernet modules initialization simplification

Closes IDF-3902

See merge request espressif/esp-idf!18663
2022-07-15 00:02:23 +08:00
Rahul Tank
19bea043fb Merge branch 'bugfix/os_mbuf_free_c2_h2' into 'master'
Fixed os_mbuf_free compilation error for esp32c2 and esp32h2

See merge request espressif/esp-idf!19033
2022-07-14 23:16:59 +08:00
Roland Dobai
958819323d Merge branch 'feat/tools_python_constraints_env' into 'master'
Tools: Disable Python constraint files with environment variable

Closes IDFGH-7722

See merge request espressif/esp-idf!18830
2022-07-14 23:05:22 +08:00
Ivan Grokhotkov
8870ffc6e1 ci: allow running check-readmes pre-commit hook without IDF_PATH set
... which may happen when making a git commit using a GUI tool.
2022-07-14 16:32:20 +02:00
Ivan Grokhotkov
2ce10d44ab docs: update JTAG related information for ESP32-C2 2022-07-14 15:57:43 +02:00
Fu Hanxi
9653af8d04 Merge branch 'ci/cache_submodules' into 'master'
CI: cache submodules

Closes IDFCI-1158

See merge request espressif/esp-idf!19009
2022-07-14 20:34:34 +08:00
xueyunfei
1f9fa7b1b2 esp_wifi:bugfix for wifi owe memory leak 2022-07-14 20:34:15 +08:00
Euripedes Rocha
5778a7c726 [tcp_transport] Fix initialition of transport
- Foundation was initialized only for SSL.
- Removed base from list.
- Changed SSL and TCP initialition.
- Clean of state data structures.
2022-07-14 12:29:58 +00:00
Fu Hanxi
7b5a3af407 Merge branch 'feat/reorg_examples' into 'master'
feat: new find_build_apps rules with centralized manifest file

Closes IDFCI-1061, IDF-3553, IDFCI-941, IDFCI-1359, and IDFCI-1361

See merge request espressif/esp-idf!18299
2022-07-14 20:04:12 +08:00
zhiweijian@espressif.com
4bd267ac9a Fixed bluedroid host memory overflow 2022-07-14 19:35:22 +08:00
wangyuanze
61f19094b0 example: fix rmt callback memory issue in ir_nec_transceiver 2022-07-14 18:59:38 +08:00
Roland Dobai
de37f9dc33 Tools: Disable Python constraint files with environment variable
Constraint files can be disabled with environment variable as well which
is useful when one uses the install/export scripts instead of
idf_tools.py directly. This is option is useful for offline build as
well.

Closes https://github.com/espressif/esp-idf/issues/9263
2022-07-14 11:25:29 +02:00
morris
d95afae0d2 Merge branch 'feature/rgb-lcd-auto-next_frame' into 'master'
rgb_lcd: Double Frame Buffer && Bounce Buffer

Closes IDF-4494 and IDFGH-7737

See merge request espressif/esp-idf!18545
2022-07-14 16:21:52 +08:00
Ondrej Kosta
bb6c6aff36 esp_eth: SPI Ethernet modules initialization simplification 2022-07-14 08:46:22 +02:00
David Cermak
adb79a4852 newlib: Fix header issues with C++ guards and implicit inclusion
* Added C++ sentinels if missed
* Used #pragma once, removed macro's with leading underscores
* Updated copyright checker to allow "BSD-2-Clause-FreeBSD AND
Apache-2.0" for newlib files
* Fixed minor compilation issues/implicit inclusions
2022-07-14 08:32:04 +02:00
Fu Hanxi
6d8ebacb8a ci: check .patterns-submodule in pre-commit 2022-07-14 14:08:16 +08:00
Fu Hanxi
62ca8e2fb4 ci: cache submodules 2022-07-14 14:08:16 +08:00
morris
28c512b34c rgb_lcd: update example to support double buffer and bounce buffer 2022-07-14 14:05:47 +08:00
morris
a33a183365 rgb_lcd: support double buffer
also cleaned up the bounce buffer code
2022-07-14 14:05:47 +08:00
morris
9ea3f6f3e7 rgb_lcd: support 8bit RGB (SRGB) interface 2022-07-14 14:05:47 +08:00
morris
ad35ed2e58 rgb_lcd: update unit test for more features
test 8bit RGB interface
test PCLK can be changed at runtime
test bounce buffer mode
adapted to the new LCD board
2022-07-14 14:05:47 +08:00
morris
4bccd3b635 rgb_lcd: rename relax_on_idle to refresh_on_demand 2022-07-14 14:05:47 +08:00
morris
1dab4af3e8 rgb_lcd: added API to manually refresh the LCD 2022-07-14 14:05:47 +08:00
morris
140536892d rgb_lcd: added API to get the frame buffer(s) 2022-07-14 14:05:47 +08:00
morris
226bd6bc2d rgb_lcd: add doc for various frame buffer modes 2022-07-14 14:05:47 +08:00
morris
ada0ba7717 rgb_lcd: unify the way to register event callbacks 2022-07-14 14:05:47 +08:00
48c5b45e99 Add C++ include guard to if.h (to fix linker errors in asio) 2022-07-14 07:48:58 +02:00
Mahavir Jain
3069759486 Merge branch 'fix/esp_local_ctrl_example_test' into 'master'
esp_local_ctrl/scripts: Update the script to use async methods

Closes IDFCI-1336

See merge request espressif/esp-idf!18766
2022-07-14 13:13:09 +08:00
David Cermak
58b0def0d9 lwip: Fix on-demand timers to update internal system touts
If on-demand timers (IGMP+MLD6) were enabled, idf updated user config
MEMP_NUM_SYS_TIMEOUT. The implementation of these timers are in lwip
project so the internal system timeout shall be updated accordingly,
enabling port layers to modify MEMP_NUM_SYS_TIMEOUT.

Closes https://github.com/espressif/esp-idf/issues/9150
2022-07-14 05:09:53 +00:00
Isha Pardikar
183100fc28 Nimble: Fixed compilation error for esp32c2 and esp32h2 when os_mbuf_free is called. 2022-07-14 09:41:05 +05:30
Chen Jian Xing
27d096fb63 Merge branch 'bugfix/fix_beacon_timeout_timer_assert_issue' into 'master'
esp_wifi: fix sta reset beacon timeout timer issue

Closes IDFGH-7489 and IDFCI-1357

See merge request espressif/esp-idf!19021
2022-07-14 11:30:05 +08:00
Jiang Jiang Jian
b243a9cb94 Merge branch 'bugfix/print_ready_after_init_transaction' into 'master'
ble_mesh:example:change the location of print ready

See merge request espressif/esp-idf!19027
2022-07-14 11:24:43 +08:00
Fu Hanxi
c0568611dd docs: changes docs supported targets tables 2022-07-14 08:26:32 +08:00
Fu Hanxi
54f69d35a3 ci: add check job and pre-commit 2022-07-14 08:26:32 +08:00
Fu Hanxi
05d2357062 feat: use standalone project idf-build-apps for find/build apps utils 2022-07-14 08:26:31 +08:00
Fu Hanxi
f04a0cc526 fix: bypass Manually-specified variables were not used by the project warning
the variable "IDF_TARGET" is only used under a if clause
"if(ULP_C0CPU_IS_RISCV)". while building a non-riscv target,
there will be a cmake warning:

CMake Warning:
  Manually-specified variables were not used by the project:

    IDF_TARGET
2022-07-14 08:26:01 +08:00
Fu Hanxi
97132c40fd ttfw: mock missing packages while search cases 2022-07-14 08:26:01 +08:00
Fu Hanxi
c9b73a554e ttfw: record test script path in case_info 2022-07-14 08:26:01 +08:00
Fu Hanxi
1129bd7587 test: increase test gpio time timeout 2022-07-14 08:26:01 +08:00
Fu Hanxi
51d70ea9ee style: ignore pylint too-many-instance-attributes error 2022-07-14 08:26:01 +08:00
Fu Hanxi
46bac6427a ci: default python version 3.7.10 2022-07-14 08:26:01 +08:00
Fu Hanxi
6502ba0b3c ci: add missing pytest marker 2022-07-14 08:26:01 +08:00
Fu Hanxi
f540fd42d8 chore: update .gitignore files with other build directories 2022-07-14 08:26:01 +08:00
Fu Hanxi
f7a0e0cb5c ci: raise ImportError when search case failed instead of print the error 2022-07-14 08:26:01 +08:00
Fu Hanxi
f4a1f56c08 ci: remove unsupported test markers 2022-07-14 08:26:01 +08:00
Fu Hanxi
d1bf62b0e7 ci: fix the bug that would modify constants.SUPPORTED_TARGETS 2022-07-14 08:26:01 +08:00
Fu Hanxi
9baa17ac57 chore: add .cache to gitignore 2022-07-14 08:22:35 +08:00
Ivan Grokhotkov
230e732018 Merge branch 'feature/system_init_priorities' into 'master'
esp_system: introduce priorities for startup functions

Closes IDFGH-5683 and IDF-4954

See merge request espressif/esp-idf!18159
2022-07-14 06:22:25 +08:00
Ivan Grokhotkov
02f28ef32a Merge branch 'bugfix/esp_error_check_func_addr' into 'master'
esp_err: two minor issues

Closes IDFGH-7530

See merge request espressif/esp-idf!18665
2022-07-14 04:14:16 +08:00
Dmitry Bondarenko
d79b09fda2 Add SPDX license check 2022-07-13 17:51:13 +03:00
Laukik Hase
aa30b2ddbe esp_local_ctrl/scripts: Removed python2 compatibility 2022-07-13 17:58:40 +05:30
morris
d0fbe3a58e Merge branch 'docs/update_linker_script_generation' into 'master'
docs:update linker script generation

Closes DOC-3352

See merge request espressif/esp-idf!19022
2022-07-13 20:06:45 +08:00
Aditya Patwardhan
1e90632639 esp_local_ctrl/scripts: Update the script to use async methods 2022-07-13 17:30:06 +05:30
Yuan Hong Hui
5b9c2eb5fc ble_mesh:change the location of print ready 2022-07-13 17:57:06 +08:00
Jakob Hasse
bd67a410f6 Merge branch 'feature/docker_add_ruby_bsd' into 'master'
feat (cmock): add ruby and libbsd-dev to docker image

See merge request espressif/esp-idf!19016
2022-07-13 17:55:59 +08:00
muhaidong
b1ec15424c docs: remove wifi part in docs_not_updated of esp32c2 2022-07-13 17:16:59 +08:00
Mahavir Jain
20e21fb29d Merge branch 'refactor/remove_rom_deps' into 'master'
RFC: remove dependency to target-specific ROM headers

Closes IDF-1968

See merge request espressif/esp-idf!18206
2022-07-13 16:44:44 +08:00
muhaidong
8daab872c5 esp_wifi: fix sta reset beacon timeout timer issue 2022-07-13 16:35:34 +08:00
Linda
476f6d5e04 docs:update linker script generation 2022-07-13 16:35:03 +08:00
Jakob Hasse
c8f28dc57f feat (cmock): add ruby and libbsd-dev to docker image
Closes https://github.com/espressif/esp-idf/issues/9342
2022-07-13 16:02:15 +08:00
Jiang Jiang Jian
8ae9cadf9b Merge branch 'bugfix/reenable_provisioning_example_for_c2' into 'master'
Re-enable provisioning example for target esp32c2

See merge request espressif/esp-idf!18689
2022-07-13 15:51:23 +08:00
Jiang Jiang Jian
b610b47a83 Merge branch 'feature/esp32s3_memprot_additional_improvements' into 'master'
[System/Security] Memprot after-merge improvements (v5.0)

Closes IDF-5263 and IDF-5208

See merge request espressif/esp-idf!18893
2022-07-13 15:48:20 +08:00
Jiang Jiang Jian
ceb58a6c41 Merge branch 'ci/optimize_binary_size_for_ota_examples' into 'master'
ci: Optimize binary size for OTA examples

See merge request espressif/esp-idf!18914
2022-07-13 15:44:06 +08:00
morris
dae1c2847a Merge branch 'docs/en/api_reference_peripherals_pcnt' into 'master'
docs: Provide CN translation for pcnt

Closes DOC-3035

See merge request espressif/esp-idf!18591
2022-07-13 15:10:23 +08:00
Jiang Jiang Jian
9a5f9804de Merge branch 'bugfix/eapol_drop_issue' into 'master'
esp_wifi: Clear old keys before going for new connection

Closes WIFI-4542

See merge request espressif/esp-idf!18967
2022-07-13 14:07:50 +08:00
Jiang Jiang Jian
8d98fbe26a Merge branch 'bugfix/remove_unused_ble_rtc_source_sel' into 'master'
Remove can not use wake up source for esp32h2

See merge request espressif/esp-idf!18966
2022-07-13 13:50:26 +08:00
Linda
bf950f1c04 docs:provide translation for pcnt 2022-07-13 13:27:04 +08:00
Chen Wu
f65071000a lwip: Fixed that ipv6 dns cannot work 2022-07-13 11:48:04 +08:00
Mahavir Jain
510515eb7d Merge branch 'bugfix/flash_encryption_8l_psram' into 'master'
flash_encryption: Fix issue that flash encryption cannot work when 8-line psram enabled

Closes IDFGH-7702 and IDFGH-7746

See merge request espressif/esp-idf!18980
2022-07-13 11:38:12 +08:00
morris
a6f32900e7 Merge branch 'feature/import_lib_example_refactor' into 'master'
examples: import_lib: demonstrate ExternalProject_Add

See merge request espressif/esp-idf!18764
2022-07-13 11:13:31 +08:00
Jakob Hasse
33a3616635 refactor (bootloader_support, efuse)!: remove target-specific rom includes
The following two functions in bootloader_support are private now:
* esp_secure_boot_verify_sbv2_signature_block()
* esp_secure_boot_verify_rsa_signature_block()
They have been moved into private header files
inside bootloader_private/

* Removed bootloader_reset_reason.h and
  bootloader_common_get_reset_reason() completely.
  Alternative in ROM component is available.

* made esp_efuse.h independent of target-specific rom header
2022-07-13 10:29:02 +08:00
Ivan Grokhotkov
9a00475bd9 esp_common: include stdlib.h into esp_err.h for 'abort' declaration
Closes https://github.com/espressif/esp-idf/issues/9093
2022-07-12 17:01:47 +02:00
Ivan Grokhotkov
ca7c9947fc esp_system: fix address printed by ESP_ERROR_CHECK
...to point to the calling function, not to _esp_error_check_failed.
2022-07-12 17:01:47 +02:00
Ivan Grokhotkov
a334cd50ce app_trace: perform initialization using ESP_SYSTEM_INIT_FN 2022-07-12 16:58:15 +02:00
Ivan Grokhotkov
0e53b32d2e esp_hw_support: perform sleep initialization using ESP_SYSTEM_INIT_FN 2022-07-12 16:58:15 +02:00
Ivan Grokhotkov
bb771fb7c4 esp_timer: perform initialization using ESP_SYSTEM_INIT_FN
(startup.c still calls esp_timer_early_init directly)
2022-07-12 16:58:15 +02:00
Ivan Grokhotkov
42654927d5 esp_system: add a script to check the startup priorities 2022-07-12 16:58:14 +02:00
Ivan Grokhotkov
523aacd413 esp_system: allow defining priorities for startup functions
* Some components have initialization dependencies. To account for
  them, simple numeric priority values are introduced.
* esp_system_init_fn_array moved into Flash from DRAM
* System init functions defined using ESP_SYSTEM_INIT_FN now return
  an error code. This enables simpler and more consistent error
  handling in the init functions. Returning an error from an init
  function is now a valid approach — the startup code will print
  an error and abort.
2022-07-12 16:58:14 +02:00
Roland Dobai
6291d6220a Merge branch 'bugfix/confserver_out_of_subprocess_limit' into 'master'
tools: fix confserver out of limit error

Closes IDFGH-7801

See merge request espressif/esp-idf!19012
2022-07-12 21:27:21 +08:00
Ivan Grokhotkov
b0191ef292 examples: import_lib: add example test 2022-07-12 15:04:28 +02:00
Ivan Grokhotkov
94230777d9 examples: import_lib: simplify with fatfs partition generator
Instead of embedding the file and copying it to the FAT partition at
run time, generate the FAT partition with the file in it.
2022-07-12 15:04:28 +02:00
Ivan Grokhotkov
faa349b93f global: remove tinyxml2 submodule 2022-07-12 15:04:28 +02:00
Ivan Grokhotkov
b2e129fe4f examples: import_lib: demonstrate ExternalProject_Add
Many of the more complicated CMake projects can't be added to the IDF
build system simply by calling add_subdirectory.
"add_subdirectory" also cannot be used with projects which use build
systems other than CMake (for example GNU Make or cargo).
This commit changes the example to use ExternalProject_Add, instead,
which is a more general way of adding subprojects.
As part of this change, tinyxml2 is now downloaded from the Internet,
which allows removing one submodule.
2022-07-12 15:00:10 +02:00
Jiang Jiang Jian
258585f50a Merge branch 'bugfix/correct_blecmd_for_rf_path' into 'master'
Bluedroid: Fixed compilation error due to incorrect macro name

See merge request espressif/esp-idf!18983
2022-07-12 19:35:40 +08:00
Kapil Gupta
ff00a1c7a2 esp_wifi: Clear old keys before going for new connection 2022-07-12 16:37:55 +05:30
Jessy Chen
631bf1ad63 esp_phy: Support 26M and 40M crystal for esp32c2 phy 2022-07-12 05:59:26 -04:00
simon.chupin
cd10c328e5 tools: fix confserver out of limit error
Closes https://github.com/espressif/esp-idf/issues/9335
2022-07-12 11:27:03 +02:00
Roland Dobai
445e5ee685 Merge branch 'feature/oocd_ver_upgrade' into 'master'
tools: Updates OpenOCD version to 'v0.11.0-esp32-20220706'

See merge request espressif/esp-idf!18926
2022-07-12 17:15:58 +08:00
Jiang Jiang Jian
4c1f114eab Merge branch 'bugfix/ble_50_sync_periodic_adv_lost_data' into 'master'
components/bt: Fix ble sync periodic adv report will lost data

See merge request espressif/esp-idf!18957
2022-07-12 16:18:01 +08:00
Cao Sen Miao
683d92bc88 flash_encryption: Fix issue that flash encryption cannot work when 8-line psram enabled,
Closes https://github.com/espressif/esp-idf/issues/9244,
                  Closes https://github.com/espressif/esp-idf/issues/9287
2022-07-12 16:08:57 +08:00
Li Qi Gan
e58bb91c2f Merge branch 'bugfix/fix_memory_leak_in_hidh' into 'master'
Fix memory leak in bt_hidh.c

Closes IDFGH-7786

See merge request espressif/esp-idf!18968
2022-07-12 15:51:56 +08:00
Jiang Jiang Jian
1523a1bdef Merge branch 'bugfix/fix_esp32_c3_s3_adv_report_duplicate_check' into 'master'
Fix esp32c3/s3 adv report duplicate check

Closes BT-2440

See merge request espressif/esp-idf!18961
2022-07-12 14:00:33 +08:00
Omar Chebib
e5c83211a7 Merge branch 'bugfix/interrupt_stack_bss' into 'master'
System: move interrupt stack to .bss instead of .data section

Closes IDFGH-7635

See merge request espressif/esp-idf!18697
2022-07-12 13:44:07 +08:00
GengYuchao
df6d3eb602 Remove can not use wake up source for esp32h2 2022-07-12 11:23:59 +08:00
Jiang Jiang Jian
76e77b90ed Merge branch 'ci/add_nightly_run_rules_for_jobs' into 'master'
CI: add specific job rules

Closes IDF-5474

See merge request espressif/esp-idf!18950
2022-07-12 11:01:56 +08:00
Jiang Jiang Jian
c7d4e3420b Merge branch 'support/readme_esp32s3_bluedroid_examples' into 'master'
Added ESP32-S3 in README Bluedroid examples

See merge request espressif/esp-idf!18960
2022-07-12 11:01:22 +08:00
Jiang Jiang Jian
3630713e5f Merge branch 'docs/esp32c2_sys_feature_api_guides' into 'master'
docs: update system API-guides for ESP32-C2

Closes IDF-4202, IDF-4213, and IDF-4222

See merge request espressif/esp-idf!18979
2022-07-12 10:59:12 +08:00
Jiang Jiang Jian
eba22b98fd Merge branch 'bugfix/fix_beacon_timeout_timer_issue' into 'master'
esp_wifi: reset beacon timeout timer when keep alive null works or hw drop beacon

Closes IDFGH-7489

See merge request espressif/esp-idf!18963
2022-07-12 10:46:18 +08:00
Jakob Hasse
3010c41dc7 Merge branch 'bugfix/freertos_tasks_unused_var' into 'master'
bugfix (freertos): removed unused variable in tasks.c

See merge request espressif/esp-idf!18976
2022-07-12 09:56:31 +08:00
Marius Vikhammer
f463c42791 Merge branch 'bugfix/ringbuf_iram_fix' into 'master'
esp_ringbuf: placement in flash is no longer controlled by...

Closes IDFGH-7646

See merge request espressif/esp-idf!18774
2022-07-12 09:56:25 +08:00
Marius Vikhammer
d62421619c docs: update system API-guides for ESP32-C2 2022-07-12 09:32:43 +08:00
Roland Dobai
da35323081 Merge branch 'fix/espcoredump_perm' into 'master'
Tools: Make espcoredump.py executable

Closes IDFGH-7782

See merge request espressif/esp-idf!18956
2022-07-12 05:01:04 +08:00
Roland Dobai
e6a76c7e99 CI: Check file is executable if in the list of executables 2022-07-11 17:33:35 +02:00
Roland Dobai
3d1508db9d Tools: Make espcoredump.py executable
Closes https://github.com/espressif/esp-idf/issues/9319
2022-07-11 17:32:47 +02:00
Roland Dobai
c892296079 Merge branch 'refactor/change_copyright_in_ci' into 'master'
tools: Change copyright in ci directory

See merge request espressif/esp-idf!18575
2022-07-11 22:54:42 +08:00
Armando
082ee45a76 ci: remove mfix-esp32-psram-cache-issue flag test when building idf_as_lib
Previously psram driver was in esp_hw_support, which is a common
requirement(when in non-bootloader build). So when building
idf_as_lib (on esp32), the mfix-esp32-psram-cache-issue flag
will always be added (when CONFIG_SPIRAM_CACHE_WORKAROUND is on).

As psram driver is moved to esp_psram component, and esp_psram
is added via idf_component_optional_requires, which is a "weak"
dependency. You need to include esp_psram compoennt explicitly
if psram will be in use.

As idf_as_lib doesn't need psram, this test can be removed.
2022-07-11 21:44:44 +08:00
Armando
c863a79a6d idf_as_lib: remove dependency to esp_psram
Previously this dependency is introduced by mistake. As idf_as_lib
example doesn't need esp_psram, remove this dependency.
2022-07-11 21:20:59 +08:00
simon.chupin
09d15e5abc tools: Change copyright in ci dir 2022-07-11 12:58:06 +00:00
muhaidong
52f378ac7b esp_wifi: reset beacon timeout timer when keep alive null works or hw drop beacon 2022-07-11 20:54:25 +08:00
Rahul Tank
ac54468d1b Bluedroid: Fixed compilation error due to incorrect macro name 2022-07-11 16:40:51 +05:30
Roland Dobai
21204e13e8 Merge branch 'bugfix/s3_dfu_tool' into 'master'
dfu: add esp32s3 to supported DFU targets for idf.py

See merge request espressif/esp-idf!18973
2022-07-11 18:57:41 +08:00
Jakob Hasse
0adb313441 bugfix (freertos): removed unused variable in tasks.c 2022-07-11 18:18:09 +08:00
Harshit Malpani
aee57fc895 ci: Optimize binary size for OTA examples 2022-07-11 15:28:48 +05:30
Omar Chebib
bac62cfac8 System: move interrupt stack to .bss instead of .data section
The interrupt stack for Xtensa targets is now declared in C, automatically moving it to .bss section instead of .data section.

* Closes https://github.com/espressif/esp-idf/issues/9188
2022-07-11 17:49:21 +08:00
xiewenxiang
947d082b44 components/bt: Fix ble sync periodic adv report lost data issue 2022-07-11 16:51:22 +08:00
Jiang Jiang Jian
86deb8c0f5 Merge branch 'bugfix/remove_ulp_tsens' into 'master'
ulp: remove ESP32 ULP TSENS references

Closes IDF-1485

See merge request espressif/esp-idf!18883
2022-07-11 16:31:43 +08:00
Song Ruo Jing
ea97cc93ea Merge branch 'feature/c2_systimer_26mhz' into 'master'
esp32c2: 26 MHz XTAL support: Kconfig option, systimer support

Closes IDF-5412 and IDF-5413

See merge request espressif/esp-idf!18835
2022-07-11 16:17:25 +08:00
Marius Vikhammer
398df3b318 dfu: add esp32s3 to supported DFU targets for idf.py 2022-07-11 15:58:21 +08:00
Wang Meng Yang
13d141de27 Merge branch 'bugfix/fix_osi_men_dbg_xxx_not_defined_when_enable_mem_dbg' into 'master'
bugfix/fix the issue of functions not defined when enable memory debug

Closes IDFGH-9248

See merge request espressif/esp-idf!18802
2022-07-11 15:36:46 +08:00
xiongweichao
b0b6ad21f8 coex: fixed crash when calculating end transfer time 2022-07-11 15:26:53 +08:00
liqigan
ea63a42f15 fix memory leak in esp_bt_hidh_dev_report_write and esp_bt_hidh_dev_set_report in bt_hidh.c
Closes https://github.com/espressif/esp-idf/issues/9323
2022-07-11 14:30:00 +08:00
Jiang Jiang Jian
4644e2c302 Merge branch 'bugfix/fix_esp32_ke_mem_c_assert' into 'master'
Fixed esp32 BLE ke_mem.c assert

See merge request espressif/esp-idf!18916
2022-07-11 14:02:39 +08:00
Anton Maklakov
22802392bc Merge branch 'fix/spinlock-performance' into 'master'
freertos: fix inlining for xtensa port

Closes IDF-5178, IDF-5221, and IDF-5179

See merge request espressif/esp-idf!18641
2022-07-11 12:33:20 +08:00
Chen Yudong
69e15827c9 CI: add specific job rules 2022-07-11 12:32:30 +08:00
Marius Vikhammer
6cc871d793 Merge branch 'feature/ulp_riscv_adc' into 'master'
ulp-riscv: add support for using ADC as well as an example show-casing it.

Closes IDFGH-7564 and IDF-1714

See merge request espressif/esp-idf!18767
2022-07-11 12:30:31 +08:00
songruojing
996fb0cce8 G0: hal/regi2c_ctrl.h now defines all REGI2C macros to pass g0_components build test 2022-07-11 12:24:58 +08:00
wuzhenghui
a9c8065030 Kconfig: Update dependencies to avoid invalid configurations
1. Since the baud rate in the ROM cannot be changed,
   set the default baud rate of the 26Mhz version
   of esp32c2 to 74800
2. Since the systimer configuration of the 26Mhz
   version requires a non-integer systimer frequency
   configuration, and this feature is not supported
   in the current ROM, this option is disabled for
   the 26Mhz version esp32c2
2022-07-11 12:24:58 +08:00
songruojing
b3d8db3ae2 bootloader, esp_system: esp32c2 console uart to support 26MHz xtal
Gets the XTAL frequency from the RTC storage register, remove UART_CLK_FREQ_ROM macro from soc.h
2022-07-11 12:24:58 +08:00
songruojing
ef813b23fa rtc: esp32c2 support 26MHz xtal in startup code and rtc_clk.c 2022-07-11 12:24:58 +08:00
Ivan Grokhotkov
2e37218ce5 soc, hal: remove XTAL_CLK_FREQ
XTAL_CLK_FREQ now depends on the actual XTAL used, remove this macro
and get the XTAL frequency from the RTC register instead.
No uses of XTAL_CLK_FREQ found, other than in the UART LL.
2022-07-11 12:24:58 +08:00
Ivan Grokhotkov
a1d7089b59 ci: add build-only test for esp32c2 with 26 MHz XTAL option enabled 2022-07-11 12:24:58 +08:00
Ivan Grokhotkov
5b54ae76d4 esp_timer, hal: add support for non-integer systimer frequency
When ESP32-C2 is paired with a 26 MHz XTAL, the systimer tick
frequency becomes equal to 26 / 2.5 = 10.4 MHz. Previously we always
assumed that systimer tick frequency is integer (and 1 MHz * power of
two, above that!).
This commit introduces a new LL macro, SYSTIMER_LL_TICKS_PER_US_DIV.
It should be set in such a way that:

1. SYSTIMER_LL_TICKS_PER_US / SYSTIMER_LL_TICKS_PER_US_DIV equals the
   actual systimer tick frequency,
2. and SYSTIMER_LL_TICKS_PER_US is integer.

For ESP32-C2 this means that SYSTIMER_LL_TICKS_PER_US = 52 and
SYSTIMER_LL_TICKS_PER_US_DIV = 5.

This introduced two possible issues:

1. Overflow when multiplying systimer counter by 5
   - Should not be an issue, since systimer counter is 52-bit, so
     counter * 5 is no more than 55-bit.
2. The code needs to perform:
   - divide by 5: when converting from microseconds to ticks
   - divide by 52: when converting from ticks to microseconds
   The latter potentially introduces a performance issue for the
   esp_timer_get_time function.
2022-07-11 12:24:37 +08:00
satish.solanke
8e27170ba8 Added ESP32-S3 in README Bluedroid examples 2022-07-11 09:49:09 +05:30
Omar Chebib
f5c3c533bb Merge branch 'bugifx/heap_prefer_call_failed_callback' into 'master'
Heap: heap_caps_*_prefer functions now properly call alloc_failed callback

Closes IDFGH-7521

See merge request espressif/esp-idf!18427
2022-07-11 11:57:05 +08:00
Shang Zhou
422ccad211 Merge branch 'docs/update_flash_encryption_translation' into 'master'
docs: update CN translation for flash_encryption

Closes DOC-3203

See merge request espressif/esp-idf!18809
2022-07-11 11:12:41 +08:00
Jiang Jiang Jian
9873d4d138 Merge branch 'bugfix/s2_s3_stack_extmem_config' into 'master'
psram: make SPIRAM_ALLOW_STACK_EXTERNAL_MEMORY configurable on S2 and S3

See merge request espressif/esp-idf!18894
2022-07-11 10:54:59 +08:00
chenjianhua
42667adf70 fix esp32c3/s3 adv report duplicate check 2022-07-11 10:25:32 +08:00
Marius Vikhammer
e8b5096f52 ulp-riscv: add support for using ADC as well as an example show-casing it. 2022-07-11 09:31:22 +08:00
Marius Vikhammer
fd37129651 esp_ringbuf: placement in flash is no longer controlled by CONFIG_FREERTOS_PLACE_FUNCTIONS_INTO_FLASH
esp-ringbuf funtion placement is now controlled by its own configs:
CONFIG_RINGBUF_PLACE_FUNCTIONS_INTO_FLASH and CONFIG_RINGBUF_PLACE_ISR_FUNCTIONS_INTO_FLASH

Closes https://github.com/espressif/esp-idf/issues/9198
2022-07-11 09:24:20 +08:00
Jiang Jiang Jian
21a5f9713d Merge branch 'bugfix/fix_pytest_esp_timer_with_freertos_smp' into 'master'
freertos-smp: fix pytest_esp_timer test with FreeRTOS SMP enabled

Closes IDF-5373

See merge request espressif/esp-idf!18700
2022-07-10 15:52:46 +08:00
Jiang Jiang Jian
4ff1cb33ce Merge branch 'ci/only_run_deploy_cases_on_master' into 'master'
CI: Only deploy test cases on master

See merge request espressif/esp-idf!18924
2022-07-10 15:42:09 +08:00
Jiang Jiang Jian
7087449d43 Merge branch 'doc/ble_deinit' into 'master'
components/bt: Add description for de-initialize bt controller

See merge request espressif/esp-idf!17431
2022-07-10 15:37:13 +08:00
Martin Vychodil
0c87ae2a91 System/Security: Memprot API unified (ESP32S3)
Added missing features and improvements
2022-07-09 22:57:51 +02:00
Island
55d8a34add Merge branch 'fix/esp32c2_bluedroid_example_default_sdk' into 'master'
Support of bluedroid example for esp32c2 and esp32h2

See merge request espressif/esp-idf!18397
2022-07-09 06:55:26 +08:00
Roland Dobai
e72b680a44 Merge branch 'tools/mfg_fix_blank_lines_csv' into 'master'
tools: Introduce support for blank lines in config and value files for mfg utility

Closes IDFGH-6794

See merge request espressif/esp-idf!18786
2022-07-08 21:56:08 +08:00
Djordje Nedic
0331d0aa63 tools: Introduce support for blank lines in config and value files for mfg utility
Some users have requested this feature.

In order to avoid complete refactoring or introducing more code complexity, a design choice to create temporary files without blank lines is made.

Additionally, an extension check is added and there are multiple smaller code style and structure improvements.

Closes https://github.com/espressif/esp-idf/issues/8421
2022-07-08 13:22:35 +00:00
Jiang Jiang Jian
9ec829f352 Merge branch 'bugfix/wifi_sta_and_ble_disconnect_BCI-303_master' into 'master'
component_bt: Fix wifi is initialized before bluetooth initialization, bluetooth can't stay connected

Closes BCI-303

See merge request espressif/esp-idf!18643
2022-07-08 19:43:10 +08:00
Mo Fei Fei
ba7a387ab0 Merge branch 'docs/s3_devkitc1_user_guide_v1.1' into 'master'
Docs: Add ESP32-S3-devkitc-1 user guide v1.1

Closes DOC-2980

See merge request espressif/esp-idf!18354
2022-07-08 17:43:16 +08:00
Wei Tian Hua
8699a10929 Merge branch 'bugfix/redesign_hf_ag_init_deinit_api_param' into 'master'
component_bt: Change HF AG API

See merge request espressif/esp-idf!18592
2022-07-08 16:57:20 +08:00
Jiang Jiang Jian
a7bf3af687 Merge branch 'bugfix/reset_ble_hw_on_inititalization' into 'master'
component/bt: reset Bluetooth hardware during controller inititalization on ESP32-C3/ESP32-S3

Closes BT-2402

See merge request espressif/esp-idf!18831
2022-07-08 16:21:41 +08:00
Shang Zhou
9351731e17 Merge branch 'docs/translate_windowsenv_and_tools' into 'master'
docs: provide CN translation for tools and windows-env

Closes DOC-3321 and DOC-3320

See merge request espressif/esp-idf!18880
2022-07-08 16:11:46 +08:00
mofeifei
a664eb9e5a docs:update s3-devkitc-1 user guide v1.1 2022-07-08 07:57:29 +00:00
morris
35f755438b Merge branch 'contrib/github_pr_9311' into 'master'
Expand lcd/i80_controller example to support ILI9341 display (GitHub PR)

Closes IDFGH-7775

See merge request espressif/esp-idf!18937
2022-07-08 15:40:33 +08:00
Ivan Grokhotkov
f0f9890096 bootloader: set the initial XTAL frequency based on the Kconfig option 2022-07-08 15:04:26 +08:00
Ivan Grokhotkov
672e70a023 esp_hw_support: add 26 MHz XTAL option for esp32c2
Some esp32c2 boards will be produced with a 26 MHz XTAL. This commit
adds the basic Kconfig option for this type of hardware.
Support for CONFIG_ESP32C2_XTAL_FREQ_26 in other areas of IDF will be
implemented in subsequent commits.
2022-07-08 15:04:17 +08:00
Jiang Jiang Jian
7e2ee82160 Merge branch 'bugfix/fix_qos_null_update_ba_ssn' into 'master'
wifi:bugfix fix qos null update ba ssn

Closes IDFGH-6811

See merge request espressif/esp-idf!18882
2022-07-08 14:00:11 +08:00
Mahavir Jain
03c1ada871 Merge branch 'bugfix/netif_interface_reg_sequence_issue' into 'master'
esp_wifi: netif: set interface before registering Wi-Fi driver RX callback

Closes WIFI-4515 and WIFI-4472

See merge request espressif/esp-idf!18895
2022-07-08 13:23:31 +08:00
satish.solanke
6d86cde293 sdkconfig default for the esp32c2 2022-07-08 04:52:47 +00:00
Shang Zhou
7f8fae8548 docs: update CN translation for flash_encryption 2022-07-08 11:15:57 +08:00
xiewenxiang
451a1dd937 doc(bt): Add description for de-initialize bt controller 2022-07-08 10:58:32 +08:00
jincheng
3de3a8b354 fix the issue of functions not defined when enable memory debug
Closes https://github.com/espressif/esp-idf/issues/9248
2022-07-08 10:57:29 +08:00
Phillip Burgess
148ce09d97 Define EXAMPLE_LCD_H_RES & V_RES globally, not based on driver 2022-07-07 19:56:30 -07:00
Phillip Burgess
8cd0284284 Remove set_gap() calls from NT35510 and ILI9341 2022-07-07 19:53:34 -07:00
Shang Zhou
e953dc35fe docs: provide CN translation for tools and windows-env 2022-07-08 10:50:47 +08:00
Shen Jun
d09e4d673c Merge branch 'bugfix/fix_esp32c2_tx_crash_issue' into 'master'
esp_wifi: fix esp32c2 tx crash issue

Closes WIFI-4581

See merge request espressif/esp-idf!18911
2022-07-08 10:37:27 +08:00
Wang Fang
a8aead1986 Merge branch 'docs/update_ide_documentation' into 'master'
docs: deleted IDE documentation and provided links to these IDE GitHub repos

Closes DOC-3254, DOC-2982, and DOC-2961

See merge request espressif/esp-idf!18627
2022-07-08 09:35:13 +08:00
Phillip Burgess
0901277fd8 Expand lcd/i80_controller example to support ILI9341 display 2022-07-07 15:10:02 -07:00
Roland Dobai
55d95dd813 Merge branch 'fix/esptool_esp32c2_minrev_v2' into 'master'
tools: Generate images for ESP32-C2 with required minimal revision

Closes IDF-5303

See merge request espressif/esp-idf!18917
2022-07-08 05:41:57 +08:00
Alexey Gerenkov
e1ba1ec99f tools: Updates OpenOCD version to 'v0.11.0-esp32-20220706' 2022-07-07 20:17:05 +03:00
Jiang Jiang Jian
f0172d5ae0 Merge branch 'bugfix/fix_wrong_params_in_hidd' into 'master'
Fix wrong parameter of get_report_by_id_and_type in bt_hidd.c

See merge request espressif/esp-idf!18892
2022-07-08 01:10:20 +08:00
Chen Yudong
0183f526c0 CI: Only deploy test cases on master 2022-07-08 00:50:36 +08:00
zwj
9a46d06532 fix esp32 BLE ke_mem.c assert 2022-07-07 11:23:11 +00:00
Darian
ceffde5cb6 Merge branch 'bugfix/coredump_shebang' into 'master'
espcoredump: Fix espcoredump.py shebang and file mode

See merge request espressif/esp-idf!18902
2022-07-07 19:20:15 +08:00
Wang Fang
c69908e976 docs: deleted IDE documentation and provided links to these IDE GitHub repos 2022-07-07 18:14:26 +08:00
Alexey Lapshin
7e5a7921fe freertos: fix inlining for xtensa port 2022-07-07 09:04:51 +00:00
Guillaume Souchere
9b8c558e63 Merge branch 'bugfix/backtrace_formatting_add_missing_space' into 'master'
Reverts Backtrace: format to what it used to be

Closes IDFGH-7580

See merge request espressif/esp-idf!18783
2022-07-07 16:51:47 +08:00
morris
75bd6fc2d9 Merge branch 'contrib/github_pr_9302' into 'master'
ESP32S3 USB external PHY pinout (GitHub PR)

Closes IDFGH-7761

See merge request espressif/esp-idf!18909
2022-07-07 16:17:26 +08:00
Roland Dobai
9ee3661b4b tools: Generate images for ESP32-C2 with required minimal revision 2022-07-07 15:44:55 +08:00
xueyunfei
95591fdf65 wifi:bugfix fix qos null update ba ssn 2022-07-07 15:23:29 +08:00
Marius Vikhammer
f78d13398e Merge branch 'bugfix/enable_freertos_tests_c2' into 'master'
freertos: re-enable tests disabled for C2

Closes IDF-5140

See merge request espressif/esp-idf!18885
2022-07-07 14:14:46 +08:00
morris
d02b721a21 Merge branch 'docs/esp32c2_wifi_programming_guide_doc' into 'master'
doc: esp32c2 wifi programming guide doc.

Closes IDF-4216

See merge request espressif/esp-idf!18552
2022-07-07 14:13:12 +08:00
Mu Hai Dong
eb4421bf33 doc: esp32c2 wifi programming guide doc. 2022-07-07 14:13:11 +08:00
Rahul Tank
020dc7b2ec Merge branch 'bugfix/fix_extra_event_init_periodic' into 'master'
NimBLE: Removed extra event init done during periodic_sync_alloc

See merge request espressif/esp-idf!18494
2022-07-07 13:02:53 +08:00
Wang Zi Yan
390c572bb6 Merge branch 'docs/provide_404_tips' into 'master'
docs: update 404.rst

Closes DOC-2996

See merge request espressif/esp-idf!18838
2022-07-07 11:54:42 +08:00
morris
b0e228f756 soc: update copyright for usb phy pins 2022-07-07 11:50:06 +08:00
Michael (XIAO Xufeng)
a58362a429 Merge branch 'feature/efuse_rev_major_minor' into 'master'
efuse: Adds major and minor versions

See merge request espressif/esp-idf!18255
2022-07-07 11:48:54 +08:00
shenjun
988f9b3a59 esp_wifi: fix esp32c2 tx crash issue 2022-07-07 11:32:00 +08:00
Island
0d86ca59a6 Merge branch 'update/esp32h2_h2_beta2_controller_lib_to_cd9dd20' into 'master'
Update esp32h2 beta2 lib to controller master

See merge request espressif/esp-idf!18876
2022-07-06 22:13:05 +08:00
Song Ruo Jing
b662f4b74f Merge branch 'feature/support_26M_32M_xtal_bbpll_c2' into 'master'
support c2 26M/32M xtal for bbpll

Closes IDF-5485

See merge request espressif/esp-idf!18769
2022-07-06 21:17:52 +08:00
Roland Dobai
12e8f0ba8c Merge branch 'feature/auto_hints_with_ci_fix' into 'master'
idf.py: Add automated hints on how to resolve errors with fix for ci

Closes IDF-4511, IDF-4512, and IDF-4631

See merge request espressif/esp-idf!18759
2022-07-06 21:05:33 +08:00
Darian Leung
5de652bbe2 espcoredump: Fix espcoredump.py shebang and file mode
This commit adds back the shebang and executable file mode for
espcoredump.py
2022-07-06 21:03:11 +08:00
lsita
9ceff23c6d USB external PHY pinout set as in Reference Manual Figure 29-3. 2022-07-06 14:54:35 +02:00
morris
a92cce9861 Merge branch 'bugfix/calib_i2c_clk' into 'master'
I2C: Make I2C clock frequency accurate

Closes IDF-5363

See merge request espressif/esp-idf!18686
2022-07-06 20:52:31 +08:00
Anton Maklakov
a5d6a93c3c Merge branch 'bugfix/clang-tidy-for-esp32s3' into 'master'
tools: fix clang-tidy work for esp32s2 and esp32s3

Closes RDT-228 and IDFGH-7756

See merge request espressif/esp-idf!18773
2022-07-06 19:49:42 +08:00
Zim Kalinowski
5ed792a296 Merge branch 'bugfix/fix_sdio_master_slave_test_with_freertos_smp' into 'master'
freertos-smp: Fix sdio driver master slave performance test with FreeRTOS SMP

See merge request espressif/esp-idf!18865
2022-07-06 19:39:03 +08:00
morris
0b782e2883 Merge branch 'docs/translate_api_reference' into 'master'
docs: provide translation for gptimer

Closes DOC-3036

See merge request espressif/esp-idf!18625
2022-07-06 17:39:23 +08:00
Wang Zi Yan
5e768f7f2d docs: provide translation for gptimer 2022-07-06 17:39:23 +08:00
Jiang Jiang Jian
7b3ee47c67 Merge branch 'bugfix/fix_ble_ke_mem_c_assert_on_c3_s3' into 'master'
Fixed BLE ke_mem.c assert on esp32c3 and esp32s3

Closes BT-2405, BT-2406, and BCI-302

See merge request espressif/esp-idf!18863
2022-07-06 16:58:07 +08:00
wangmengyang
f86efb2bc2 fix licence copyright for header file syscon_reg.h on ESP32C3 and ESP32S3 2022-07-06 16:24:03 +08:00
wangmengyang
1d55f12c2d component/bt: reset Bluetooth hardware during controller inititalization on ESP32-C3/ESP32-S3
1. Rename MACROs SYSTEM_WIFI_RST_EN register bit fields to be more recognizable
2. reset Bluetooth baseband and clock bits to fix the issue of task watchdog triggered during controller initialization due to invalid hardware state
2022-07-06 16:23:48 +08:00
morris
627b171a3c Merge branch 'feature/enable_rpa_modem_reset_function_in_esp32h2' into 'master'
Enable rpa_moudle reset function

See merge request espressif/esp-idf!18891
2022-07-06 14:47:37 +08:00
xiongweichao
155c4a5cb3 Fix wifi is initialized before bluetooth initialization, bluetooth can't stay connected 2022-07-06 14:42:46 +08:00
Harshit Malpani
495d35949d Merge branch 'bugfix/fix_ota_example_tests' into 'master'
Fix OTA example test to fix CI failures

See merge request espressif/esp-idf!18690
2022-07-06 12:55:14 +08:00
Zim Kalinowski
ecac5d02fc Merge branch 'bugfix/fix_esp_event_test_with_freertos_smp' into 'master'
freertos-smp: Update performance threshold for esp_event performance test with FreeRTOS SMP

Closes IDF-5449

See merge request espressif/esp-idf!18848
2022-07-06 12:41:05 +08:00
Guo Jia Cheng
fb181e0482 Merge branch 'bugfix/timer-overflow' into 'master'
openthread: update library to fix timer overflow

See merge request espressif/esp-idf!18889
2022-07-06 12:21:25 +08:00
Rahul Tank
d3e7d9b090 NimBLE: Removed extra event init done during periodic_sync_alloc 2022-07-06 09:50:17 +05:30
Marius Vikhammer
457e31a715 freertos: re-enable tests disabled for C2 2022-07-06 12:15:04 +08:00
Zim Kalinowski
6062748203 Merge branch 'bugfix/fix_vfs_test_with_freertos_smp' into 'master'
freertos-smp: Update performance thresholds for VFS Open, Write, Close test with FreeRTOS SMP

Closes IDF-5448

See merge request espressif/esp-idf!18849
2022-07-06 12:14:19 +08:00
Marius Vikhammer
342f4f315c psram: make SPIRAM_ALLOW_STACK_EXTERNAL_MEMORY configurable on S2 and S3
SPIRAM_ALLOW_STACK_EXTERNAL_MEMORY was always enabled on S2 and S3, but this option is not
compatible with ESP_COREDUMP_ENABLE_TO_FLASH. Make it configurable to allow users to deactive
it so that ESP_COREDUMP_ENABLE_TO_FLASH can be used.
2022-07-06 12:11:15 +08:00
Cao Sen Miao
e218723e0e I2C: Make I2C clock frequency accurate 2022-07-06 11:58:08 +08:00
Mahavir Jain
f45dbd1f97 esp_wifi: netif: set interface before registering Wi-Fi driver RX callback
If appropriate interface is not set then RX callback can potentially dereference
null pointer from `s_wifi_netifs` table. This in-fact resulted in `LoadProhibited` exception
in HTTP server example test case.

Order here for setting interface and then registering callback was correct but
it was modified in 0e71a325de causing this regression.
2022-07-06 09:03:08 +05:30
Song Ruo Jing
2bc0f45d85 Merge branch 'feature/uart_get_free_tx_buffer_size' into 'master'
uart: Add a new API to get the free space size of tx buffer

Closes IDFGH-7348 and IDFGH-642

See merge request espressif/esp-idf!18749
2022-07-06 11:18:57 +08:00
Jing Li
9fd5e15b83 Merge branch 'docs/improve_docs_for_flash_power_down' into 'master'
docs: improve docs about flash power-down

Closes IDF-5258

See merge request espressif/esp-idf!18696
2022-07-06 11:02:54 +08:00
Jiang Jiang Jian
5134af1c6b Merge branch 'bugfix/ext_adv_param_check' into 'master'
Bluedroid: fix channel map of ext adv params check

See merge request espressif/esp-idf!18877
2022-07-06 11:02:46 +08:00
Jiang Jiang Jian
8b30b7a489 Merge branch 'contrib/github_pr_9264' into 'master'
Fix tinyusb_driver_install (dangling pointer) (GitHub PR)

Closes IDFGH-7723

See merge request espressif/esp-idf!18874
2022-07-06 10:53:38 +08:00
Omar Chebib
c017f006cd Merge branch 'contrib/github_pr_9255' into 'master'
Fix datatype conversion compiler error #9254 (GitHub PR)

Closes IDFGH-7713

See merge request espressif/esp-idf!18872
2022-07-06 10:37:30 +08:00
Marius Vikhammer
cf41c255bb Merge branch 'bugfix/cache_disabled_log_c3' into 'master'
esp_hw_support: always inline cpu_hal_set_vecbase to avoid issues at -O0

See merge request espressif/esp-idf!18630
2022-07-06 09:55:20 +08:00
Zim Kalinowski
613e53f0a1 freertos-smp: Fix sdio driver master slave performance test with FreeRTOS SMP
This commit relaxes the performance thresholds for sdio driver test when
FreeRTOS SMP is enabled.
2022-07-05 22:05:33 +02:00
Darian
ee808f55a4 Merge branch 'bugfix/freertos_smp_stack_tcb_allocation_order' into 'master'
FreeRTOS: Fix stack and TCB allocation order

See merge request espressif/esp-idf!18841
2022-07-06 03:22:52 +08:00
Jakob Hasse
5a3310ff3b Merge branch 'refactor/remove_rom_deps_cache_lldesc' into 'master'
SOC: removed target-specific ROM dependencies

See merge request espressif/esp-idf!18705
2022-07-06 02:06:30 +08:00
Zim Kalinowski
3d38de9f00 Merge branch 'bugfix/fix_spi_speed_with_freertos_smp' into 'master'
freertos-smp: Fix spi_speed test for FreeRTOS SMP

Closes IDF-5464

See merge request espressif/esp-idf!18842
2022-07-06 01:38:05 +08:00
Darian
91fb280d4c Merge branch 'bugfix/twdt_deinit_freertos_smp' into 'master'
TWDT: esp_task_wdt_deinit() should deregister idle hook callback under CONFIG_FREERTOS_SMP

Closes IDF-5461

See merge request espressif/esp-idf!18867
2022-07-06 00:45:58 +08:00
Shu Chen
87f9fbaed1 Merge branch 'feature/hide_build_from_src' into 'master'
build: move build_from_src options to env

See merge request espressif/esp-idf!18735
2022-07-05 22:54:18 +08:00
David Čermák
53b9213757 Merge branch 'bugfix/mqtt_ping_timer_restart' into 'master'
[MQTT] - Adds esp-timer as dependency and update esp_mqtt.

See merge request espressif/esp-idf!18409
2022-07-05 22:01:32 +08:00
David Čermák
8417079218 Merge branch 'component/asio_migration' into 'master'
ASIO: Remove internal component, examples, test and docs

Closes IDF-4625

See merge request espressif/esp-idf!18297
2022-07-05 21:26:48 +08:00
GengYuchao
d145c337e0 Enable rpa_moudle reset function 2022-07-05 20:50:31 +08:00
liqigan
2873cefe78 fix wrong params of get_report_by_id_and_type in bt_hidd.c 2022-07-05 20:50:11 +08:00
Sudeep Mohanty
d447c54513 freertos-smp: Update performance thresholds for VFS Open, Write, Close test with FreeRTOS SMP
This commit relaxes performance thresholds for VFS Open, Write and Close
test with FreeRTOS SMP enabled.
2022-07-05 12:13:40 +00:00
Sudeep Mohanty
1da0fe6f9b freertos-smp: Update performance threshold for esp_event performance test with FreeRTOS SMP
This commit updates the performance thresholds for esp_event performance
test with FreeRTOS SMP enabled.
2022-07-05 12:12:45 +00:00
Jiacheng Guo
d02de327b5 openthread: update library to fix timer overflow
Closes https://github.com/espressif/esp-idf/issues/9278
2022-07-05 19:28:07 +08:00
jingli
d3c6fff25a improve docs about flash power-down 2022-07-05 19:25:21 +08:00
songruojing
9d73475e44 uart: Add a new API to get the free space size of tx buffer
Closes https://github.com/espressif/esp-idf/issues/8932

Closes https://github.com/espressif/esp-idf/issues/3078
2022-07-05 18:39:22 +08:00
Jiang Jiang Jian
77a7fa77e2 Merge branch 'bugfix/wrong_configuration_of_static_txbuf' into 'master'
wifi:bugfix for wrong configuration of static txbuf

Closes IDFGH-7667

See merge request espressif/esp-idf!18852
2022-07-05 18:07:36 +08:00
cje
e16165f263 support c2 26M/32M xtal for bbpll 2022-07-05 17:45:03 +08:00
Marius Vikhammer
3d61c6d7d7 ulp: remove ESP32 ULP TSENS references
Due to poor accuracy the ESP32 ULP TSENS instructions is not recommend for use.
We keep the instruction itself to support users which are already using it,
but should remove it from examples and docs to avoid encouring any new usage of it.
2022-07-05 17:37:13 +08:00
David Čermák
e4928d2751 Merge branch 'bugfix/ci_lwip_sntp_2_servers' into 'master'
ci/lw-ip: Use 2 SNTP public servers in CI config

See merge request espressif/esp-idf!18795
2022-07-05 17:23:47 +08:00
Jiang Jiang Jian
f747ffd63a Merge branch 'bugfix/add_ttl_for_ping_socket' into 'master'
lw-ip:bugfix for add ttl for ping socket

Closes WIFI-4340

See merge request espressif/esp-idf!18376
2022-07-05 17:09:53 +08:00
Harshit Malpani
8dd59c948f Increase timeout in advanced OTA example test 2022-07-05 14:31:43 +05:30
Harshit Malpani
f9c25c65e1 Fix OTA example test to fix CI failures
Using `try finally` block to terminate thread
2022-07-05 14:31:43 +05:30
chenjianhua
3a1a5e284a Bluedroid: fix channel map of ext adv params check 2022-07-05 16:02:37 +08:00
GengYuchao
509ac4e748 Update esp32h2 beta2 lib to master 2022-07-05 15:15:41 +08:00
Fu Hanxi
14332c4835 Merge branch 'ci/add_nightly_jobs_pytest' into 'master'
ci: add support nightly jobs for pytest cases

See merge request espressif/esp-idf!18779
2022-07-05 15:09:28 +08:00
KonstantinKondrashov
0f8ff5aa15 efuse: Adds major and minor versions and others 2022-07-05 14:38:27 +08:00
Darian Leung
a0ab1c2acd freertos: Fix stack and TCB allocation order in SMP FreeRTOS
This commit fixes the allocation order of task stacks and TCBs in
order to reduce the chance of a stack overflow overwriting a TCB.
2022-07-05 14:27:44 +08:00
xueyunfei
a7ae72e1f5 wifi:bugfix for wrong configuration of static txbuf 2022-07-05 14:02:31 +08:00
Jakob Hasse
f8b5ed5d6c refactor (soc, esp_rom)!: removed target-specific ROM dependencies 2022-07-05 13:57:58 +08:00
Omar Chebib
a0ca353cda Heap: heap_caps_*_prefer functions now properly call alloc_failed callback
heap_caps_*_prefer functions will now only call heaps_caps_alloc_failed
callback if all attempts to allocation memory fail (and not after each attempt
anymore).

* Closes https://github.com/espressif/esp-idf/issues/9086
2022-07-05 05:57:04 +00:00
Omar Chebib
fca7be2ddb Merge branch 'bugfix/fix_disassembler_interpreting_padding' into 'master'
(Xtensa) Build: add .xt.prop to the compiled ELF file

See merge request espressif/esp-idf!17268
2022-07-05 13:48:42 +08:00
Darian Leung
c7fbcd754f esp_system: TWDT needs to deregister idle hook callback on esp_task_wdt_deinit()
This commit fixes a bug in esp_task_wdt_deinit() where under CONFIG_FREERTOS_SMP,
the idle hook callback is not deregistered.
2022-07-05 13:40:46 +08:00
Sudeep Mohanty
5ab7beea4a freertos-smp: Fix spi_speed test for FreeRTOS SMP
Updated performance thresholds for spi_speed test with FreeRTOS SMP is
enabled.
2022-07-05 05:11:16 +00:00
Jiang Jiang Jian
271f4e4c40 Merge branch 'bugfix/rm_deauth_when_first_auth' into 'master'
esp_wifi: remove deauth before first auth

Closes IDFGH-6544

See merge request espressif/esp-idf!18803
2022-07-05 12:58:05 +08:00
Omar Chebib
3c9856bdd1 (Xtensa) Build: add .xt.prop and .xt.lit to the compiled ELF file
Adding prop and lit sections to the ELF will let the debugger and the disassembler
have more info about data bytes present in the middle of the Xtensa
instructions, usually used for padding.
2022-07-05 04:39:29 +00:00
Aleksei Apaseev
97725036db ci: add support nightly jobs for pytest cases 2022-07-05 12:25:23 +08:00
Jiang Jiang Jian
7ed45a9cb8 Merge branch 'feature/optimzie_nimble_host_interface_implement' into 'master'
update head files for nimble

See merge request espressif/esp-idf!18864
2022-07-05 12:14:05 +08:00
xueyunfei
45ad770c37 Icmp: get tos parameter in icmp reply 2022-07-05 11:37:41 +08:00
xueyunfei
b569f4069a bugfix for add ttl for ping socket 2022-07-05 11:37:41 +08:00
zwj
f15d7d28b5 fix ble ke_mem.c assert on esp32c3 and esp32s3 2022-07-05 03:18:14 +00:00
chenjianxing
ce1ab731be esp_wifi: remove deauth before first auth
1.fix deep sleep can't reconnect to ap when pmf enable
2.fix some ap will ignore auth when rx deauth for some time
2022-07-05 02:42:08 +00:00
GengYuchao
3be5ab7268 Update nimble port init changes 2022-07-05 02:40:49 +00:00
GengYuchao
ee13e58b16 update head files for nimble
Remove some useless error printing display
2022-07-05 02:40:49 +00:00
GengYuchao
9e1466a34d move init func to nimble 2022-07-05 02:40:49 +00:00
Marius Vikhammer
cd55014c33 Merge branch 'bugfix/fix-build-problem-on-master' into 'master'
Fix for a build error on master branch created by one of preceding commits

See merge request espressif/esp-idf!18869
2022-07-05 10:39:49 +08:00
Marius Vikhammer
7242578c33 Merge branch 'ci/flash_project_args_artifact' into 'master'
ci: include flash_project_args in artifacts

See merge request espressif/esp-idf!18806
2022-07-05 09:45:59 +08:00
Zim Kalinowski
e4b692b6f6 fixing build problem 2022-07-04 22:20:26 +02:00
gabsuren
79d3655106 ASIO: Remove internal component, examples, test and docs 2022-07-04 22:15:24 +04:00
Jiang Jiang Jian
3d3447831a Merge branch 'docs/update_esp32c2_iperf_throughput' into 'master'
Docs/update esp32c2 iperf throughput

Closes IDFGH-7707

See merge request espressif/esp-idf!18732
2022-07-05 01:54:07 +08:00
Sudeep Mohanty
acf3c1dd22 freertos-smp: fix pytest_esp_timer test with FreeRTOS SMP enabled
This commit adjusts the threshold for one-shot timer callback time.
2022-07-04 15:44:50 +02:00
Jiang Jiang Jian
8ab78803d4 Merge branch 'bugfix/s3_wakeup_light_sleep_rtc_wdt_timeout' into 'master'
component_bt: Fixed rtc watchdog timeout when waking up light sleep due to some functions not in IRAM

See merge request espressif/esp-idf!18757
2022-07-04 18:21:29 +08:00
David Čermák
46fe7dbc8c Merge branch 'component/mdns_migration' into 'master'
mdns: Remove internal component, examples, test and docs

Closes IDF-4074

See merge request espressif/esp-idf!17683
2022-07-04 17:45:27 +08:00
Omar Chebib
cfeaa50b53 Merge branch 'bugfix/esp32c2_missing_eh_frame_sections' into 'master'
espsystem: add missing eh_frame sections on esp32c2

See merge request espressif/esp-idf!18629
2022-07-04 17:13:40 +08:00
morris
7863c1bc45 Merge branch 'bugfix/fix_rtc_freq_err_for_h2_beta1' into 'master'
Bugfix/fix rtc freq err for h2 beta1

See merge request espressif/esp-idf!18682
2022-07-04 16:46:17 +08:00
Martin Vychodil
29c0703d7e Merge branch 'bugfix/esp32s3_memprot_wrong_check_unicore' into 'master'
System/Security: fix missing checks for CPU-count sensitive Memprot APIs (ESP32S3)

Closes IDF-5401

See merge request espressif/esp-idf!18834
2022-07-04 16:41:45 +08:00
simon.chupin
2bf6ed4f2b idf.py: Fix IOError that costs CI failure 2022-07-04 08:15:23 +00:00
simon.chupin
43c69f0910 idf.py: Add automated hints on how to resolve errors 2022-07-04 08:15:23 +00:00
Wang Meng Yang
cb74a64768 Merge branch 'feature/support_for_wr_sugg_data_len_cmd' into 'master'
feature/added read-write sugg default datalen cmds

See merge request espressif/esp-idf!17863
2022-07-04 15:17:44 +08:00
Mahavir Jain
a269a704af Merge branch 'bugfix/main_task_on_cpu1_startup_failure' into 'master'
freertos: Fix issue with bootup failure in ESP_MAIN_TASK_AFFINITY_CPU1 config

Closes IDFGH-7705

See merge request espressif/esp-idf!18755
2022-07-04 14:54:14 +08:00
wangziyan
6549e8fefb docs: update 404.rst 2022-07-04 14:44:29 +08:00
Jiang Jiang Jian
c154d09c52 Merge branch 'bugfix/resolve_redefinition_in_spp_and_hid' into 'master'
resolve redefinition in btc_spp.h and btc_hd.h/btc_hh.h

Closes IDFGH-7647

See merge request espressif/esp-idf!18617
2022-07-04 14:12:35 +08:00
Marius Vikhammer
4720607229 Merge branch 'bugfix/c2_mac_address' into 'master'
mac addr: fix wrong offset being used for C2 BT mac address

Closes IDF-5046

See merge request espressif/esp-idf!18717
2022-07-04 14:04:13 +08:00
Shubham Kulkarni
c13efdbc44 Merge branch 'bugfix/mark_ota_test_as_xfail' into 'master'
Mark OTA tests as xfail

See merge request espressif/esp-idf!18797
2022-07-04 12:26:42 +08:00
Omar Chebib
7e42038c86 Merge branch 'refactor/move_regi2c_headers' into 'master'
Refactor: move regi2c_*.h header files from esp_hw_support to soc component

See merge request espressif/esp-idf!18676
2022-07-04 11:32:30 +08:00
Mahavir Jain
cd1555ec03 Merge branch 'esp32c2_check_ocd_mode' into 'master'
esp32c2: check ocd mode before configure memprot

See merge request espressif/esp-idf!18655
2022-07-04 11:22:25 +08:00
Marius Vikhammer
d6c0227d84 CI: port startup test app to pytest and enable for all targets 2022-07-04 10:57:35 +08:00
Onkar
731a8d357f feature/added read-write sugg default datalen cmds 2022-07-03 13:50:12 +05:30
Martin Vychodil
ee9aa9a302 System/Security: fix missing checks for CPU-count sensitive Memprot APIs (ESP32S3)
Some of the Memory Protection (internal) API functions dealing with per-CPU operations were missing appropriate handling of the CPU count actually configured by CONFIG_FREERTOS_UNICORE. The flaw was fixed across all the places found in the code as the issue was of general type
2022-07-02 20:12:56 +00:00
Martin Vychodil
e429b67bb4 Merge branch 'ci/fixed_wrongly_imported_module_issue' into 'master'
ci: rename module name due to the wrong import in other module

See merge request espressif/esp-idf!18832
2022-07-03 01:35:47 +08:00
Shu Chen
28602c5056 Merge branch 'feature/update_zigbee_light_example' into 'master'
Zigbee: Merging light_coordinator and light switch into one

See merge request espressif/esp-idf!17937
2022-07-02 11:30:07 +08:00
Aleksei Apaseev
979b836c68 ci: rename module name due to the wrong import in other packages 2022-07-02 08:03:49 +08:00
Wang Meng Yang
73cfc078a0 Merge branch 'bugfix/restore_edr_en_and_protect_for_vhci_env' into 'master'
bugfix/restore edr_en and add protect for vhci_env

Closes IDFGH-6254, IDFGH-6766, IDFGH-7605, and AUD-3629

See merge request espressif/esp-idf!18388
2022-07-01 19:31:01 +08:00
Jakob Hasse
daacc19149 Merge branch 'bugfix/fatfs_spiffs_vfs_dep' into 'master'
fatfs, spiffs: add missing dependency on vfs

See merge request espressif/esp-idf!18613
2022-07-01 18:13:51 +08:00
Marek Fiala
e519915823 Merge branch 'feature/disable_option_install_script' into 'master'
Tools: --disable-* argument for removing features

Closes IDF-4398 and IDF-4342

See merge request espressif/esp-idf!18194
2022-07-01 17:18:50 +08:00
Marius Vikhammer
31b5a3fcab ci: include flash_project_args in artifacts 2022-07-01 17:01:36 +08:00
Armando (Dou Yiwen)
4cc0492901 Merge branch 'bugfix/reserve_dma_ram_in_segments' into 'master'
psram: reserve dma pool in the step of heap max block

Closes IDF-4936

See merge request espressif/esp-idf!18740
2022-07-01 15:48:23 +08:00
Adam Múdry
0e98905e51 Merge branch 'feature/usb_midi_example' into 'master'
usb: Added MIDI example + fixed TinyUSB MIDI config

Closes IDFGH-6921

See merge request espressif/esp-idf!17753
2022-07-01 15:03:42 +08:00
Simon
f4eea001c8 Merge branch 'refactor_flash/remove_legacy_driver' into 'master'
spi_flash: Totally remove legacy driver (prefix with `spi_flash`) support on V5.0

Closes IDF-4473

See merge request espressif/esp-idf!18026
2022-07-01 14:45:39 +08:00
Li Qi Gan
22c76baaec Merge branch 'bugfix/fix_sink_wrong_sniff_params' into 'master'
Fix A2DP Sink Wrong Sniff Parameters which Caused by HID Porting

See merge request espressif/esp-idf!18730
2022-07-01 14:35:44 +08:00
Roland Dobai
6db4361565 Merge branch 'feat/lift_restriction_on_pygdbmi' into 'master'
ci: lift restriction on pygdbmi in panic test

See merge request espressif/esp-idf!18692
2022-07-01 14:25:44 +08:00
Harshit Malpani
573dd0187d Mark OTA tests as xfail 2022-07-01 11:45:50 +05:30
Darian
c9e7a799ee Merge branch 'bugfix/freertos_event_group_unblock_race_condition' into 'master'
FreeRTOS: Fix event group task list race condition

See merge request espressif/esp-idf!18727
2022-07-01 14:14:45 +08:00
Mahavir Jain
cd1afaef1b test_apps: Add test app for ESP_MAIN_TASK_AFFINITY_CPU1 configuration 2022-07-01 05:40:46 +00:00
Mahavir Jain
311822da25 freertos: Fix issue with bootup failure in ESP_MAIN_TASK_AFFINITY_CPU1 config
Idle tick hook that indicates completion of scheduler init must be launched
on other core than the one where main task runs. Earlier it was assumed that
main task shall always run on PRO cpu but that behavior can be changed with
ESP_MAIN_TASK_AFFINITY_CPU1 and hence this fix.

Closes https://github.com/espressif/esp-idf/issues/9247
Closes IDFGH-7705
2022-07-01 05:40:46 +00:00
David Cermak
d06d7deacd ci/lwip: Use 2 SNTP public servers in CI config 2022-07-01 05:23:53 +00:00
Darian
100ee84b0f Merge branch 'bugfix/freertos_smp_startup_race_cond' into 'master'
freertos: Add SMP FreeRTOS startup race condition workaround

Closes IDF-5284 and IDF-5288

See merge request espressif/esp-idf!18683
2022-07-01 12:14:24 +08:00
Island
c6fc5038eb Merge branch 'bugfix/no_proxy_beacon_send_after_deinit' into 'master'
ble_mesh: stack: Bugfix for proxy beacon send after reinit mesh

See merge request espressif/esp-idf!18079
2022-07-01 11:35:21 +08:00
Anton Maklakov
0bbfff4382 docs(idf.py): clarify clang-tidy setup 2022-07-01 10:32:49 +07:00
Wang Meng Yang
a7adfd2ee6 Merge branch 'bugfix/lower_a2dp_appT_prio' into 'master'
bugfix/lower the priority of application task of a2dp demo

Closes IDFGH-7639

See merge request espressif/esp-idf!18612
2022-07-01 11:14:25 +08:00
Cao Sen Miao
a690a87829 spi_flash: Remove legacy spi_flash drivers 2022-07-01 11:01:34 +08:00
Cao Sen Miao
d9b4b82edc spi_flash: Modify documentations 2022-07-01 10:59:34 +08:00
Cao Sen Miao
64147c3794 CXX: Make spi_flash related part works 2022-07-01 10:59:34 +08:00
Cao Sen Miao
435bbb444c spi_flash: move cache stuff to private 2022-07-01 10:59:34 +08:00
Jiang Jiang Jian
6264fe3f60 Merge branch 'bugfix/close_sniffer_mode_when_wifi_stop' into 'master'
wifi:bugfix for close sniffer mode when wifi stop

Closes WIFI-4536

See merge request espressif/esp-idf!18744
2022-07-01 10:42:09 +08:00
Darian
2a3347c310 Merge branch 'bugfix/increase_openthread_ot_br_app_partition_size' into 'master'
openthread: Increase size of app parititon in ot_br example

See merge request espressif/esp-idf!18781
2022-06-30 23:32:25 +08:00
Darian Leung
0cf1fd3a5a freertos: Add multi-core OS startup race condition workaround
FreeRTOS uses a single "xSchedulerRunning" variable to tack whether the
scheduler has started, and this variable is set to "pdTRUE" by core 0
via calling vTaskStartScheduler().

However, with SMP FreeRTOS, there is a race condition where core 0 has
already started the scheduler and another core has not called xPortStartScheduler()
yet and calls some FreeRTOS API. Thus the resultant FreeRTOS API can
cause errors as it thinks the scheduler has started.

This commit adds a temporary workaround (by having each core maintain their
own "xSchedulerRunning" variable.
2022-06-30 20:24:53 +08:00
Darian Leung
16e739a09e freertos: Fix flakey event group unit test
The "FreeRTOS Event Groups" main task will only wait a single tick for the created
tasks to set their response bits. This short delay may not be sufficent if the tick
frequency is high.

This commit updates the test so that

- the main task waits indefinitely for all the response bits to be set.
- created tasks are cleand up by the main task
2022-06-30 20:19:39 +08:00
Darian Leung
1625a3aae2 freertos: Fix event group task list race condition
FreeRTOS synchronization primitives (e.g., queues, eventgroups) use various event lists (i.e., task lists) to track what
tasks are blocked on a current primitive. Usually these event lists are accessed via one of the event lists functions
(such as vTask[PlaceOn|RemoveFrom]UnorderedEventList()), which in turn ensure that the global task list spinlock
(xTaskQueueMutex) is taken when accessing these lists.

However, some functions in event_groups.c manually traverse their event lists. Thus if a tick interrupt occurs on
another core during traversal and that tick interrupt unblocks a task on the event list being traversed, the event list
will be corrupted.

This commit modifies the following event_groups.c functions so that they take the global task list lock before
traversing their event list.

- xEventGroupSetBits()
- vEventGroupDelete()
2022-06-30 20:12:26 +08:00
Mahavir Jain
3df4c01d62 Merge branch 'ci/remove_redundant_jobs' into 'master'
ci: remove redundant OTA examples jobs

See merge request espressif/esp-idf!18721
2022-06-30 19:27:30 +08:00
Darian Leung
5e29b1c90d openthread: Increase size of app parititon in ot_br example 2022-06-30 18:54:20 +08:00
Marek Fiala
90a69c4490 Tools: --disable-* argument for removing features
Optional argument --disable-* for removing features in install scripts.
2022-06-30 12:31:59 +02:00
Armando
f0e93ed0f8 psram: reserve dma pool in the step of heap max block
As heap block may be allocated into multiple non-contiguous chunks, to
reserve enough memory for dma/internal usage, we do the malloc in the
step of max available block.

On ESP32 we use this way, this commit follows this way, on ESP32S2 and
ESP32S3
2022-06-30 10:18:20 +00:00
Omar Chebib
cd48baf979 Refactor: move regi2c_*.h header files from esp_hw_support to soc component
When creating G0 layer, some regi2c_*.h headers were moved out from
esp_hw_support (G1) to soc (G0). In order to be consistent with that change,
move all the remaining regi2c_*.h headers to soc too.
2022-06-30 09:40:44 +00:00
Zhang Xiao Yan
be4d13d888 Merge branch 'docs/add_chiptype_link_gpio' into 'master'
docs: Add chip target and link to gpio.h

Closes DOC-3169

See merge request espressif/esp-idf!18623
2022-06-30 17:12:04 +08:00
GengYuchao
10fd1daa10 Add ETM clk gate defines for h2 2022-06-30 17:02:00 +08:00
GengYuchao
95c8d775d0 Update lib for h2 beta2 2022-06-30 17:02:00 +08:00
GengYuchao
b474c83840 Add support for esp32h2 beta2 2022-06-30 17:02:00 +08:00
GengYuchao
e1d07c0cf2 Support H2 periodic advertiser list option on h2 2022-06-30 17:02:00 +08:00
GengYuchao
07a470bccc Update ble lib for h2 beta1 2022-06-30 17:02:00 +08:00
GengYuchao
29a2c83173 Fix default option value 2022-06-30 17:02:00 +08:00
Jiang Jiang Jian
af83290002 Merge branch 'bugfix/fix_some_c2_ble_bugs' into 'master'
Fixed ESP32C2 BLE  bugs

See merge request espressif/esp-idf!18693
2022-06-30 16:39:50 +08:00
xueyunfei
46a68f4d41 wifi:bugfix for close sniffer mode when wifi stop 2022-06-30 15:47:50 +08:00
wangjialiang
45adb0ef24 ble_mesh: stack: Bugfix for proxy beacon send after reinit mesh 2022-06-30 07:41:23 +00:00
Mu Hai Dong
cfa3b03d8e Merge branch 'bugfix/fix_blufi_example_softap_current_connection_equal_zero_issue' into 'master'
bluetooth:fix two blufi example bugs

Closes IDFGH-6621

See merge request espressif/esp-idf!18298
2022-06-30 15:34:11 +08:00
Anton Maklakov
55dda77b98 build: add support ESP32-S3 in Clang build configuration 2022-06-30 14:03:26 +07:00
Anton Maklakov
6b0c756ebf tools: update tools.json for Clang 14
Closes https://github.com/espressif/clang-tidy-runner/issues/15
2022-06-30 14:02:54 +07:00
muhaidong
5dc221b0fc bluetooth: fix two blufi example bugs
1. Softap mode do not assign ip
2. SotAp current connection always show 0
2022-06-30 14:26:23 +08:00
Aleksei Apaseev
01f1aba2d0 ci: lift restriction on pygdbmi in panic test 2022-06-30 14:09:18 +08:00
morris
9d87d6ad50 Merge branch 'feature/check_public_header_targets' into 'master'
ci: check_public_headers: run the check for all targets

Closes IDF-3698

See merge request espressif/esp-idf!18765
2022-06-30 13:55:19 +08:00
David Čermák
5fcb860a10 Merge branch 'bugfix/lwip_gcc11_warnings' into 'master'
lw ip: suppress some GCC 11 warnings

See merge request espressif/esp-idf!18479
2022-06-30 13:48:47 +08:00
Jiang Jiang Jian
927f9e369a Merge branch 'bugfix/fix_stale_pmf_config' into 'master'
Fix stale PMF config in NVS issue

See merge request espressif/esp-idf!18469
2022-06-30 12:32:10 +08:00
Chen Yudong
7031d00aed CI: update submodule patterns 2022-06-30 12:15:31 +08:00
Mu Hai Dong
b0b44221ed Merge branch 'bugfix/fix_deinit_init_connect_fail_issue' into 'master'
esp_wifi: clear phy calibrated flag when phy pd memory deinit

Closes WIFI-4467, WIFI-4555, and WIFI-4543

See merge request espressif/esp-idf!18716
2022-06-30 12:13:36 +08:00
Omar Chebib
3c1b8cd75a ci: add a test for .eh_frame(_hdr) section for RISC-V targets 2022-06-30 02:51:37 +00:00
Omar Chebib
fa9856c815 espsystem: add missing eh_frame sections on esp32c2 2022-06-30 02:51:37 +00:00
Ivan Grokhotkov
4c3dec9705 ci: check_public_headers: run for all targets 2022-06-29 22:49:51 +02:00
Ivan Grokhotkov
fefbf6a5b3 ci: check_public_headers: exclude sections generated on RISC-V target 2022-06-29 22:48:16 +02:00
Ivan Grokhotkov
28ac778099 ci: check_public_headers: run the build in a temporary directory
this allows running multiple builds for different targets
2022-06-29 22:47:02 +02:00
Zim Kalinowski
2f81b96e45 Merge branch 'bugfix/fix_example_nvs_rw_value_with_freertos_smp' into 'master'
freertos-smp: fix nvs_rw_value and nvs_rw_value_cxx tests

Closes IDF-5275

See merge request espressif/esp-idf!18640
2022-06-30 04:11:39 +08:00
lsita
db90b512a1 Fix tinyusb_driver_install (dangling pointer) 2022-06-29 17:40:19 +02:00
Sudeep Mohanty
3cd2b67f84 Revert "hal: Fix incorrect spi_hal log usage"
This reverts commit a65165dd52.
2022-06-29 14:52:28 +00:00
Sudeep Mohanty
1d482a32df Revert "freertos-smp: fix nvs_rw_value and nvs_rw_value_cxx tests"
This reverts commit 0d9b130cb6f7e4c88d526be3c86941108329f442.
2022-06-29 14:52:28 +00:00
Sudeep Mohanty
6da5f113e9 freertos-smp: fix nvs_rw_value and nvs_rw_value_cxx tests
TBD
2022-06-29 14:52:28 +00:00
Zim Kalinowski
0660e4f2f9 Merge branch 'feature/force-non-smp-build-tests' into 'master'
freertos: Don't use FreeRTOS SMP build for partition nearly full warning test

See merge request espressif/esp-idf!18737
2022-06-29 22:52:25 +08:00
Adam Múdry
2dfaec3106 usb: Added MIDI example + fixed TinyUSB MIDI config
Closes https://github.com/espressif/esp-idf/issues/8541
2022-06-29 14:02:00 +00:00
Mu Hai Dong
8078092fae Merge branch 'docs/update_wifi_beacon_timeout_doc' into 'master'
docs: update wifi beacon timeout docs

Closes WIFI-4427 and IDFGH-7496

See merge request espressif/esp-idf!18379
2022-06-29 21:54:29 +08:00
daiziyan
f9f43b1860 docs: updated mdns
(cherry picked from commit 6737095bfb205867e096da8cf6cdf1f144800ee7)
2022-06-29 21:46:12 +08:00
gabsuren
d413a71f61 mdns: Remove internal component, examples, test and docs 2022-06-29 17:30:34 +04:00
d0c10eb83a Fix datatype conversion compiler error #9254 2022-06-29 14:39:36 +02:00
Shu Chen
85c668b7c7 build: move build_from_src options to env 2022-06-29 20:26:50 +08:00
Zim Kalinowski
70ee0885ad freertos: don't use FreeRTOS SMP build for partition nearly full warning test 2022-06-29 12:03:01 +00:00
xiongweichao
9531fae1d3 Fixed rtc watchdog timeout when waking up light sleep due to some functions not in IRAM 2022-06-29 19:56:47 +08:00
Euripedes Rocha
33fccf6405 [MQTT] - Adds esp-timer as dependency and change version.
- Current time is now from esp_timer.
2022-06-29 11:50:32 +00:00
Anton Maklakov
d2ce9abb2a lwip: suppress some GCC 11 warnings
Closes https://github.com/espressif/esp-idf/issues/9142
2022-06-29 11:42:09 +00:00
Harshit Malpani
e526e5593a ci: remove redundant OTA examples jobs 2022-06-29 16:30:02 +05:30
Roland Dobai
87c987920a Merge branch 'revert-2e817c44' into 'master'
Revert "Merge branch 'feature/clippy' into 'master'"

See merge request espressif/esp-idf!18741
2022-06-29 18:37:48 +08:00
Roland Dobai
8dddb8b596 Revert "Merge branch 'feature/clippy' into 'master'"
This reverts merge request !16998
2022-06-29 16:46:47 +08:00
Mahavir Jain
9ee26516a7 Merge branch 'fix/update_docs_for_hmac_api' into 'master'
esp_hmac: Fix documentation for API and Programming Guide

See merge request espressif/esp-idf!18703
2022-06-29 16:06:33 +08:00
Roland Dobai
2e817c4426 Merge branch 'feature/clippy' into 'master'
idf.py: Add automated hints on how to resolve errors

Closes IDF-4511, IDF-4512, and IDF-4631

See merge request espressif/esp-idf!16998
2022-06-29 15:44:55 +08:00
Harshit Malpani
575ce36520 Re-enable provisioning example for target esp32c2 2022-06-29 12:31:08 +05:30
wang tao
2dbf8c9668 change esp32c2 iperf sdkconfig_defaults 2022-06-29 14:55:22 +08:00
wang tao
2e036ea173 add esp32c2 iperf throughput 2022-06-29 14:55:22 +08:00
Aditya Patwardhan
006e53b06a Merge branch 'bugfix/fix_ota_anti_rollback_example_test' into 'master'
ci: fix ota anti rollback example test

See merge request espressif/esp-idf!18709
2022-06-29 14:04:28 +08:00
Mahavir Jain
b41a524d3a Merge branch 'fix/protocol_example_tests' into 'master'
Fix/protocol example tests

See merge request espressif/esp-idf!18698
2022-06-29 13:29:34 +08:00
Jiang Jiang Jian
04830a3284 Merge branch 'bugfix/a2dp_source_not_stop_discovery_correctly' into 'master'
bugfix/avoid wrongly restart discovery in a2dp_source

See merge request espressif/esp-idf!18536
2022-06-29 11:24:00 +08:00
Armando (Dou Yiwen)
e13d7f8351 Merge branch 'bugfix/s2_ap64_psram_crash_issue' into 'master'
psram: fix esp32s2 module with APS6404 PSRAM crash issue

Closes IDF-5361

See merge request espressif/esp-idf!18699
2022-06-29 11:19:17 +08:00
morris
85ab06440b Merge branch 'bugfix/remove_dc_as_cmd_phase' into 'master'
spi_lcd: don't support dc_as_cmd_phase

Closes IDFGH-7026

See merge request espressif/esp-idf!18694
2022-06-29 10:50:36 +08:00
liqigan
3e3a0cdfdb fix sink wrong sniff params which caused by HID porting 2022-06-29 10:11:56 +08:00
Ondrej Kosta
ed7afd8b73 Merge branch 'feature/eth_phy_common' into 'master'
ESP PHY structure refactor

Closes IDF-5149

See merge request espressif/esp-idf!18158
2022-06-28 23:25:12 +08:00
David Čermák
8678f9a9f4 Merge branch 'bugfix/esp_eth_test_hotfix' into 'master'
esp_eth: pytest_esp_eth CI timeout hotfix

See merge request espressif/esp-idf!18666
2022-06-28 23:11:26 +08:00
Aditya Patwardhan
c6fe3ba7c6 esp_hmac: Fix documentation for API and Programming Guide 2022-06-28 12:47:28 +00:00
Aditya Patwardhan
28af19f6f4 Merge branch 'fix/fix_protocomm_documentation' into 'master'
protocomm.rst: Fix documentation regarding Security Version 0

See merge request espressif/esp-idf!18722
2022-06-28 20:43:00 +08:00
Kevin (Lao Kaiyao)
47266d7736 Merge branch 'refactor/add_description_to_touch_pad_set_meas_time' into 'master'
touch_sensor: add description to distinguish the API on different target

Closes IDFGH-7499

See merge request espressif/esp-idf!18341
2022-06-28 20:00:02 +08:00
Aditya Patwardhan
d736cd560a protocomm.rst: Fix documentation regarding Security Version 0 2022-06-28 15:13:52 +05:30
morris
489d14cf55 spi_lcd: don't support dc_as_cmd_phase
The current SPI hardware can't support 9bit SPI data format very well
(i.e. inserting an extra bit before each data byte)

Closes https://github.com/espressif/esp-idf/pull/8644
2022-06-28 17:11:31 +08:00
morris
602e154c12 Merge branch 'refactor/move_gdma_to_hw_support' into 'master'
dma: move from driver to hw_support

See merge request espressif/esp-idf!18706
2022-06-28 15:57:56 +08:00
Armando (Dou Yiwen)
4dbd2c7e30 Merge branch 'refactor/move_spi_necessary_private_headers' into 'master'
spi: move spi_common_internal to esp_private

See merge request espressif/esp-idf!18146
2022-06-28 15:51:22 +08:00
Marius Vikhammer
4ffb15916e mac addr: fix wrong offset being used for C2 BT mac address 2022-06-28 15:30:24 +08:00
muhaidong
3ed30a515f esp_wifi: clear phy calibrated flag when phy pd memory deinit 2022-06-28 15:03:11 +08:00
Marius Vikhammer
5b6fbe6a5c Merge branch 'bugfix/ulp_fsm_cocpu_trap' into 'master'
ulp: only enable relevant wakeup sources for ULP

Closes IDFCI-1323

See merge request espressif/esp-idf!18616
2022-06-28 14:24:23 +08:00
Armando
63d4b52e21 psram: correct psram size log 2022-06-28 14:17:44 +08:00
Armando
c51c1a8651 mmu: fix wrong mmu entry id issue 2022-06-28 14:17:44 +08:00
Armando
31b3f31ef4 ext_mem: make memory region check strict 2022-06-28 14:17:44 +08:00
morris
7fd9a91034 dma: move from driver to hw_support 2022-06-28 14:17:12 +08:00
morris
dede9da16e led_strip: move api functions to single file 2022-06-28 14:17:12 +08:00
Harshit Malpani
ad1567e132 ci: fix ota anti rollback example test 2022-06-28 11:37:15 +05:30
Marius Vikhammer
a8e9c6b8b2 esp_hw_support: always inline cpu_hal_set_vecbase 2022-06-28 05:53:27 +00:00
Mahavir Jain
827837dce3 Merge branch 'fix/tls-size-esp32c2_esp32c3_esp32h2' into 'master'
esp_system: Fix esp32c2/esp32c3/esp32h2 TLS size

Closes IDFCI-1312, IDFGH-7652, and IDF-1944

See merge request espressif/esp-idf!18554
2022-06-28 13:52:28 +08:00
Mahavir Jain
34e9f54a48 Merge branch 'bugfix/rsa_gen_key_test_c2' into 'master'
RSA: only run generate key test if we have MPI HW support

Closes IDFCI-1326

See merge request espressif/esp-idf!18704
2022-06-28 12:57:10 +08:00
morris
eebcce87b9 Merge branch 'feature/esp_lcd_bounce_buffers' into 'master'
Add bounce buffer support to esp_lcd

See merge request espressif/esp-idf!17894
2022-06-28 11:56:22 +08:00
Jeroen Domburg
5f8666afb8 Add bounce buffer support to esp_lcd 2022-06-28 11:56:22 +08:00
Aditya Patwardhan
4a54c8b9bf flash_encryption_example: Increase timeout 2022-06-28 03:48:03 +00:00
Aditya Patwardhan
a191ca21d9 esp_local_ctrl: Increase timeout of first read to minimize test failures 2022-06-28 03:48:03 +00:00
Aditya Patwardhan
637bb4be38 http_request_simple_example_test: Catch broken pipe exception 2022-06-28 03:48:03 +00:00
laokaiyao
d5e55e0563 touch_sensor: add description to distinguish the API on different target
Closes https://github.com/espressif/esp-idf/issues/9067
2022-06-28 02:20:43 +00:00
Marius Vikhammer
61691e332f RSA: only run generate key test if we have MPI HW support
Test would take too long and time out on C2.
2022-06-28 09:39:43 +08:00
Martin Vychodil
0b0befc2a6 Merge branch 'fix/fatfs_ssize_undefined' into 'master'
fatfs: Fix undefined ssize member of FATFS struct

Closes IDFGH-7483

See merge request espressif/esp-idf!18667
2022-06-28 07:49:45 +08:00
Aditya Patwardhan
d5fafe14c2 Merge branch 'bugfix/secure_boot_v2_bootloader_reflash_note' into 'master'
docs: secure-boot-v2: remove incorrect note about bootloader re-flash

See merge request espressif/esp-idf!18695
2022-06-27 18:23:14 +08:00
Martin Vychodil
cd7355007d Merge branch 'bugfix/app_trace_iram' into 'master'
apptrace: move all apptrace related functions to IRAM

Closes IDFGH-7571 and IDFGH-7664

See merge request espressif/esp-idf!18646
2022-06-27 17:46:30 +08:00
Ondrej Kosta
08f421a091 esp_eth: pytest_esp_eth CI timeout hotfix 2022-06-27 11:21:31 +02:00
Ondrej Kosta
6962218a4b Copyright check config: made more specific to not overwrite allowed licenses 2022-06-27 11:20:08 +02:00
Adam Múdry
0fac7d1c02 fatfs: Fix undefined ssize member of FATFS struct 2022-06-27 08:57:58 +00:00
Mahavir Jain
26514959dd docs: secure-boot-v2: remove incorrect note about bootloader re-flash
In secure-boot-v2 scheme, one can always regenerate signature using
secure boot signing key and re-flash either bootloader or application.
2022-06-27 14:24:42 +05:30
zwj
ed593ba168 update ble lib (444e4a2b)
- fix rpa entry err if addr resol is disabled
- fix aux connect crash
2022-06-27 14:50:26 +08:00
zwj
004918adbe fix BLE sleep can not be enabled 2022-06-27 14:21:11 +08:00
Nachiket Kukade
2efe4b791d esp_wifi: Update wifi lib
Fix issue where set_config API uses stale NVS config if PMF disable
API was used before
2022-06-27 11:37:59 +05:30
Alexey Lapshin
69b317368e esp_system: Fix esp32c2/esp32c3/esp32h2 TLS size
The change fixes thread-local-storage size by removing .srodata section
from it. It initially was included in TLS section by mistake.
The issue was found when stack size increased after building applications
with GCC-11.1 compiler. Stack size became bigger because some new data
appeared in .srodata. See more details here:
adce62f53d
2022-06-27 03:29:08 +00:00
morris
b0fa5c7c2d Merge branch 'contrib/github_pr_9213' into 'master'
Fix out of range in mcpwm example (GitHub PR)

Closes IDFGH-7666

See merge request espressif/esp-idf!18678
2022-06-27 11:02:54 +08:00
Roland Dobai
7b19ead826 Merge branch 'feature/fish_idf_default_path' into 'master'
Tools: Add default IDF_PATH detection to export.fish

Closes IDFGH-5028

See merge request espressif/esp-idf!18635
2022-06-26 23:36:51 +08:00
Mahavir Jain
3d0829af1e Merge branch 'feature/app_utils_codeownership_updates' into 'master'
codeowners: add some subgroups for app-utils area

See merge request espressif/esp-idf!18677
2022-06-25 11:20:45 +08:00
Shu Chen
a9cccfe317 Merge branch 'bugfix/otbr-example-config' into 'master'
openthread: update OpenThread submodule

See merge request espressif/esp-idf!18560
2022-06-25 10:31:18 +08:00
Armando
f31d88e3fe spi: move spi_common_internal to esp_private 2022-06-24 19:12:13 +08:00
Mahavir Jain
c619e2162d Merge branch 'feature/memprot_settings_to_soc_caps' into 'master'
esp_system: move MEMPROT related configuration to soc capability header

Closes IDF-4506

See merge request espressif/esp-idf!18645
2022-06-24 18:08:19 +08:00
Mahavir Jain
2e54d00cb8 codeowners: add some subgroups for app-utils area 2022-06-24 15:26:29 +05:30
Linda
ca7138e653 docs:add chiptype and link to gpio.h 2022-06-24 17:13:15 +08:00
Erhan Kurubas
480e2ab149 esp32c2: check ocd mode before configure memprot 2022-06-24 09:13:02 +03:00
Ondrej Kosta
dfa33dc853 Ethernet basic example: removed sdkconfig_GW_issue which was configured by a mistake 2022-06-24 05:51:44 +00:00
Ondrej Kosta
43f3904304 esp_eth: IEEE 802.3 PHY MII Management Interface functionality grouped to one common file 2022-06-24 05:51:44 +00:00
Darian
26ca7cbaed Merge branch 'feature/update_smp_freertos_porting_notes' into 'master'
freertos: Update SMP FreeRTOS porting notes

See merge request espressif/esp-idf!18632
2022-06-24 13:33:44 +08:00
Marius Vikhammer
059a0713d7 Merge branch 'bugfix/reenable_c2_system_tests' into 'master'
system: enable misc system examples and unit tests for C2

Closes IDF-5054, IDF-5048, IDF-5142, and IDF-5051

See merge request espressif/esp-idf!18533
2022-06-24 12:12:11 +08:00
Marius Vikhammer
be6a4afd96 Merge branch 'revert-6d762ec8' into 'master'
Revert "Merge branch 'fix/esptool_esp32c2_minrev' into 'master'"

See merge request espressif/esp-idf!18670
2022-06-24 12:08:44 +08:00
Mahavir Jain
3f77c65e56 Merge branch 'contrib/github_pr_9117' into 'master'
esp_prov: switch from bluez/dbus to bleak (GitHub PR)

Closes IDFGH-7556

See merge request espressif/esp-idf!18618
2022-06-24 11:39:09 +08:00
Marius Vikhammer
50cfd7de22 Revert "Merge branch 'fix/esptool_esp32c2_minrev' into 'master'"
This reverts merge request !18633
2022-06-24 11:37:23 +08:00
Mahavir Jain
49edc52732 Merge branch 'feature/add_security_policy' into 'master'
Add security policy guidelines

See merge request espressif/esp-idf!18653
2022-06-24 11:11:38 +08:00
Mahavir Jain
ca61d6e2af Add security policy guidelines
Add basic information about process for reporting security vulnerabilities in Espressif solutions.

This filename is recognized by GitHub:
https://docs.github.com/en/code-security/getting-started/adding-a-security-policy-to-your-repository
2022-06-24 11:11:38 +08:00
Marius Vikhammer
42aa4ee3d4 ulp: only enable relevant wakeup sources for ULP
Do not enable co-processor trap wakeup source when running ULP FSM, as this
could cause spurious wake-ups.
2022-06-24 02:30:29 +00:00
Darian
7ea4b9d408 Merge branch 'feature/freertos_smp_reduce_iram_usage' into 'master'
FreeRTOS: Move some SMP FreeRTOS functions to flash

See merge request espressif/esp-idf!18581
2022-06-24 06:29:54 +08:00
Zim Kalinowski
22ff8c7f78 Merge branch 'feature/update_freertos_kernel_source' into 'master'
freertos-smp: update FreeRTOS SMP kernel

Closes IDF-5256

See merge request espressif/esp-idf!18624
2022-06-24 04:19:04 +08:00
Zim Kalinowski
974151bd31 Merge branch 'feature/freertos-smp-rsa-timeouts' into 'master'
freertos: adjust rsa test timeouts for SMP

Closes IDF-5253

See merge request espressif/esp-idf!18585
2022-06-23 21:27:36 +08:00
Ivan Grokhotkov
87180907f7 Merge branch 'bugfix/nvs_part_ptr_wrong_init' into 'master'
bugfix (nvs_flash): Fix nvs_flash_init_partition_ptr

Closes IDFGH-7503 and IDFGH-7152

See merge request espressif/esp-idf!18503
2022-06-23 21:23:39 +08:00
Marek Fiala
d558b511da Tools: Auto-detect IDF_PATH in export.fish, fix setting environmental variables
Edited GitHub user's change to keep the echo message consistent with other export scripts
Fixed working with environmental variables in fish.

pull request sha: 5a646b8067
2022-06-23 14:42:35 +02:00
Sudeep Mohanty
2c7b4cf8d5 Merge branch 'bugfix/fix_legacy_pcnt_driver_test_with_freertos_smp' into 'master'
freertos-smp: Fix legacy_pcnt_driver for FreeRTOS SMP config

Closes IDF-5274

See merge request espressif/esp-idf!18631
2022-06-23 20:19:08 +08:00
simon.chupin
c6a6eaeb60 idf.py: Add automated hints on how to resolve errors 2022-06-23 14:09:34 +02:00
Mahavir Jain
dd24639215 Merge branch 'esp32h2/enable_ecc_accelerator' into 'master'
esp32h2: Enable ECC accelerator

Closes IDF-3397

See merge request espressif/esp-idf!18647
2022-06-23 20:06:26 +08:00
Sudeep Mohanty
e3e2ac979a freertos-smp: update FreeRTOS SMP kernel
This commit updates the FreeRTOS SMP kernel to commit id 2eff03708
from the upstream smp branch, which is the latest as on date.
2022-06-23 11:56:20 +00:00
Mahavir Jain
9cbf34b53d Merge branch 'bugfix/configure_link_encryption_for_charac' into 'master'
WifiProv: Add configuration support for forcing link encryption

Closes https://github.com/espressif/esp-idf/issues/9201
Closes IDFGH-7649

See merge request espressif/esp-idf!18620
2022-06-23 19:46:47 +08:00
Roland Dobai
6d762ec8b6 Merge branch 'fix/esptool_esp32c2_minrev' into 'master'
tools: Generate images for ESP32-C2 with required minimal revision

See merge request espressif/esp-idf!18633
2022-06-23 19:25:35 +08:00
Simon
6737096fd6 Merge branch 'feature/support_temp_sensor_c2' into 'master'
temperature_sensor: Add temperature sensor support for ESP32-C2

Closes IDF-3909 and IDF-4227

See merge request espressif/esp-idf!18498
2022-06-23 18:40:16 +08:00
Pieter Vandaele
856ab38681 Fix out of range in mcpwm example
hall_sensor_value 7 must not be allowed (s_hall_actions  array has length 7, index 0 to 6)
2022-06-23 10:57:54 +02:00
Marius Vikhammer
82daa80eac apptrace: move all apptrace related functions to IRAM
Closes: https://github.com/espressif/esp-idf/issues/9131
2022-06-23 16:54:24 +08:00
Darian Leung
733021ebf8 freertos: Move some SMP FreeRTOS functions to flash
The CONFIG_FREERTOS_PLACE_FUNCTIONS_INTO_FLASH allows some FreeRTOS functions to be placed
into flash, thus saving some IRAM. However, this feature was previously not supported for
SMP FreeRTOS.

This commit adds CONFIG_FREERTOS_PLACE_FUNCTIONS_INTO_FLASH support for SMP FreeRTOS. There
are now separate linker fragment files for IDF FreeRTOS and SMP FreeRTOS, named "linker.lf"
and "linker_smp.lf" respectively.
2022-06-23 16:00:46 +08:00
Cao Sen Miao
2c0651a671 Add regi2c enable/disable reference count 2022-06-23 15:36:44 +08:00
Cao Sen Miao
3a820462ac temperature_sensor: Add temperature sensor support for ESP32-C2 2022-06-23 15:36:43 +08:00
Sachin Parekh
6cfc9c365f esp32h2: Enable ECC accelerator 2022-06-23 12:59:13 +05:30
Zim Kalinowski
7d68098089 Merge branch 'bugfix/add_longcalls_to_asm' into 'master'
Build: Xtensa assembly files are now assembled with -mlongcalls option

See merge request espressif/esp-idf!18588
2022-06-23 14:52:41 +08:00
Marius Vikhammer
7e60e07a0a Merge branch 'feature/esp8684_sha' into 'master'
mbedtls: enable hw support for SHA on C2

Closes IDF-3830 and IDF-5141

See merge request espressif/esp-idf!18531
2022-06-23 14:18:49 +08:00
Island
7d10f8581a Merge branch 'feature/add_filter_seq_auth_config' into 'master'
Feature/add filter old seq_auth menuconfig

See merge request espressif/esp-idf!18622
2022-06-23 14:17:51 +08:00
Zim Kalinowski
dc8b1406cc freertos: adjust rsa test timeouts for SMP 2022-06-23 07:26:00 +02:00
Laukik Hase
796723a6df esp_prov/wifi_prov_mgr: Updated README
- Added notes for interactive provisioning
2022-06-23 10:54:20 +05:30
Laukik Hase
9aefcb12f5 esp_prov: Compatibility changes and refactoring
- Removed python 2 compatibility
- Removed dependencies on redundant external modules
- Interactive provisioning input for security scheme 2
- Style changes:
  Updated print statements to format strings
  Colored verbose logging
  Raised exceptions on errors instead of clean exits
2022-06-23 10:52:54 +05:30
Cody Cutrer
2c4e5c2963 esp_prov: make service_name optional for BLE
and allow interactive scanning and selection of device
2022-06-23 10:52:54 +05:30
Cody Cutrer
0a892d2818 esp_prov: prompt for passphrase if not given 2022-06-23 10:52:53 +05:30
Cody Cutrer
7989e97b3a esp_prov: prompt for PoP if not provided and required 2022-06-23 10:52:53 +05:30
Cody Cutrer
069b82401c esp_prov: switch from bluez/dbus to bleak
to enable multiplatform ble compatibility
2022-06-23 10:52:53 +05:30
Zim Kalinowski
aa786b34c2 Merge branch 'feature/freertos-smp-flash-test-timeout' into 'master'
freertos: increase timeout for multi flash test cases

Closes IDF-5074

See merge request espressif/esp-idf!18584
2022-06-23 13:06:44 +08:00
Mahavir Jain
0a12eab32e esp_system: move MEMPROT related configuration to soc capability header
Closes IDF-4506
2022-06-23 10:29:42 +05:30
Jiacheng Guo
9f47861019 openthread: update OpenThread submodule
* Update OpenThread to latest master
* Add required lwIP configurations to border router examples
* Fix build warnings
2022-06-23 11:33:17 +08:00
Marius Vikhammer
f4c79687f8 SHA: added hardware support for SHA on C2. 2022-06-23 11:01:16 +08:00
Marius Vikhammer
c6260e66e5 system: re-enable esp_event, real_time_stats and pthread examples and test for C2 2022-06-23 02:05:46 +00:00
Zim Kalinowski
136c873364 Merge branch 'refactor/g0_for_xtensa' into 'master'
G0: Support Xtensa targets for G0-only compilation

Closes IDF-3087

See merge request espressif/esp-idf!18538
2022-06-23 07:28:37 +08:00
Aditya Patwardhan
c22a67208e Merge branch 'fix/esp_tls_timeout_issue' into 'master'
esp-tls: Fix esp-tls timeout issue

Closes IDF-4943

See merge request espressif/esp-idf!18323
2022-06-22 23:25:13 +08:00
Alexander Grin
5a646b8067 Add default IDF_PATH detection to export.fish
Closes https://github.com/espressif/esp-idf/pull/6814
2022-06-22 16:43:09 +02:00
Darian Leung
fa45adee3c freertos: Update SMP FreeRTOS porting notes 2022-06-22 20:20:12 +08:00
Roland Dobai
78e6a04eae tools: Generate images for ESP32-C2 with required minimal revision 2022-06-22 13:28:24 +02:00
Sudeep Mohanty
755789113b freertos-smp: Fix legacy_pcnt_driver for FreeRTOS SMP config
This commit increases the memory leak threshold for legacy_pcnt_driver
test from 300 bytes to 400 bytes. The test fails due to a breach of the
threshold value by 8 bytes.
2022-06-22 13:19:34 +02:00
wangjialiang
b905789dd0 ble_mesh: stack: Add filter old seq_auth packet menuconfig 2022-06-22 08:08:28 +00:00
Jiang Jiang Jian
203c3e6e1c Merge branch 'bugfix/fix_esp32c2_owe_support' into 'master'
esp_wifi: fix esp32c2 owe support

See merge request espressif/esp-idf!18610
2022-06-22 15:46:46 +08:00
weitianhua
dd0bb0181c Add migration doc for IDF 5.0 2022-06-22 15:34:05 +08:00
weitianhua
b4aa3269e7 Change HF AG APIs' NamingMethod
1. Remove parameter of esp-bt_hf_init & esp_bt_hf_deinit API
2. Change API names
2022-06-22 15:34:05 +08:00
Mahavir Jain
a75548bb1a Merge branch 'bugfix/mbedtls_custom_cert_ut' into 'master'
ci: Fix `custom certificate bundle` UT failure for S3

See merge request espressif/esp-idf!18574
2022-06-22 14:57:27 +08:00
Darian
e9385aa5c0 Merge branch 'bugfix/bluedroid_typos' into 'master'
Bluedroid: Fix breaking and non-breaking typos

Closes IDFGH-5103

See merge request espressif/esp-idf!18596
2022-06-22 14:31:50 +08:00
Rahul Tank
0dc0f8ad51 WifiProv: Extended support for configuring if link encryption is needed
when attempting to read / write characteristic to bluedroid stack
2022-06-22 10:17:28 +05:30
jincheng
b5d1464180 resolve redefinition in btc_spp.h and btc_hd.h/btc_hh.h
Closes https://github.com/espressif/esp-idf/issues/9199
2022-06-22 11:33:04 +08:00
Jiang Jiang Jian
aed2f605ff Merge branch 'bugfix/bond_not_saved_properly_for_pairing_again' into 'master'
Bugfix: bond not saved properly after re-pairing

See merge request espressif/esp-idf!18328
2022-06-22 11:05:08 +08:00
Jiang Jiang Jian
697f9f4ba3 Merge branch 'bugfix/espnow_disconnect_optimize' into 'master'
wifi: optimize espnow when disconnect pm enable

See merge request espressif/esp-idf!18518
2022-06-22 11:04:24 +08:00
Jiang Jiang Jian
0ee5cb2f4c Merge branch 'bugfix/wifi_condition_linker_mapping' into 'master'
WiFi: Fix linking of WiFi functions dependent on PM_ENABLE

See merge request espressif/esp-idf!18597
2022-06-22 10:57:05 +08:00
Ivan Grokhotkov
88d2a221f1 fatfs, spiffs: add missing dependency on vfs
Since vfs is no longer a common component, the dependency needs to be
added explicitly.
2022-06-21 17:16:49 +02:00
morris
ac98d89ced Merge branch 'bugfix/fix_esp32c2_does_not_support_csi_issue' into 'master'
Bugfix/fix esp32c2 does not support csi issue

Closes IDF-4216

See merge request espressif/esp-idf!18595
2022-06-21 22:04:21 +08:00
jincheng
eeba284ed1 lower the priority of application task of a2dp demo
Closes https://github.com/espressif/esp-idf/issues/9192
2022-06-21 21:51:25 +08:00
chenjianxing
d4d3d65898 esp_wifi: fix esp32c2 owe support 2022-06-21 20:58:10 +08:00
Isha Pardikar
8e6cfb02ce Merge branch 'feature/nimble_spp_multiple_client' into 'master'
Send notification to multiple clients in BLE SPP example

See merge request espressif/esp-idf!18539
2022-06-21 19:52:32 +08:00
Onkar
f2384a4b83 Bugfix: bond not saved properly after re-pairing 2022-06-21 19:36:35 +08:00
jincheng
70d892fbb8 restore edr_en which was wrongly cleared by role switch
add critical protection for vhci_env_p->vhci_intr_st
ignore max_page when handle remote features

Closes https://github.com/espressif/esp-idf/issues/7923
Closes https://github.com/espressif/esp-idf/issues/8394
Closes https://github.com/espressif/esp-idf/issues/1921
2022-06-21 19:23:41 +08:00
Darian Leung
a8805e5b01 bluedroid: Fix non breaking typos 2022-06-21 19:07:25 +08:00
Darian Leung
c2e098c10e bluedroid: Fix breaking change typos
This commit fixes typos that are breaking changes (i.e., macros, types, and functions)
in the bluedroid API. Migration notes for v5.0 have also been added.

Closes https://github.com/espressif/esp-idf/issues/6887
2022-06-21 19:07:25 +08:00
Aditya Patwardhan
8785d1687c esp_tls.h: Add note regarding default timeout_ms value 2022-06-21 16:33:52 +05:30
likunqiao@espressif.com
c42628fd4f Zigbee: Merging light_coordinator and light switch into one
* Light bulb acting as ZED and bulb server device
  * Light switch acting as ZC and switch client device
  * ZC stay starting network steering to permit device join
2022-06-21 09:28:23 +00:00
muhaidong
96f86e0bb4 esp_wifi: esp32c2 does not support wifi mesh 2022-06-21 16:48:52 +08:00
Laukik Hase
fbeac8d43c ci: Enable custom certificate bundle test for ESP32-S3
- Increase leakage limit for `test performance RSA key operations`
  UT by 64 bytes
2022-06-21 14:18:23 +05:30
morris
d178d1d58a Merge branch 'bugfix/esp32s2_startup_garbled_output' into 'master'
esp_system: fix garbled UART output on startup on esp32s2

Closes IDFGH-7615

See merge request espressif/esp-idf!18549
2022-06-21 15:02:35 +08:00
Zim Kalinowski
d632e6d3c7 Merge branch 'feature/add_build_test_for_freertos_smp' into 'master'
freertos-smp: added a build test for freertos smp

See merge request espressif/esp-idf!18593
2022-06-21 13:59:48 +08:00
Mahavir Jain
52e94e1ffe Merge branch 'wifi_prov_mgr/wpa3_psk' into 'master'
wifi_prov: Added support for WPA3_PSK and WPA2_WPA3_PSK APs

See merge request espressif/esp-idf!18534
2022-06-21 13:34:39 +08:00
Laukik Hase
ff44ff8050 mbedtls: Acquire lock before enabling MPI (RSA) hardware
- For ESP32-S3
2022-06-21 10:48:17 +05:30
Laukik Hase
740b9a9afe wifi_prov: Added support for WPA3_PSK and WPA2_WPA3_PSK APs 2022-06-21 04:24:19 +00:00
Jiang Jiang Jian
3cc134672b Merge branch 'feature/optimize_bluetooth_architecture_0616' into 'master'
Feature/optimize bluetooth architecture

See merge request espressif/esp-idf!18553
2022-06-21 01:35:12 +08:00
Darian Leung
0c895466ef wifi: Fix linking of WiFi functions dependent on PM_ENABLE
The following functions are only defined when CONFIG_PM_ENABLE is defined:

- wifi_apb80m_request()
- wifi_apb80m_release()

This commit makes their linker script mapping statements also dependent on CONFIG_PM_ENABLE
thus fixing some linker errors when CONFIG_PM_ENABLE is disabled.
2022-06-21 00:12:08 +08:00
Jiang Jiang Jian
5f9bbf71fe Merge branch 'feature/sae_sta_h2e' into 'master'
SAE H2E support for STA

See merge request espressif/esp-idf!17860
2022-06-20 23:52:08 +08:00
muhaidong
b48b9beace esp_wifi: esp32c2 does not support csi. 2022-06-20 21:47:51 +08:00
muhaidong
9a25d06b5f esp_wifi: esp32s2 esp32c3 and esp32s3 support ftm 2022-06-20 21:47:51 +08:00
morris
865937fba3 Merge branch 'bugfix/fix_esp32c2_dose_not_support_wapi' into 'master'
esp_wifi: esp32c2 does not support wapi

Closes IDF-4216

See merge request espressif/esp-idf!18573
2022-06-20 21:31:54 +08:00
Shreyas Sheth
591c7a496c esp_wifi: WPA3 SAE H2E support for station 2022-06-20 18:51:11 +05:30
GengYuchao
d0a1fb1802 Fix nimble repo for timer and co_count 2022-06-20 21:18:54 +08:00
GengYuchao
0184d892ef Fix for prototype 2022-06-20 21:18:20 +08:00
Sudeep Mohanty
ae391ec360 freertos-smp: added a build test for freertos smp 2022-06-20 14:54:35 +02:00
Jiang Jiang Jian
cce48ded57 Merge branch 'bugfix/spp_send_data_crash' into 'master'
component_bt: Fix crash when spp sends data

See merge request espressif/esp-idf!18563
2022-06-20 19:56:29 +08:00
muhaidong
2ccce0ca41 esp_wifi: update comments of WI-FI CAPS in soc_caps.h 2022-06-20 19:43:16 +08:00
Omar Chebib
8fae0f0753 G0: Support Xtensa targets for G0-only compilation
G0-only example now supports Xtensa targets. This means that G0 layer
does not depend on G1+ layers anymore
2022-06-20 11:34:20 +00:00
Zim Kalinowski
c414d7b292 freertos: increase timeout for multi flash test cases 2022-06-20 10:25:39 +00:00
Martin Vychodil
692b9980b5 Merge branch 'feature/memprot_api_unified_s3_2' into 'master'
System/Security: Memprot API unified (ESP32S3)

See merge request espressif/esp-idf!16169
2022-06-20 17:34:22 +08:00
xiongweichao
90510fb597 Fix crash when sending data by spp 2022-06-20 17:12:07 +08:00
GengYuchao
1dabebf771 Fix Kconfig format issue and add option 2022-06-20 17:00:12 +08:00
GengYuchao
ee55f016be Add nimble hci example for c2 2022-06-20 17:00:12 +08:00
GengYuchao
69c63e63b3 Update examples sdkconfig defualut 2022-06-20 17:00:12 +08:00
GengYuchao
42d70086ae Sync nimble fix for bt component 2022-06-20 17:00:12 +08:00
GengYuchao
6658a46478 Move tinycrypt function 2022-06-20 17:00:12 +08:00
GengYuchao
61ee34f713 Add new porting file 2022-06-20 17:00:12 +08:00
GengYuchao
7916f45d58 Update the host configuration options file. Update the osi malloc function. 2022-06-20 17:00:12 +08:00
GengYuchao
9782f86f82 update rom file for c2 controller lib 2022-06-20 17:00:12 +08:00
GengYuchao
b2f8a3c694 Update bt controller interface file 2022-06-20 17:00:12 +08:00
GengYuchao
633e9282b7 Update the CMake compilation architecture and update the controller configuration options 2022-06-20 17:00:12 +08:00
GengYuchao
d1afa7f8d5 Update ble controller lib for esp32c2 2022-06-20 17:00:12 +08:00
Darian
7756b6e2c7 Merge branch 'bugfix/esp_ipc_isr_freertos_deadlock' into 'master'
esp_system: Workaround esp_ipc_isr_stall_other_cpu() deadlock with SMP FreeRTOS

Closes IDF-5250 and IDF-5251

See merge request espressif/esp-idf!18565
2022-06-20 16:31:44 +08:00
Roland Dobai
b6e6adddc3 Merge branch 'refactor/change_copyright_components' into 'master'
components: Change copyright in components files

See merge request espressif/esp-idf!18580
2022-06-20 16:02:12 +08:00
Omar Chebib
741b62d618 Build: Xtensa assembly files are now assembled with -mlongcalls option 2022-06-20 13:56:49 +08:00
Zim Kalinowski
303681a9c9 Merge branch 'docs/clarify_esp_timer_name' into 'master'
doc: added name 'ESP Timer' to doc for clarification

See merge request espressif/esp-idf!18586
2022-06-20 13:01:40 +08:00
Jakob Hasse
d7cceabbb4 Merge branch 'feature/upgrade_c_cxx_standards' into 'master'
build system: use C17 and C++2a by default

Closes IDF-1499, IDFGH-1788, IDFGH-2781, and IDFGH-7617

See merge request espressif/esp-idf!18371
2022-06-20 12:24:08 +08:00
Mahavir Jain
84df276b98 Merge branch 'bugfix/fix_wss_server_example' into 'master'
fix(example): Fix wss_server_example not close socket

Closes IDFGH-7609

See merge request espressif/esp-idf!18528
2022-06-20 12:11:40 +08:00
muhaidong
6ca2804107 esp_wifi: esp32c2 does not support wapi. 2022-06-20 11:42:12 +08:00
Jakob Hasse
0d15ee6c12 refactor(doc): added name 'ESP Timer' to doc for clarification 2022-06-20 11:15:48 +08:00
Jing Li
6c8dc275a1 Merge branch 'refactor/improve_flash_power_down_logic' into 'master'
sleep: improve flash power down logic

See merge request espressif/esp-idf!17901
2022-06-20 11:05:58 +08:00
yuanjm
63ed429a49 fix(example): Fix wss_server_example not close socket
Closes https://github.com/espressif/esp-idf/issues/9163
2022-06-20 03:01:38 +00:00
Mahavir Jain
9f72659da8 Merge branch 'fix/remove_monkeypatch_in_flash_encryption_example' into 'master'
flash_encryption_example: Remove unnecessary monkeypatch

See merge request espressif/esp-idf!18583
2022-06-20 10:59:26 +08:00
Martin Vychodil
339fcbf14d System/Security: Memprot API unified (ESP32S3)
Unified Memory protection API for all PMS-aware chips - ESP32S3 port
2022-06-20 02:36:44 +00:00
Mahavir Jain
d5a9f67ce9 Merge branch 'bugfix/fix_pre_encrypted_ota_pytest_example' into 'master'
ci: Fix pre_encrypted_ota pytest example

Closes IDFCI-1295

See merge request espressif/esp-idf!18454
2022-06-19 12:53:51 +08:00
Ondrej Kosta
26edd9b98f Merge branch 'feature/lwip_bridge' into 'master'
Feature/lwip bridge

Closes IDF-4944

See merge request espressif/esp-idf!17945
2022-06-19 03:09:05 +08:00
Kapil Gupta
674967d0a6 Merge branch 'bugfix/wps_scan_ssid_copy' into 'master'
Correct SSID copy length during WPS scan

Closes WIFI-4533

See merge request espressif/esp-idf!18571
2022-06-18 22:55:35 +08:00
Kapil Gupta
7fae6ce4f2 Correct SSID copy length during WPS scan 2022-06-18 13:26:48 +00:00
Aditya Patwardhan
e4de05578c flash_encryption_example: Remove unnecessary monkeypatch for the
flash_encryption pytest.
Earlier monkeypatching was done to add erase_partition functionality.
The required code has been added upstream in pytest-embedded
2022-06-18 18:01:38 +05:30
morris
e234a412a8 Merge branch 'feature/pcnt_virtual_io' into 'master'
pcnt: support set level for unused control signal

Closes IDF-5184

See merge request espressif/esp-idf!18358
2022-06-18 15:59:59 +08:00
morris
06eb494a61 pcnt: support set the level of virtual IO 2022-06-18 15:00:37 +08:00
Sudeep Mohanty
ac5cfa78bf Merge branch 'bugfix/freertos_smp_fix_test_preemtion' into 'master'
freertos-smp: Fix test_preemtion yield time threshold for FreeRTOS SMP

Closes IDF-5254

See merge request espressif/esp-idf!18577
2022-06-18 05:04:05 +08:00
Zim Kalinowski
d209cb3a6b Merge branch 'bugfix/freertos_tlsp_del_cb_tests' into 'master'
freertos: Fix SMP FreeRTOS TSLP deletion callback tests

Closes IDF-5252

See merge request espressif/esp-idf!18576
2022-06-18 04:05:25 +08:00
Ivan Grokhotkov
3973db7664 soc: make register access macros compatible with C++20
In C++20, using the result of an assignment to a 'volatile' value is
deprecated.

Breaking change: register "setter" or modification macros can no
longer be used as expressions.

Closes https://github.com/espressif/esp-idf/issues/9170
2022-06-17 18:09:22 +02:00
Aditya Patwardhan
c2ccc383da Merge branch 'feature/protocomm_security_version_2' into 'master'
Protocomm: Add SRP6a-based security scheme

Closes IDF-3014

See merge request espressif/esp-idf!18183
2022-06-18 00:04:40 +08:00
simon.chupin
45482bd1c0 components: Change copyright in components files 2022-06-17 16:59:56 +02:00
Ivan Grokhotkov
157247f98f asio: fix example for compatibility with C++20
Fix deprecated-enum-enum-conversion warning when compiling the
example with C++20
2022-06-17 16:44:17 +02:00
Ivan Grokhotkov
9ff37d122a esp_common: add handling for designated inits for C++20 2022-06-17 16:44:17 +02:00
Ivan Grokhotkov
9dba0476a0 asio: disable concepts support
The bundled version of asio uses legacy concepts syntax
(https://en.cppreference.com/w/cpp/experimental/constraints) which is
not accepted by GCC with -std=c++20.
Disable the concepts support until asio is upgraded to a version which
supports the new syntax.
2022-06-17 16:44:17 +02:00
Ivan Grokhotkov
7f971429bc cmake: allow lower language versions when building for linux target 2022-06-17 16:44:17 +02:00
Ivan Grokhotkov
a2ca5d03c5 examples, components: remove C/C++ standard overrides
...where they are not necessary after switching to C17 and C++20.
2022-06-17 16:44:17 +02:00
Ivan Grokhotkov
0a1e83c599 build system: use C17 and C++2a by default
Closes https://github.com/espressif/esp-idf/pull/4846
Related to https://github.com/espressif/esp-idf/issues/5003
Related to https://github.com/espressif/esp-idf/issues/6885
Related to https://github.com/espressif/arduino-esp32/issues/5859
2022-06-17 16:44:16 +02:00
Sudeep Mohanty
648f4d3a9f freertos-smp: Fix test_preemtion yield time threshold for FreeRTOS SMP
This commit adjusts the test_preemtion yield time threshold to pass when
FreeRTOS SMP is enabled.
2022-06-17 16:03:34 +02:00
Darian Leung
97cf44cbe0 freertos: Fix SMP FreeRTOS TSLP deletion callback tests
The TLSP deletion callback feature is not compatible with the CONFIG_FREERTOS_ENABLE_STATIC_TASK_CLEAN_UP
option. However, the "freertos_options" unit test configuration will enable that option.

This commit disables all CONFIG_FREERTOS_ENABLE_STATIC_TASK_CLEAN_UP related features when compiling with
SMP FreeRTOS.
2022-06-17 21:57:11 +08:00
Aditya Patwardhan
6222d43984 protocomm: Added option to enable/disable supported security versions. 2022-06-17 13:16:20 +00:00
Aditya Patwardhan
15531e1023 wifi_provisioniong: Update wifi provisioning example to demonstrate security version 2 2022-06-17 13:16:20 +00:00
Aditya Patwardhan
0b88785286 provisioning: Added documentation for SRP6a based Security Scheme 2 2022-06-17 13:16:20 +00:00
Laukik Hase
7fa47173b2 wifi_prov_mgr: Added documentation related to SRP6a 2022-06-17 13:16:20 +00:00
Aditya Patwardhan
f2cce5fa0d wifi_provisioning: Update the APIs with reference to the new APIs from protocomm
esp_local_ctrl: Update the code with reference to new changes in protocomm component
2022-06-17 13:16:20 +00:00
Aditya Patwardhan
eb7ff34c89 protocomm: Added SRP6a implementation as the security version 2.
1) Rename srp component to esp_srp
2) Remove dependency on hkdf sha
3) Restructure protocomm component APIs to make them more flexible for allowing multiple security versions
4) esp_srp: convert API return type from int to esp_err_t
5) esp_srp: Formatting changes
6) Added mbedtls_gcm instead of aes_ctr

Co-authored-by: Laukik hase <laukik.hase@espressif.com>
2022-06-17 13:16:20 +00:00
Laukik Hase
3235206624 esp_prov: Added provision for SRP6a-based security scheme 2022-06-17 13:16:20 +00:00
Laukik Hase
5169e22277 protocomm: Generated proto-c and python files for SRP6a scheme
- Added protobuf auto-generated files to pre-commit check
  ignore lists
2022-06-17 13:16:20 +00:00
Alexey Gerenkov
73989eb05b Merge branch 'feature/coredump_separate_stack_xtensa' into 'master'
espcoredump: allow reserving dedicated stack size for Xtensa architecture

See merge request espressif/esp-idf!18041
2022-06-17 20:29:24 +08:00
Jiang Jiang Jian
02b9aafa96 Merge branch 'bugfix/fix_some_wifi_issue' into 'master'
esp_wifi: add multiphy support for c2 and fix ftm with ps issue

Closes WIFI-4468, WIFI-4464, WIFI-4467, WIFI-4463, WIFI-4456, WIFI-4459, WIFI-4460, WIFI-4474, and WIFI-4505

See merge request espressif/esp-idf!18480
2022-06-17 20:00:24 +08:00
jingli
3a908c66e6 use API instead of Kconfig 2022-06-17 19:57:47 +08:00
Sudeep Mohanty
089d88da77 Merge branch 'bugfix/freertos_smp_build_test_failures' into 'master'
freertos-smp: Fix build test issues for s2, s3, c3 with FreeRTOS SMP enabled

See merge request espressif/esp-idf!18564
2022-06-17 19:53:54 +08:00
Jiang Jiang Jian
9e40841483 Merge branch 'bugfix/fix_some_memory_leak_in_phy' into 'master'
fix the bug that some memory leaked in phy after wifi/ble deinit

Closes IDFGH-6820

See merge request espressif/esp-idf!18548
2022-06-17 18:31:30 +08:00
Ivan Grokhotkov
a22730c914 esp_system: fix garbled UART output on startup on esp32s2
Closes https://github.com/espressif/esp-idf/issues/9168
2022-06-17 12:09:07 +02:00
jingli
824e0ddca8 improve flash power down logic 2022-06-17 18:01:43 +08:00
Roland Dobai
60f845384f Merge branch 'refactor/add_types_to_tools' into 'master'
tools: add python types hints

See merge request espressif/esp-idf!18434
2022-06-17 17:08:19 +08:00
Darian Leung
95955ed170 esp_system: Workaround esp_ipc_isr_stall_other_cpu() deadlock with SMP FreeRTOS
SMP FreeRTOS uses a single kernel lock for all critical sections. There is a known
issue with esp_ipc_isr_stall_other_cpu() that can cause dead if the other CPU is
already in a critical section.

This commit adds a temporary workaround to reduce the chance of deadlock by taking
the SMP FreeRTOS kernel lock first before stalling the other CPU.

See IDF-5257 for more details.
2022-06-17 15:37:07 +08:00
Sudeep Mohanty
c5d6f97331 freertos-smp: Fix build test errors for esp32s2 and esp32s3
This commit fixes build test errors for esp32s2 and esp32s3 with
FreeRTOS SMP enabled.
2022-06-17 09:21:46 +02:00
Roland Dobai
a988cc9a64 Merge branch 'tools/csv_handling_overhaul' into 'master'
tools: Overhaul csv handling for mfg_gen and nvs_partition_gen

Closes IDFGH-5434

See merge request espressif/esp-idf!18365
2022-06-17 15:20:50 +08:00
Sudeep Mohanty
55f1eca248 freertos-smp: Fix build test errors for esp32c3
This commit fixes build test failures for esp32c3.
2022-06-17 09:18:46 +02:00
Sudeep Mohanty
7726f343e8 freertos-smp: Update prvYieldCore() to fix compile warning
prvYieldCore() leads to an array-out-of-bounds error when compiled with
-Os optimization and configNUM_CORES = 1. This commit avoids this
compile warning by compiling out the part of code which is unnecessary
when configNUM_CORES is 1.
2022-06-17 09:11:02 +02:00
Konstantin Kondrashov
7f109b8181 Merge branch 'bugfix/adds_iram_attr_for_efuse_apis' into 'master'
bootloader_efuse: Adds IRAM_ATTR for efuse API

Closes IDFGH-7601

See merge request espressif/esp-idf!18517
2022-06-17 13:24:41 +08:00
Jiang Jiang Jian
4851857573 Merge branch 'bugfix/enterprise_certs' into 'master'
esp_wifi: Update wpa2 enterprise certs.

See merge request espressif/esp-idf!18515
2022-06-17 10:58:54 +08:00
Jack
cb0dd5cc75 fix the bug that some memory leaked in phy after wifi/ble deinit 2022-06-16 20:42:20 +08:00
muhaidong
820bfe9cd8 esp_wifi: fix ftm with ps and add multiphy support for c2
1. sleep: fix potential issue when PSRAM enable.
2. esp32c2: add multiphy support.
3. ftm: workaround for ftm with ps.
4. add regdomain max channel of ap.
5. update total scan time.
6. update min chan when country policy is auto.
7. check whether country schan and nchan is valid.
2022-06-16 20:11:22 +08:00
Isha Pardikar
9d6164d0a0 Merge branch 'feature/nimble_spp_multiple_client' into 'master'
NimBLE: Added support for sending notification to multiple clients in BLE SPP example.

See merge request espressif/esp-idf!18539
2022-06-16 16:07:49 +05:30
Harshit Malpani
a777ea6dc2 Update sdkconfig file for partial download to increase emac_rx task stack size 2022-06-16 09:03:49 +00:00
Harshit Malpani
3f00a3e120 Add config option to set stack size for emac_rx task 2022-06-16 09:03:49 +00:00
Mahavir Jain
c8854b09e3 Merge branch 'bugfix/ci_mqtt_qos1' into 'master'
ci: Fix `mqtt_qos1` example test failure

Closes IDFCI-1270

See merge request espressif/esp-idf!18446
2022-06-16 16:08:20 +08:00
Jiang Jiang Jian
da54350570 Merge branch 'feature/OWE_sta' into 'master'
WPA3 OWE support for station

See merge request espressif/esp-idf!16443
2022-06-16 15:33:22 +08:00
Zim Kalinowski
3f2411c691 Merge branch 'bugfix/freertos_smp_disable_pm_tests' into 'master'
freertos: Disable esp_pm when SMP FreeRTOS is enabled

Closes IDF-5103, IDF-5104, and IDF-5127

See merge request espressif/esp-idf!18363
2022-06-16 15:11:11 +08:00
Ivan Grokhotkov
c38810e268 Merge branch 'bugfix/s3_increase_static_alloc_size' into 'master'
bootloader, esp_system: increase static allocation space for esp32s3

See merge request espressif/esp-idf!18045
2022-06-16 15:06:10 +08:00
morris
381b4cb26f Merge branch 'bugfix/undefined_dport_lvl_def' into 'master'
soc(esp32): Expose SOC_DPORT_WORKAROUND_DIS_INTERRUPT_LVL for all ECO versions

Closes IDFGH-7606

See merge request espressif/esp-idf!18520
2022-06-16 15:00:24 +08:00
jincheng
8a7ca296d5 avoid wrongly restart discovery 2022-06-16 14:56:29 +08:00
Mahavir Jain
519737823c Merge branch 'bugfix/low_wifi_throughput_udp' into 'master'
ci, test: temporary adjust IDF_PERFORMANCE_MIN_UDP_RX_THROUGHPUT limit

Closes IDFCI-1302

See merge request espressif/esp-idf!18522
2022-06-16 14:48:57 +08:00
Kapil Gupta
6212a50edd wpa_supplicant: Add debug info for eloop functions 2022-06-16 10:36:34 +05:30
Omar Chebib
752026a174 Merge branch 'refactor/remove_g0_dep_on_g1_riscv' into 'master'
G0: RISC-V targets have now an independent G0 layer

See merge request espressif/esp-idf!17926
2022-06-16 11:53:39 +08:00
Marius Vikhammer
405ced6a83 Merge branch 'feature/s3_ulp_fsm' into 'master'
ulp-fsm: support ulp-fsm example on S3

See merge request espressif/esp-idf!18473
2022-06-16 10:30:42 +08:00
Darian
f6ef3480d1 Merge branch 'bugfix/xtensa_sol_frame_saves_extra_registers' into 'master'
freertos: Xtensa solicited stack frame should save threadptr register

Closes IDF-5070

See merge request espressif/esp-idf!18468
2022-06-16 07:13:16 +08:00
simon.chupin
44f3c19fa9 tools: Add python types hints 2022-06-15 14:33:29 +02:00
Djordje Nedic
bbc3add0e3 tools: overhaul csv handling for mfg_gen and nvs_partition_gen
This fixes the issue where multiline strings and strings with delimiters inside the nvs input csv file were incorrectly parsed, and adds back the ability to add comment lines anywhere in the CSV file.

The issue stems from the move away from the python built in csv module to manual parsing, which was made after moving away from using the csv module to parse mfg data.

This reverts back to using the csv module for parsing and writing csv data in both mfg_gen and nvs_partition_gen, fixes the original issue in mfg_gen and improves code quality which makes the code more readable and maintainable.

Closes https://github.com/espressif/esp-idf/issues/7175
2022-06-15 12:31:49 +00:00
Ivan Grokhotkov
8ee3decdba bootloader, esp_system: increase static allocation space for esp32s3
The previously used splits between memory allocated for ROM code,
2nd stage bootloader and the app were somewhat safe and conservative.
This resulted in some space being unavailable for static allocation
in the app.

This commit increases the space available for static allocation to the
maximum possible amount.

1. Some of the ROM code static allocation is only used in UART/USB/SPI
   download modes. This region ("shared buffers") has been placed at
   the lower end of ROM memory area, to be reusable in flash boot
   mode. The 2nd stage bootloader linker script is modified to "pack"
   all sections exactly up to the end but with roughly 8K margin between
   startup stacks.
2. Instead of calculating the sections placement and hardcoding the
   addresses in the LD script again, rewrite it to calculate the
   start address of each memory region automatically based on the
   logic above.
3. Adjust the app memory layout (SRAM_IRAM_END) accordingly,
   increasing the space available for static allocation.

Overall these changes increase the space available for static
allocation by about 78kB.

The downside of these changes is that the 2nd stage bootloader .data
segment is now directly adjacent to the startup stack on the PRO CPU.
Previously, there was effectively about 78kB of extra stack space for
the PRO CPU, before the stack would run into the data segment.
2022-06-15 17:57:11 +05:30
Darian Leung
434287fc8b freertos: Xtensa FreeRTOS saves threadptr in solicited stack frame
The Xtensa FreeRTOS port does not save the threadptr register when
doing a voluntary yield. This can result in a crash when multiple
tasks used the threadptr register and call "taskYIELD()".

This commit adds the threadptr register to the solicited stack frame.
2022-06-15 20:20:41 +08:00
Shyamal Khachane
6d55761f60 OWE support for station 2022-06-15 17:20:24 +05:30
Armando (Dou Yiwen)
0b80546f8e Merge branch 'feature/new_esp_psram_component' into 'master'
esp_psram: new esp psram component

Closes IDF-4318, IDF-4382, IDF-4841, and IDFGH-7192

See merge request espressif/esp-idf!18050
2022-06-15 19:16:56 +08:00
Roland Dobai
62fe93f9ad Merge branch 'fix/flash_detect_new_project' into 'master'
tools: Rename the flash size detection kconfig option

Closes IDFGH-7593

See merge request espressif/esp-idf!18505
2022-06-15 19:14:38 +08:00
Zim Kalinowski
e55ca17fb6 Merge branch 'feature/enable_freertos_smp_on_c2_and_h2' into 'master'
freertos-smp: enable FreeRTOS SMP for all targets

Closes IDF-5233

See merge request espressif/esp-idf!18506
2022-06-15 18:55:11 +08:00
Jakob Hasse
27bb68f2d3 Merge branch 'refactor/rename_bootloader_private_include_dir' into 'master'
bootloader_support: rename include_bootloader/ -> private_include/

See merge request espressif/esp-idf!18475
2022-06-15 18:46:30 +08:00
Anton Maklakov
8a6c36ada4 ci, test: temporary adjust IDF_PERFORMANCE_MIN_UDP_RX_THROUGHPUT limit 2022-06-15 17:19:24 +07:00
KonstantinKondrashov
f428a241c6 soc(esp32): Expose SOC_DPORT_WORKAROUND_DIS_INTERRUPT_LVL for all ECO versions
It fixes a build issue when ESP32_ECO3_CACHE_LOCK_FIX=y

Closes https://github.com/espressif/esp-idf/issues/9160
2022-06-15 17:42:21 +08:00
Zim Kalinowski
ce098ecea8 Merge branch 'feature/freertos-smp-adjust-performance-thresholds' into 'master'
freertos: adjust freertos smp performance thresholds

See merge request espressif/esp-idf!18389
2022-06-15 17:23:00 +08:00
Laukik Hase
2dea0e833a ci: Fix mqtt_qos1 example test failure
- Updated log levels of some tags in mqtt/tcp example
  - Updated mqtt/tcp example test to work with WiFi
2022-06-15 14:16:44 +05:30
Darian Leung
546a7fc495 esp_pm: Disable esp_pm when SMP FreeRTOS is enabled
SMP FreeRTOS currently does not support power management yet. This
commit makes SMP FreeRTOS and esp_pm mutually exclusive.
2022-06-15 16:17:59 +08:00
chenjianxing
1740cbe33d wifi: optimize espnow when disconnect pm enable 2022-06-15 16:12:01 +08:00
Michael (XIAO Xufeng)
7c7d53813c Merge branch 'feat/revert_touch_s3' into 'master'
touch: Added support for using touch in sleep modes back on ESP32-S3

Closes IDF-5041

See merge request espressif/esp-idf!18421
2022-06-15 16:11:50 +08:00
KonstantinKondrashov
c4bdcf3207 bootloader_efuse: Adds IRAM_ATTR for efuse API
Fixes startup of app for case:
bootloader with 40Mhz and app with 80Mhz (ESPTOOLPY_FLASHFREQ)

Closes https://github.com/espressif/esp-idf/issues/9156
2022-06-15 15:48:41 +08:00
Jiang Jiang Jian
20e5a989a2 Merge branch 'feature/esp32c2_support_ble_sleep' into 'master'
Support ESP32C2 BLE modem sleep and lightsleep

See merge request espressif/esp-idf!18432
2022-06-15 15:39:55 +08:00
aditi_lonkar
2a513c5531 esp_wifi: Update wpa2 enterprise certs. 2022-06-15 12:48:18 +05:30
Jing Li
074c708cf0 Merge branch 'refactor/simplify_code_for_time_compensation_when_sleep' into 'master'
system/sleep: simplify code for time compensation when wakeup from light sleep

See merge request espressif/esp-idf!18491
2022-06-15 14:38:40 +08:00
Kevin (Lao Kaiyao)
bb30edf35a Merge branch 'refactor/i2s_driver_rewrite' into 'master'
🔨 i2s: i2s driver-NG

Closes IDF-3714 and IDF-4592

See merge request espressif/esp-idf!15175
2022-06-15 14:22:58 +08:00
Mahavir Jain
0f8d149525 Merge branch 'feature/enable_mbedtls_tests_for_c2' into 'master'
mbedtls: enable all tests except SHA for ESP32-C2

See merge request espressif/esp-idf!18372
2022-06-15 12:53:05 +08:00
Jiang Jiang Jian
e4a70f311a Merge branch 'docs/improve_blufi_docs' into 'master'
docs: update BluFi documentation regarding misleading contents

Closes DOC-2836 and DOC-2701

See merge request espressif/esp-idf!18393
2022-06-15 11:27:21 +08:00
morris
d421f26562 Merge branch 'bugfix/update_gpio_intr_enable_note' into 'master'
Update the note of the gpio_intr_enable function

See merge request espressif/esp-idf!18488
2022-06-15 11:16:58 +08:00
Jiang Jiang Jian
60327aeea4 Merge branch 'bugfix/avdtp_genreal_reject_format_error' into 'master'
component_bt: Fix AVDTP general reject format error

See merge request espressif/esp-idf!17636
2022-06-15 11:07:55 +08:00
Jiang Jiang Jian
49c53dbe03 Merge branch 'feature/update_hfp_ag_version' into 'master'
component_bt:  Update hfp_ag version to 1.7.2

Closes BT-2082

See merge request espressif/esp-idf!18329
2022-06-15 11:05:36 +08:00
Armando (Dou Yiwen)
1b63128237 Merge branch 'contrib/github_pr_9133' into 'master'
driver(spi): fix flag check in bus initialization (GitHub PR)

Closes IDFGH-7574

See merge request espressif/esp-idf!18462
2022-06-15 10:59:42 +08:00
ioio
a759e00958 bugfix (nvs_flash): Fix nvs_flash_init_partition_ptr
Added unit test case.

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

Signed-off-by: Jakob Hasse <jakob.hasse@espressif.com>
2022-06-15 10:38:56 +08:00
laokaiyao
28b8fc6a7e i2s: update documents for driver-NG 2022-06-15 10:30:04 +08:00
laokaiyao
0fe3bb8ab7 i2s: update examples and unit-tests 2022-06-15 10:29:06 +08:00
laokaiyao
621d0aa942 i2s: Introduced a brand new driver 2022-06-15 10:29:06 +08:00
Tomas Rezucha
e8d172eb87 Merge branch 'docs/esp_bsp' into 'master'
docs: Add information about BSPs

See merge request espressif/esp-idf!18096
2022-06-14 21:57:07 +08:00
Roland Dobai
d56c578ddb tools: Rename the flash size detection kconfig option
9c46c98b4c have changed the default value
of ESPTOOLPY_FLASHSIZE_DETECT. As the side effect, existing
projects (having the option still enabled) started to discard the SHA256 digest.

Rename the ESPTOOLPY_FLASHSIZE_DETECT option so existing projects would
have the value disabled by default.

Closes https://github.com/espressif/esp-idf/issues/9148
2022-06-14 15:56:20 +02:00
Ondrej Kosta
b83de6acbc example common_components: fixed GPIO max range for ESP32-C2 2022-06-14 15:29:44 +02:00
Ondrej Kosta
53082a22f7 esp_netif: added support for LwIP bridge
examples: created bridge example
2022-06-14 15:29:44 +02:00
Darian
e213e66ba3 Merge branch 'refactor/esp_hw_support_cpu' into 'master'
esp_hw_support: Add new esp_cpu.h abstraction

Closes IDF-4769

See merge request espressif/esp-idf!17091
2022-06-14 21:11:30 +08:00
zwj
a9509ec34c disable BT_BLE_RPA_SUPPORTED by default and enabled by default for other chips 2022-06-14 19:57:07 +08:00
Sudeep Mohanty
472729a513 freertos-smp: enable FreeRTOS SMP for all targets
This commit enables FreeRTOS SMP for esp32s2, esp32s3, esp32c2 and
esp32h2.
2022-06-14 13:53:30 +02:00
zwj
fd90341138 support ble modem sleep and light sleep 2022-06-14 19:52:50 +08:00
Shang Zhou
b20aa0612b Merge branch 'docs/translate_spi_slave_and_spi_master' into 'master'
docs: provide CN translation for spi_slave and spi_features

Closes DOC-2921 and DOC-3179

See merge request espressif/esp-idf!18338
2022-06-14 18:53:01 +08:00
morris
919344547b Merge branch 'bugfix/rmt_register_file_s3' into 'master'
rmt: update register file after fixing csv of RMT peripheral (esp32s2/s3)

Closes IDFGH-7537

See merge request espressif/esp-idf!18392
2022-06-14 18:24:28 +08:00
Tomas Rezucha
11fd801ed9 docs: Add information about BSPs 2022-06-14 12:09:21 +02:00
Jakob Hasse
84082d365b refactor (bootloader_support): include_bootloader/ -> private_include/ 2022-06-14 17:27:50 +08:00
Tomas Rezucha
6ba7b10302 Merge branch 'fix/usb/buffer_sizes' into 'master'
usb: TinyUSB buffer sizes

Closes IDFGH-7469

See merge request espressif/esp-idf!18359
2022-06-14 17:23:52 +08:00
Michael (XIAO Xufeng)
7b8e5888ca Merge branch 'refactor/add_clk_tree_ll' into 'master'
clk_tree: Stage3 - HAL for clock subsystem

Closes IDF-4334

See merge request espressif/esp-idf!18270
2022-06-14 17:16:29 +08:00
Jiang Jiang Jian
3cb6abee3c Merge branch 'bugfix/hal_assert_spelling' into 'master'
HAL: fix kconfig HAL_ASSERTION typo

See merge request espressif/esp-idf!18482
2022-06-14 16:24:25 +08:00
Jiang Jiang Jian
4e33239474 Merge branch 'feature/remove_back_compatible_with_s3beta_rom' into 'master'
spi_flash: remove back-compatible with caller function of S3Beta ROM

See merge request espressif/esp-idf!18492
2022-06-14 16:22:08 +08:00
Armando
26df228b11 psram: fix esp32/esp_psram_impl_quad memcpy out of bounds issue 2022-06-14 15:44:27 +08:00
Armando
cdad8a02fe esp_psram: remove g_spiram_ok 2022-06-14 15:44:27 +08:00
Armando
38e5043ae8 esp_psram: new psram component 2022-06-14 15:44:27 +08:00
Darian
135480396a Merge branch 'bugfix/spi_should_use_early_log' into 'master'
SPI: Fix incorrect log usage

See merge request espressif/esp-idf!17017
2022-06-14 15:24:37 +08:00
Omar Chebib
6783f52045 CI: examples generating an ELF file only can now pass CI 2022-06-14 15:00:53 +08:00
Omar Chebib
2fd784c97a G0 RISC-V: Remove "private_include/regi2c_brownout.h" header as it has been moved and simplify "regi2c_ctrl.h" 2022-06-14 15:00:53 +08:00
Omar Chebib
33ac70a3ed G0: add a build example to check G0 dependencies 2022-06-14 15:00:53 +08:00
Omar Chebib
5bcd9b2db8 G0: RISC-V targets have now an independent G0 layer
G0 doesn't depend on any G1+ layer for RISC-V based targets
2022-06-14 15:00:53 +08:00
jingli
30e7af2ffb system/sleep: simplify code for time compensation when wakeup from light sleep 2022-06-14 14:49:26 +08:00
Darian Leung
a8a3756b38 hal: Route CPU and Interrupt Controller HAL/LL to esp_cpu calls
This commit makes changes to cpu_ll.h, cpu_hal.h, and interrupt_controller_hal.h:

- Moved to esp_hw_support in order to be deprecated in the future
- HAL/LL API now route their calls to esp_cpu.h functions instead

Also updated soc_hal.h as follows:

- Removed __SOC_HAL_..._OTHER_CORES() macros as they dependend on cpu_hal.h
- Made soc_hal.h and soc_ll.h interfaces always inline, and removed soc_hal.c.

This commit also updates the XCHAL_ERRATUM_572 workaround by

- Removing it's HAL function and invoking the workaround it directly the bootloader
- Added missing workaround for the ESP32-S3
2022-06-14 14:40:03 +08:00
Darian Leung
149872131a hal: Move dedicated GPIO LL and HAL
This commit moves the dedicated GPIO LL and HAL functions from
cpu_ll.h to dedic_gpio_cpu_ll.h.

- cpu_ll_enable_cycle_count() has also been removed due to lack of feasible usage scenarios
2022-06-14 14:38:29 +08:00
Mahavir Jain
4e4d0a5011 Merge branch 'bugfix/psram_startup_crash' into 'master'
psram: Fix startup crash when `CONFIG_SPIRAM_MALLOC_ALWAYSINTERNAL=0`

Closes IDFGH-6938

See merge request espressif/esp-idf!17543
2022-06-14 14:36:47 +08:00
Shang Zhou
2cfce11fb8 docs: provide CN translation for spi_slave and spi_features 2022-06-14 14:31:42 +08:00
Darian Leung
61eb7baa6b esp_hw_support: Add esp_cpu.h abstraction and API
This commit updates the esp_cpu.h API. The new API presents a new
abstraction of the CPU where CPU presents the following interfaces:

- CPU Control (to stall/unstall/reset the CPU)
- CPU Registers (to read registers commonly used in SW such as SP, PC)
- CPU Interrupts (to inquire/allocate/control the CPUs 32 interrupts)
- Memory Port (to configure the CPU's memory bus for memory protection)
- Debugging (to configure/control the CPU's debugging port)

Note: Also added FORCE_INLINE_ATTR to the DoxyFile in order to pass doc
        builds for esp_cpu.h
2022-06-14 14:30:58 +08:00
Darian Leung
556ec30457 esp_hw_support: Rename cpu_util.c to cpu.c 2022-06-14 14:30:57 +08:00
Shang Zhou
efdfb7ec61 docs: update BluFi documentation regarding misleading contents 2022-06-14 14:18:13 +08:00
Rahul Tank
5302bbf97a Merge branch 'docs/update_pairing_popup_troubleshoot' into 'master'
docs: Added a subsection for FAQ regarding paring pop up during provisioning

See merge request espressif/esp-idf!18430
2022-06-14 13:55:10 +08:00
Ivan Grokhotkov
f5d49199d3 Merge branch 'ci/fix_utils_sh_with_dash' into 'master'
ci: fix bash shell array incompatibility in dash

See merge request espressif/esp-idf!18487
2022-06-14 13:05:17 +08:00
morris
e991c9c5d4 Merge branch 'feature/little_improvement_for_rgb_panel' into 'master'
rgb_lcd: optimize draw_bitmap && PCLK fractional divisor

See merge request espressif/esp-idf!18148
2022-06-14 12:18:17 +08:00
jiangguangming
0e8401e9b0 spi_flash: remove back-compatible with caller function of S3Beta ROM 2022-06-14 11:25:30 +08:00
morris
066289fbd0 Merge branch 'feature/doc_update_efuse' into 'master'
doc(efuse): Updates efuse article

Closes IDF-4223, IDF-4895, IDFGH-7228, and IDFGH-7216

See merge request espressif/esp-idf!18349
2022-06-14 10:50:51 +08:00
xiongweichao
82730166aa Update the note of the gpio_intr_enable function 2022-06-14 10:44:02 +08:00
TDA2030
09c192c7f1 rgb_lcd: optimise rgb_panel_draw_bitmap
by using memcpy instead of coping in a nested for loop
2022-06-14 02:20:47 +00:00
morris
b2bb8fd3c4 rgb_lcd: support update pclk at runtime 2022-06-14 02:20:47 +00:00
morris
843279d287 rgb_lcd: support fractional clock divisor 2022-06-14 02:20:47 +00:00
morris
8dd26e9e9f spi_lcd: make tjpgd example runnable on C2 2022-06-14 02:20:47 +00:00
Fu Hanxi
3bb9d37863 ci: fix bash shell array incompatibility in dash 2022-06-14 09:46:55 +08:00
Zim Kalinowski
c26bfae1fd Merge branch 'bugfix/custom_bootloader_example_codeowner' into 'master'
CI: add codeowner for custom bootloader examples

See merge request espressif/esp-idf!18474
2022-06-14 04:20:24 +08:00
Sudeep Mohanty
302c548bb0 Merge branch 'feature/freertos_smp_enable_riscv_port' into 'master'
freertos-smp: add support for RISC-V targets on FreeRTOS SMP

See merge request espressif/esp-idf!18128
2022-06-14 04:17:54 +08:00
Sudeep Mohanty
ff185f737c Merge branch 'refactor/freertos_yielding_tests' into 'master'
freertos: refactor yield tests for freertos

Closes IDF-3343, IDFCI-1250, IDFCI-1251, IDFCI-1252, IDFCI-1253, IDFCI-1254, IDFCI-1255, and IDFCI-1256

See merge request espressif/esp-idf!18369
2022-06-13 22:33:40 +08:00
Konstantin Kondrashov
7d942e0a5d Merge branch 'feature/efuse_rst_is_treated_as_poweron_rst' into 'master'
reset_reasons: EFUSE_RST is treated as POWERON_RST + checks errors of eFuse BLOCK0

Closes IDF-3702

See merge request espressif/esp-idf!14742
2022-06-13 21:26:13 +08:00
Konstantin Kondrashov
32b5307016 Merge branch 'feature/reset_rtc_wdt_in_bootloader_common_erase_part_type_data' into 'master'
bootloader: Fix RTC_WDT reset in bootloader_common_erase_part_type_data when a long erase

Closes IDFGH-7125

See merge request espressif/esp-idf!17841
2022-06-13 20:54:04 +08:00
morris
317f6292c7 Merge branch 'docs/translate_dedic-gpio' into 'master'
Docs/translate dedic gpio

Closes DOC-2999

See merge request espressif/esp-idf!18170
2022-06-13 19:59:07 +08:00
Laukik Hase
914b0de764 freertos: Indicate completed initialization for APP CPU with idle task hook
Co-authored-by: Mahavir Jain <mahavir@espressif.com>
2022-06-13 17:17:42 +05:30
Sudeep Mohanty
12e2312aaa freertos: FreeRTOS SMP RISC-V port cleanup and enable esp32c3 in KConfig
This commit does general cleanup of the risc-v port files and restricts
FreeRTOS SMP config option to only esp32 and esp32c3.
2022-06-13 13:39:16 +02:00
Darian Leung
71eef9a9b0 freertos: Fix SMP RISC-V Port IDF Style critical sections
Previously the RV port was routing IDF style critical section API to call FreeRTOS style critical section API.
For example, a call to "portENTER_CRITICAL(mux)" would eventually call `vTaskEnterCritical()" via the following call flow:
- portENTER_CRITICAL(mux)
- vPortEnterCritical()
- portSET_INTERRUPT_MASK_FROM_ISR()
- vTaskEnterCritical()

This commit fixes the IDF style critical section by making sure that they are completely orthogonal to FreeRTOS critical sections
2022-06-13 13:34:21 +02:00
Sudeep Mohanty
8fd953c627 freertos-smp: add support for RISC-V targets oon FreeRTOS SMP
TBD: Initial commit. Enables risc-v port.
2022-06-13 13:34:21 +02:00
KonstantinKondrashov
ada08619cf doc: Adds RTC Watchdog Timeout article in fatal errors 2022-06-13 17:54:10 +08:00
Rahul Tank
835aec1152 Merge branch 'bugfix/mbedtls_free_keypair' into 'master'
Nimble: Fixed memory leak while generating keypair using embedtls

See merge request espressif/esp-idf!18322
2022-06-13 17:50:34 +08:00
songruojing
6f6251f369 hal: Limit the HAL_ASSERTION_LEVEL in bootloader to be no larger than 1 (i.e. silent) 2022-06-13 17:47:51 +08:00
songruojing
03477a59db rtc_clk: Fix rtc8m calibration failure after cpu/core reset
1. make sure 8md256 clk is enabled before calibration
2. improve bootloader and application startup 8m, 8md256 enable logic
2022-06-13 17:47:51 +08:00
songruojing
c8752cee6a clk_tree: Refactor rtc_clk.c by adding HAL layer for clock subsystem 2022-06-13 17:47:50 +08:00
Mahavir Jain
52769051e2 Merge branch 'bugfix/fix_ws_ping_receive' into 'master'
fix(websocket): Support handler deal with PING and CLOSE frame

Closes IDFGH-7209

See merge request espressif/esp-idf!18065
2022-06-13 17:23:38 +08:00
Sudeep Mohanty
9a53a4abf1 freertos: refactor yield tests for freertos
This commit refactors the yield test scenarios for a more deterministic
prediction of the kernel's yielding behavior.
2022-06-13 10:57:55 +02:00
Marius Vikhammer
e18f381905 HAL: fix kconfig HAL_ASSERTION typo 2022-06-13 16:19:28 +08:00
daiziyan
3a2da53e2a docs: add translation for dedic_gpio 2022-06-13 15:14:25 +08:00
Martin Vychodil
7f884dc966 Merge branch 'fix/ff_sdmmc_status_check_optional' into 'master'
fatfs: Add option to mock ff_sdmmc_status output to increase IO speed

Closes IDF-4788

See merge request espressif/esp-idf!18300
2022-06-13 14:42:12 +08:00
Marius Vikhammer
d7b79cc05e CI: add codeowner for custom bootloader examples 2022-06-13 14:03:03 +08:00
Marius Vikhammer
797358f953 ulp-fsm: support ulp-fsm example on S3 2022-06-13 13:58:29 +08:00
David Čermák
a6980a6b6a Merge branch 'bugfix/mqtt_host_test' into 'master'
MQTT: Fix compilation of networking host tests

Closes IDF-4286

See merge request espressif/esp-idf!18099
2022-06-13 13:13:00 +08:00
Rahul Tank
2b097995bc Merge branch 'bugfix/fix_compilation_issue_esp32h2' into 'master'
NimBLE: fix compilation issue in nimble examples for ESP32H2

See merge request espressif/esp-idf!18438
2022-06-13 12:33:49 +08:00
Fu Hanxi
e8329f179d Merge branch 'ci/pytest_with_multi_runner_tags' into 'master'
ci: use tags as markers

Closes IDFCI-1271 and IDFCI-1287

See merge request espressif/esp-idf!18221
2022-06-13 11:43:42 +08:00
Martin Vychodil
d33d917312 Merge branch 'remove/sdspi_host_deprecated_api' into 'master'
Remove deprecated API for sdspi_host

Closes IDF-4692

See merge request espressif/esp-idf!18317
2022-06-13 07:08:58 +08:00
Matus Fabo
384d61f156 remove: sdspi_host deprecated api
add: migration guide documentation
2022-06-12 20:07:27 +00:00
Michael (XIAO Xufeng)
f522865462 Revert "touch: add protection for touch sleep case"
This reverts commit 974ac3b4b8.
2022-06-13 01:51:15 +08:00
Michael (XIAO Xufeng)
069ef38ff6 Revert "touch_sensor: forbid from using touch sensor with sleep on ESP32-S3"
This reverts commit a84faa3cef.
2022-06-13 01:51:12 +08:00
David Cermak
877eb62602 mqtt: Update tests to start with valid transport 2022-06-11 14:23:35 +02:00
David Cermak
0aea4bf50d mqtt: Fix client_enqueue(len=0), Improve transport memory
* Update submodule: git log --oneline 64f88b4412ea6649dbf207a07370c2617160d044..a21c387d6280260894981c22494017c893d505b9

Detailed description of the changes:
* mqtt_client: Added checks for cleanly-closed connection and timeout
  - See merge request espressif/esp-mqtt!118
  - Added checks for cleanly-closed connection and timeout (espressif/esp-mqtt@e05d873)
* mqtt_client: fix esp_mqtt_client_enqueue for len=0 (GitHub PR)
  - See merge request espressif/esp-mqtt!135
  - mqtt_client: fix esp_mqtt_client_enqueue for len=0 (espressif/esp-mqtt@69b6493)
* Fix implicit malloc/free inclusion
  - See merge request espressif/esp-mqtt!134
  - See commit https://github.com/espressif/esp-mqtt/commit/9299f54
* feat(mqtt): Optimize mqtt transport list and remove unused transport
  - See merge request espressif/esp-mqtt!131
  - See commit https://github.com/espressif/esp-mqtt/commit/647e0ef
* Fix WSS default port selection through menuconfig.
  - See merge request espressif/esp-mqtt!132
  - - Closes https://github.com/espressif/esp-mqtt/issues/223
  - See commit https://github.com/espressif/esp-mqtt/commit/f6caaff
2022-06-11 14:23:35 +02:00
David Cermak
1ad3e2db17 mqtt: Fix and add mqtt host test to CI 2022-06-11 14:23:30 +02:00
David Čermák
2c1f7a044e Merge branch 'bugfix/esp_netif_clean_deps' into 'master'
esp-netif: Make dependency on esp-eth optional

Closes IDF-4459

See merge request espressif/esp-idf!17980
2022-06-11 14:12:52 +08:00
Mitch Bradley
8d9e110a04 Reverts Backtrace: format to what it used to be
Was:  Backtrace: N:M N:M N:M ...
Now:  Backtrace:N:MN:M N:M ...

The problem with the new format is that it is hard to parse and
breaks the parser that is used by PlatformIO.  The old format
is much more reasonable.  I do not see how the pattern in IDFDUT.py
can work with the new format, due to the missing space after the :
2022-06-10 18:33:46 -10:00
Mahavir Jain
bb11770e38 Merge branch 'bugfix/low_wifi_throughput' into 'master'
ci, test: temporary adjust IDF_PERFORMANCE_MIN_TCP_RX_THROUGHPUT limit

Closes IDFCI-1302

See merge request espressif/esp-idf!18437
2022-06-10 19:28:36 +08:00
morris
4094f13fd3 rmt: fix error in rmt register file
Closes https://github.com/espressif/esp-idf/issues/9100
2022-06-10 18:38:42 +08:00
Mahavir Jain
a5fe7bb281 tools/unit_test_app: add targets specific configs for "aes_no_hw"
In ESP32-C2, there is no hardware AES and hence this config is not required
2022-06-10 15:08:07 +05:30
Mahavir Jain
4c3f5dba8d ci: increase job count for C2 2022-06-10 15:08:07 +05:30
Mahavir Jain
fc43533859 mbedtls: enable all tests except SHA for ESP32-C2 2022-06-10 15:08:06 +05:30
Martin Vychodil
aa2cf79e13 Merge branch 'bugfix/fatfs_mtime_dst' into 'master'
fatfs: fix incorrect mtime returned for files created during DST

Closes IDFGH-7467

See merge request espressif/esp-idf!18333
2022-06-10 17:18:01 +08:00
Roland Dobai
724b4121b9 Merge branch 'feature/enable-lfn-for-fatfsparse' into 'master'
fatfs: enable long file names for fatfsparse.py

Closes IDF-4992

See merge request espressif/esp-idf!18212
2022-06-10 16:22:45 +08:00
Li Kun Qiao
20f5e180ee Merge branch 'support/esp32h2beta1_beta2_lib_update' into 'master'
ieee802154: update 802154 lib for supporting H2-beta1 and beta2

See merge request espressif/esp-idf!18442
2022-06-10 15:22:42 +08:00
Jiang Jiang Jian
70d7a362db Merge branch 'feature/wifi_beacon_loss_optimize' into 'master'
WiFi: beacon loss and noise check timer optimize for wifi power save

See merge request espressif/esp-idf!18447
2022-06-10 13:28:50 +08:00
Martin Vychodil
16a4ee7c36 Merge branch 'bugfix/spi_mode_status_check' into 'master'
sdmmc, sdspi: fixes related to status checks, R1b response support, erase fix for SPI mode, fix for erase timeout calculation

Closes IDF-4728

See merge request espressif/esp-idf!17727
2022-06-10 13:15:47 +08:00
morris
acae3e86dd Merge branch 'contrib/github_pr_9119' into 'master'
Fix the PARALLEL_LINES size of the tjpgd example to ensure that esp32c2 can also be used normally (GitHub PR)

Closes IDFGH-7559 and IDFGH-7549

See merge request espressif/esp-idf!18448
2022-06-10 12:34:55 +08:00
Armando
44f771c713 psram: support s3 copy flash to psram 2022-06-10 10:39:29 +08:00
morris
5daa73d236 Merge branch 'refactor/mcpwm_hal_driver_doc' into 'master'
mcpwm: don't support disable carrier one-shot pulse

Closes IDFGH-7406

See merge request espressif/esp-idf!18295
2022-06-10 10:28:59 +08:00
Simon
6ad7558ec1 Merge branch 'feature/esp32c2_configurable_mmu_new' into 'master'
MMU: add configurable MMU page size support (For ESP32C2)

Closes IDF-3821

See merge request espressif/esp-idf!17854
2022-06-10 10:20:49 +08:00
Fu Hanxi
bcb7ae3217 docs: fix test apps local execution section 2022-06-10 09:13:23 +08:00
Fu Hanxi
7e0bb1dabd ci: use tags as markers 2022-06-10 09:13:23 +08:00
Adam Múdry
8af790da45 fatfs: Add mock option to ff_sdmmc_status function to increase IO speed
Adds `disk_status_check_enable` field to `esp_vfs_fat_mount_config_t` struct to control if ff_sdmmc_status is mocked or not.
2022-06-09 20:09:32 +00:00
Martin Vychodil
3e78898d2c Merge branch 'bugfix/spiffs_readdir_errno' into 'master'
spiffs: update submodule to fix SPIFFS_readdir errno issue

See merge request espressif/esp-idf!18366
2022-06-10 03:53:08 +08:00
Ivan Grokhotkov
39238f51ce fatfs: fix incorrect mtime returned for files created during DST
mktime function uses tm_isdst member as an indicator whether the time
stamp is expected to be in daylight saving time (1) or not (0).
FAT filesystem uses local time as mtime, so no information about DST
is available from the filesystem.

According to mktime documentation, tm_isdst can be set to -1, in which
case the C library will try to determine if DST was or wasn't in
effect at that time, and will set UTC time accordingly.

Note that the conversion from UTC to local time and then back to UTC
(time_t -> localtime_r -> FAT timestamp -> mktime -> time_t) does not
always recover the same UTC time. In particular, the local time in the
hour before DST comes into effect can be interpreted as "before DST"
or "after DST", which would correspond to different UTC values. In
this case which option the C library chooses is undefined.

Closes https://github.com/espressif/esp-idf/issues/9039
Originally reported in https://github.com/espressif/arduino-esp32/issues/6786
2022-06-09 19:50:00 +00:00
Roland Dobai
a280ecd83a Merge branch 'bugfix/esptool_flash_autodetect_build_issue' into 'master'
esptool: fix elf2image conversion with "--dont-append-digest"

See merge request espressif/esp-idf!18444
2022-06-09 23:26:46 +08:00
Yannis Huber
3397cf465d driver(spi): fix flag check in bus initialization
The current flag check in the SPI bus initialization is wrong and
causes exceptions when using certain SPI hosts in quad transfert mode.
2022-06-09 17:20:30 +02:00
Shang Zhou
6b9d92c1d6 docs: provide CN translation for fatfsparse.py 2022-06-09 15:51:03 +02:00
Martin Gaňo
0f160c8f11 fatfs: enable long file names for fatfsparse.py 2022-06-09 15:51:03 +02:00
Aditya Patwardhan
815935b01e Merge branch 'ci/esp32c2_protocomm_ut' into 'master'
ci: Re-enable protocomm UTs for ESP32-C2

Closes IDF-5143

See merge request espressif/esp-idf!18394
2022-06-09 21:34:32 +08:00
likunqiao
41592e146a ieee802154: update 802154 lib for supporting H2-beta1 and beta2 2022-06-09 13:13:20 +00:00
Shu Chen
3df100662c Merge branch 'bugfix/rom_time_t_size_deps_esp32h2beta2' into 'master'
esp_rom: deprecate some esp32h2beta2 rom newlib funcs

See merge request espressif/esp-idf!18440
2022-06-09 20:56:09 +08:00
KonstantinKondrashov
5ec9baff36 efuse: Checks errors of 4x coding scheme for BLOCK0 if so then abort 2022-06-09 17:49:03 +08:00
KonstantinKondrashov
46f0313d6b reset_reasons: EFUSE_RST is treated as POWERON_RST
ESP32 does not have the EFUSE_RST, the rest chips has this reset reason.
2022-06-09 17:49:03 +08:00
Tomas Rezucha
5d202aa401 usb: Clean-up TinyUSB unnecessary code 2022-06-09 10:56:39 +02:00
Tomas Rezucha
d1d9b8f8f6 usb: Fixed RX buffer min size
Closes https://github.com/espressif/esp-idf/issues/9040
2022-06-09 10:56:39 +02:00
David Cermak
fd366fac9e esp_eth: Remove deprecated esp_eth_receive() 2022-06-09 07:55:40 +00:00
David Cermak
343cf2696e esp_eth: Reduce internal deps onto netif-glue 2022-06-09 07:55:40 +00:00
David Cermak
5e19b9c951 esp-netif: Make dependency on esp-eth optional
* esp-netif to optionally depend on esp-eth (only for l2tap config)
* esp_eth.h now includes the original ethernet header and the
ethernet-netif glue layer
* Updated examples and test to explicitely use esp-eth dependency if
needed
2022-06-09 07:55:40 +00:00
David Cermak
680f3a50c2 esp_eth: Rename drivers main header to esp_eth_driver
The original  would be used as API header bringing both driver and netif related includes
2022-06-09 07:55:40 +00:00
Li Shuai
7efa8b855a sleep: beacon loss and noise check timer optimize for wifi power save 2022-06-09 15:52:05 +08:00
morris
83eb2c4964 Merge branch 'bugfix/newlib_test_gcc11_esp32c2' into 'master'
newlib: ROM library is built with time_t 64bit in size

Closes IDFCI-1305 and IDFCI-1306

See merge request espressif/esp-idf!18424
2022-06-09 15:37:02 +08:00
Zim Kalinowski
56f2c86dd4 freertos: adjust performance test thresholds for SMP 2022-06-09 09:25:40 +02:00
David Čermák
f9c8d635c5 Merge branch 'feature/tcp_transport' into 'master'
tcp_transport: optimize memory

See merge request espressif/esp-idf!18102
2022-06-09 15:25:08 +08:00
Mahavir Jain
7dc0a1db18 esptool: fix elf2image conversion with "--dont-append-digest"
Append elf2image args so that "--dont-append-digest" do not override earlier
flash settings.

This was observed in case of ESP32-C2 image build where image build was failing
with `CONFIG_ESPTOOLPY_FLASHSIZE_DETECT`.

Related from earlier commit: 9c46c98b4c
2022-06-09 12:19:09 +05:30
Dai Zi Yan
b264d46d20 Merge branch 'docs/update_build_system' into 'master'
docs: udpate CN translation for build-system

See merge request espressif/esp-idf!18378
2022-06-09 14:09:07 +08:00
Rahul Tank
0395078a06 NimBLE: fix compilation issue in nimble examples for ESP32H2 2022-06-09 10:57:31 +05:30
Marius Vikhammer
08c4984773 Merge branch 'bugfix/s3_psram_spinlock' into 'master'
spinlock: fixed spinlocks not working on S3 if placed in PSRAM

Closes IDF-5169, IDFGH-7560, and IDF-5007

See merge request espressif/esp-idf!18425
2022-06-09 13:02:18 +08:00
Laukik Hase
872f8513fb ci: Re-enable protocomm UTs for ESP32-C2 2022-06-09 09:55:09 +05:30
Rahul Tank
92ff76cd2c docs: Added a subsection for FAQ regarding paring pop up during provisioning 2022-06-09 09:47:15 +05:30
Jiang Jiang Jian
20ac5a8464 Merge branch 'docs/update_wifi_csi_sub_carrier_index_doc' into 'master'
docs:update wifi sci subcarrier index docs

Closes WIFI-3215

See merge request espressif/esp-idf!18125
2022-06-09 10:52:38 +08:00
morris
6eb450fa87 newlib: ROM library is build with time_t 64bit on esp32c2 2022-06-09 10:48:31 +08:00
wuzhenghui
89319cd72f esp_rom: remove functions which depend on sizeof(struct stat) and all their callers for esp32h2-beta2 2022-06-09 10:40:09 +08:00
Marius Vikhammer
99b6f2731e Merge branch 'bugfix/enable_s3_bootloader_example_test' into 'master'
CI: enable custom bootloader tests on S3

See merge request espressif/esp-idf!18339
2022-06-09 10:35:27 +08:00
Marius Vikhammer
c8c2e78096 Merge branch 'bugfix/s3_sleep_voltage_enable_ulp' into 'master'
ulp: re-enable support, example and CI jobs for S2 and S3

Closes IDF-4514, IDFGH-7075, and IDFGH-7531

See merge request espressif/esp-idf!18308
2022-06-09 10:20:25 +08:00
Marius Vikhammer
44909aff93 Merge branch 'bugfix/increase_stack_for_per-task_test' into 'master'
freertos, tests: increase stack size for a test

Closes IDFCI-1303, IDFCI-1308, and IDFCI-1309

See merge request espressif/esp-idf!18433
2022-06-09 09:41:12 +08:00
Li Jingyi
21d65931fc tcp_transport: add websocket dynamic buffer feature
Free websocket transport buffer when connection succeed to save peak heap cost about WS_BUFFER_SIZE.
2022-06-08 19:13:25 +00:00
Anton Maklakov
da3fa37d66 ci, test: temporary adjust IDF_PERFORMANCE_MIN_TCP_RX_THROUGHPUT limit 2022-06-08 19:51:06 +07:00
daiziyan
e6a7fee2b4 docs: udpate CN translation for build-system 2022-06-08 19:40:04 +08:00
Cao Sen Miao
6589daabb9 MMU: Add configurable mmu page size support on ESP32C2 2022-06-08 19:34:31 +08:00
Darian Leung
a65165dd52 hal: Fix incorrect spi_hal log usage
esp_flash_init_main() can be during startup before the OS has started, thus should use
the EARLY version of logging.
2022-06-08 19:19:44 +08:00
Anton Maklakov
a343ab813c spiffs, tests: increase stack size for a test 2022-06-08 17:07:53 +07:00
Marius Vikhammer
6e79cc69f9 re-enable riscv ulp gpio support and examples
Closes https://github.com/espressif/esp-idf/issues/8691
Closes https://github.com/espressif/esp-idf/issues/9094
2022-06-08 17:59:28 +08:00
Marius Vikhammer
9c4a12b11e Revert "ulp: Keep RTC_CNTL_COCPU_SHUT_RESET_EN set for ULP RISC-V"
This reverts commit f709faea7c.
2022-06-08 17:59:07 +08:00
Anton Maklakov
763deaea3c freertos, tests: increase stack size for a test 2022-06-08 16:45:31 +07:00
Dai Zi Yan
f173016d86 Merge branch 'docs/translate_dfu' into 'master'
docs: translate dfu.rst

Closes DOC-1958

See merge request espressif/esp-idf!18238
2022-06-08 17:33:47 +08:00
yuanjm
16cf6d7bf3 ci: Add PING test for ci 2022-06-08 16:30:51 +08:00
Zim Kalinowski
20bbfa128c Merge branch 'bugfix/freertos_smp_gcc11_build_errors' into 'master'
freertos: Fix GCC 11 SMP FreeRTOS build errors

See merge request espressif/esp-idf!18399
2022-06-08 16:29:58 +08:00
yuanjm
b9b1a7aba8 fix(websocket): Support handler deal with PING and CLOSE frame
Closes https://github.com/espressif/esp-idf/issues/8803
2022-06-08 16:16:57 +08:00
Fu Hanxi
9397373c14 Merge branch 'ci/use_cache_with_reqirements_txts' into 'master'
ci: new pip cache policy and pytest requirements

Closes IDF-4604

See merge request espressif/esp-idf!18377
2022-06-08 14:32:59 +08:00
Marius Vikhammer
486316f222 spinlock: fixed spinlocks not working on S3 if placed in PSRAM
The compare and set instruction (S32C1I) cannot be used when
lock is not in internal memory.

Closes https://github.com/espressif/esp-idf/issues/9120
2022-06-08 14:31:16 +08:00
Fu Hanxi
34e04e39bb fix: skip install dbus-python on windows 2022-06-08 10:11:43 +08:00
dreamcmi
2024ae9434 Fix the PARALLEL_LINES size of the tjpgd example to ensure that esp32c2 can also be used normally 2022-06-08 08:45:32 +08:00
Fu Hanxi
566af729c5 docs: update pytest installation 2022-06-08 08:19:35 +08:00
Fu Hanxi
a24f4dedcd ci(pytest): add missing tags 2022-06-08 08:19:35 +08:00
Fu Hanxi
f20a747a26 ci: upload cache only when requirements txt changed 2022-06-08 08:19:35 +08:00
Fu Hanxi
5a0a14504d ci: split pytest requirements to requirements.json 2022-06-08 08:19:35 +08:00
Fu Hanxi
da947e2544 Merge branch 'test/remove_rtc_power_pytest' into 'master'
test_rtc: remove invalid test case file

See merge request espressif/esp-idf!18374
2022-06-07 23:56:28 +08:00
Kapil Gupta
bb23d783c0 Merge branch 'bugfix/sta_rejoin_softap_mode_issue' into 'master'
wpa_supplicant: Add changes to deinit sta_info correctly

Closes WIFI-4441

See merge request espressif/esp-idf!18395
2022-06-07 21:47:14 +08:00
KonstantinKondrashov
7b9d1eaf31 doc(efuse): Updates efuse article 2022-06-07 20:44:27 +08:00
muhaidong
1b496ed9e2 docs: add WIFI_EVENT_STA_BEACON_TIMEOUT event docs. 2022-06-07 17:59:40 +08:00
Wang Meng Yang
e2bc3f865e Merge branch 'bugfix/uninitialized-element' into 'master'
component_bt:initialize all elements of esp_bt_controller_config_t

Closes IDFGH-7506

See merge request espressif/esp-idf!18343
2022-06-07 17:24:39 +08:00
xiongweichao
d52cb7d6e4 update hfp_ag version to 1.7.2 2022-06-07 17:17:03 +08:00
Darian Leung
3c6185788f freertos: Fix GCC 11 SMP FreeRTOS build errors
This commit fixes the following build errors in SMP FreeRTOS when building with GCC 11:

- "-Wattributes" warning due to conflicting attributes on xPortInterruptedFromISRContext()
- "-Wtype-limits" warning due to taskVALID_CORE_ID() not casting xCoreID
2022-06-07 16:33:22 +08:00
Rahul Tank
27b34d60c1 Nimble: Added check to free keypair if already allocated to avoid memory
leak. Added an API that allows to free keypair
2022-06-07 13:38:15 +05:30
Kapil Gupta
ed35b6d4fc Merge branch 'bugfix/supplicant_issues' into 'master'
fix some supplicant issues

Closes WIFI-4446 and WIFI-4445

See merge request espressif/esp-idf!18362
2022-06-07 15:49:38 +08:00
Chen Jian Xing
44989a9ea0 Merge branch 'feature/update_phy_lib_c3_s3_20220504' into 'master'
esp_phy: optimize phy calibration for C3 and S3

Closes IDFGH-5903

See merge request espressif/esp-idf!18028
2022-06-07 14:19:26 +08:00
Kapil Gupta
ed2bed49c0 wpa_supplicant: Add changes to deinit sta_info correctly
Incase sta pointer is not null during station join, deinit of
previous sm causing crash due to incorrect typecast.

Add changes to correct this.
2022-06-07 11:41:53 +05:30
Jiang Jiang Jian
dc510bc271 Merge branch 'feature/add_custom_nvs_part_enc_support' into 'master'
examples/security: add support for custom NVS partition init with encryption

See merge request espressif/esp-idf!18360
2022-06-07 11:10:25 +08:00
daiziyan
7344db748f docs: translate dfu.rst 2022-06-07 11:09:30 +08:00
xiongweichao
a2ea4f5bc9 Fix AVDTP general reject format error. 2022-06-07 02:45:46 +00:00
Zim Kalinowski
e6c5badfe2 Merge branch 'bugfix/freertos_smp_disable_scheduler_suspension_tests' into 'master'
freertos: Disable scheduler suspension tests for SMP FreeRTOS

Closes IDF-5077

See merge request espressif/esp-idf!18361
2022-06-07 00:25:02 +08:00
Mahavir Jain
34fb03b049 Merge branch 'feature/http_example_pytest_migration' into 'master'
http example pytest migration

See merge request espressif/esp-idf!18053
2022-06-06 20:13:01 +08:00
Kapil Gupta
28a06d07f7 Corrected hash size for sta_info structure 2022-06-06 16:38:04 +05:30
muhaidong
9be681be35 docs: update wifi beacon timeout docs 2022-06-06 17:00:26 +08:00
Michael (XIAO Xufeng)
773715d900 Merge branch 'feature/support_refresh_brownout_v1' into 'master'
spi_flash: send reset when brownout detected on XMC flash

Closes IDF-3882

See merge request espressif/esp-idf!16873
2022-06-06 16:27:58 +08:00
Dai Zi Yan
e94435df22 Merge branch 'docs/update_idf_monitor' into 'master'
docs: update CN translation for idf-monitor.rst

Closes DOC-3082

See merge request espressif/esp-idf!18248
2022-06-06 15:45:24 +08:00
Kapil Gupta
e9128b3b5b wpa_supplicant: Removed ESP32 reference from generic APIs/Code 2022-06-06 11:03:36 +05:30
Kapil Gupta
e60ebc0cbe Use snprintf instead of sprintf 2022-06-06 11:03:36 +05:30
Kapil Gupta
2aa6853d3e Remove strcpy/strncpy function callings from supplicant 2022-06-06 11:03:35 +05:30
Kapil Gupta
916a4d6524 Fix coverity reported issues 2022-06-06 11:03:35 +05:30
Kapil Gupta
944690a5e7 Correct condition for not to use pmk caching 2022-06-06 11:03:35 +05:30
Mahavir Jain
3de609800b Merge branch 'fix/menuconfig_option_esp_cryptoauthlib' into 'master'
esp_tls_mbedtls.c: Fix esp-idf integration of esp-cryptoauthlib

See merge request espressif/esp-idf!18373
2022-06-06 12:41:05 +08:00
Mahavir Jain
2acab7c783 Merge branch 'feature/c2_rng_support' into 'master'
esp32c2: Add support for RNG

Closes IDF-4021

See merge request espressif/esp-idf!18149
2022-06-06 12:38:28 +08:00
Mahavir Jain
89e936f495 Merge branch 'feature/add_option_allow_short_app_partition' into 'master'
bootloader: Allows app partition length not 64KB aligned for NO SECURE BOOT

Closes IDF-4984

See merge request espressif/esp-idf!18364
2022-06-06 12:21:12 +08:00
Darian Leung
593fbe0b23 freertos: Disable scheduler suspension tests for SMP FreeRTOS
The behavior of vTaskSuspendAll() has changed in SMP FreeRTOS. This commit
disables scheduler suspension related unit tests for SMP FreeRTOS.

The tests will be updated in IDF-5201
2022-06-06 12:15:44 +08:00
Mahavir Jain
51bbee2e19 espcoredump: allow reserving dedicated stack size for Xtensa architecture
Core issue with SET_STACK was fixed with e543e97c7b

Related: IDF-2797
2022-06-06 03:24:50 +00:00
Michael (XIAO Xufeng)
e372710b35 test_rtc: remove invalid test case file 2022-06-06 00:36:21 +08:00
Jiang Jiang Jian
b617ccfb4c Merge branch 'feature/esp32c2_eco1_bluetooth_update_0525_for_MR' into 'master'
Support bluetooth for esp32c2 chip

See merge request espressif/esp-idf!18243
2022-06-04 17:35:17 +08:00
Geng Yuchao
cef8c506fd Synchronously modify the nibmle repo 2022-06-04 12:11:31 +08:00
Geng Yuchao
910b296d72 Add missing configuration items for BLE controller 2022-06-04 11:35:18 +08:00
Aditya Patwardhan
2ea419db22 esp_tls_mbedtls.c: Fix esp-idf integration of esp-cryptoauthlib
menuconfig option
2022-06-03 23:12:11 +05:30
Jiang Jiang Jian
95fd68a0ab Merge branch 'bugfix/pm_enabled_bt_build_fail' into 'master'
component_bt: Bluetooth build fail when power management is enabled

Closes BT-2372 and IDFGH-7514

See merge request espressif/esp-idf!18331
2022-06-04 01:15:37 +08:00
Geng Yuchao
3ee9ce9d06 Sync nimble repo 2022-06-04 01:00:04 +08:00
Geng Yuchao
8533457208 Add bluetooth controller lib for esp32c2 2022-06-04 01:00:04 +08:00
Geng Yuchao
0722e6a0b7 Update controller lib for esp32h2 2022-06-04 01:00:04 +08:00
Geng Yuchao
5bba3ebed9 Fix esp32h2 controller support. 2022-06-04 00:59:56 +08:00
Geng Yuchao
5c3f0bfe7c Add esp32c2 controller support. 2022-06-04 00:59:21 +08:00
Michael (XIAO Xufeng)
d798662421 Merge branch 'bugfix/s3_sleep_voltage' into 'master'
esp32s3: fixed dangerous power parameters in sleep modes

See merge request espressif/esp-idf!18168
2022-06-04 00:47:32 +08:00
Geng Yuchao
a692abd423 Optimize the Cmake file structure, support esp32c2.
Follow Kconfig to update the nimble config macro name.
2022-06-03 22:41:33 +08:00
Geng Yuchao
50b762af1f Add Bluetooth controller menuconfig option for esp32c2 and esp32h2 2022-06-03 22:41:33 +08:00
Geng Yuchao
02636688eb Refactor Kconfig options structure 2022-06-03 22:41:20 +08:00
Geng Yuchao
c1505d045c Add periph_module needed for BT 2022-06-03 21:47:58 +08:00
Geng Yuchao
8012af37d1 Fix soc caps for BT 2022-06-03 21:45:40 +08:00
Harshit Malpani
74789fff4a ci: increase parallel count for pytest_build_examples for esp32s2, esp32s3 and esp32c3 2022-06-03 18:50:36 +05:30
morris
067e0f65bd Merge branch 'bugfix/c2_uart_default_pin_num' into 'master'
C2: Added default UART pin numbers

See merge request espressif/esp-idf!18351
2022-06-03 20:35:11 +08:00
Mahavir Jain
1b1fae2bce Merge branch 'feature/update_example_readme_for_esp32c2_support' into 'master'
Update examples README to include esp32c2 as supported device.

Closes IDF-4974

See merge request espressif/esp-idf!18348
2022-06-03 18:35:40 +08:00
Harshit Malpani
9e5a97c23f .gitlab-ci.yml: Add netifaces depedency for pytest examples 2022-06-03 16:00:52 +05:30
Harshit Malpani
767125a051 Remove tiny_test_fw dependency from idf_http_server_test package 2022-06-03 16:00:52 +05:30
Harshit Malpani
2d244ded08 target-test.yml: Add jobs 2022-06-03 16:00:52 +05:30
Harshit Malpani
83ace52a36 http examples pytest migration 2022-06-03 16:00:52 +05:30
Harshit Malpani
e83f801462 Update examples README to include esp32c2 as supported device. 2022-06-03 15:31:05 +05:30
morris
aa3ddbc3c6 Merge branch 'test/enable_c2_target_tests' into 'master'
ci: enable target tests for ESP32-C2

Closes IDF-4989

See merge request espressif/esp-idf!18182
2022-06-03 16:41:24 +08:00
Anton Maklakov
e0d2e186bf Merge branch 'feature/toolchain_2022r1' into 'master'
Bring 2022r1-RC1 toolchains, GCC 11

Closes GCC-180, GCC-178, IDFGH-5559, IDFGH-6180, IDFGH-5101, and IDFGH-4380

See merge request espressif/esp-idf!16797
2022-06-03 16:05:49 +08:00
David Čermák
46e599c56d Merge branch 'feature/lwip_rework_patches' into 'master'
lw-IP: Reworked patches

Closes IDFGH-6197

See merge request espressif/esp-idf!17388
2022-06-03 15:26:55 +08:00
Darian
64947546a3 Merge branch 'feature/freertos_smp_newlib_dynamic_reent' into 'master'
freertos: Add support for newlib dynamic reentrancy

Closes IDF-5135

See merge request espressif/esp-idf!18216
2022-06-03 15:21:59 +08:00
Mahavir Jain
3a104b011d examples/security: update test script to handle custom NVS partition init 2022-06-03 10:16:29 +05:30
David Cermak
c67f4c2b4c lwip: Remove vanilla-lwip config until it's fully deployable 2022-06-02 20:45:24 +02:00
Ivan Grokhotkov
d34f061bc1 spiffs: update submodule to fix SPIFFS_readdir errno issue
See https://github.com/pellepl/spiffs/pull/288 for the description
of the issue.
Reported in https://github.com/esp-rs/rust/issues/117#issuecomment-1142159661
2022-06-02 18:42:48 +02:00
KonstantinKondrashov
b4d14902e7 bootloader: Allows app partition length not 64KB aligned for NO SECURE BOOT 2022-06-02 22:40:12 +08:00
Mahavir Jain
beca401fbc examples/security: add support for initializing custom NVS partition with encryption 2022-06-02 18:13:43 +05:30
Mu Hai Dong
2905223889 Merge branch 'bugfix/fix_country_policy_issue' into 'master'
esp_wifi: fix country policy issue

Closes WIFI-3908, WIFI-4287, and WIFI-4279

See merge request espressif/esp-idf!17366
2022-06-02 20:01:07 +08:00
Anton Maklakov
bc932c646e Merge branch 'bugfix/dirent-definition' into 'master'
newlib: dirent d_ino type fix

See merge request espressif/esp-idf!18336
2022-06-02 19:48:53 +08:00
Jessy Chen
7d25f254b8 esp_phy: optimize phy calibration for C3 and S3 2022-06-02 17:12:45 +08:00
muhaidong
06fb6b2e32 esp_wifi: fix country policy issue
1. Fix not update phy according to country code.
    2. Update regdomain max channel according to country info from nvs and or AP.
    3. Change nvs default country from "CN" to "01".
    4. Channel 14 is allowed only 11b mode.
    5. Remove csa when switch channel from/to 14 channel.
    6. Update phy mode nvs when softap channel from 14 to other.
    7. Fix the bug that check whether channel parameter is valid.

Docs: change default country from "CN" to "01"
2022-06-02 16:15:48 +08:00
Darian Leung
d8eb55d83b freertos: Add newlib dynamic reentrancy support
SMP FreeRTOS adds support for dynamic reentrancy in the following commit:
34b8e24d7c

This commit does the following:

- Pulls in the upstream changes
- Move __getreent() to "freertos_tasks_c_additions.h"
- Add the required configNEWLIB_REENTRANT_IS_DYNAMIC to SMP FreeRTOS port
2022-06-02 15:42:02 +08:00
Michael (XIAO Xufeng)
4e231f9dac ci: partially enable pytest for esp32c2 2022-06-02 15:07:53 +08:00
morris
3247335770 mcpwm: don't support disable carrier first pulse
The first pulse of MCPWM carrier can not be disabled, this commit will
remove the feature.

Closes https://github.com/espressif/esp-idf/issues/8984
2022-06-02 15:01:18 +08:00
morris
a12936dca9 mcpwm: rename MCPWM_ISR_IN_IRAM to MCPWM_ISR_IRAM_SAFE 2022-06-02 15:01:18 +08:00
morris
f7ff7ac4d0 mcpwm: clean up hal driver and add doc 2022-06-02 15:01:18 +08:00
Michael (XIAO Xufeng)
6a8aed12ee ci: partially enable ut tests for esp32c2
Disabled test cases are tracked in:

 IDF-4465, IDF-5045, IDF-5057, IDF-5058, IDF-5059, IDF-5060, IDF-5061, IDF-5131

- test_fatfs: IDF-5136

- test_pm: IDF-5053

- test_cache_mmu: IDF-5138

- test_partitions: IDF-5137

- test_vfs: IDF-5139

- test_freertos: IDF-5140

- test_wpa_supplicant: IDF-5046

- test_mbedtls: IDF-5141

- test_pthread: IDF-5142

- test_protocomm: IDF-5143

- test_lightsleep: IDF-5053

- test_taskwdt: IDF-5055

- test_tcp_transport: IDF-5144

- test_app_update: IDF-5145

- test_timer: IDF-5052

- test_spi: IDF-5146

- test_rtc_clk: IDF-5060

- test_heap: IDF-5167

ci: fixed issues for tests of libgcc, ets_timer, newlib

test_pm: support on C2
2022-06-02 14:23:35 +08:00
Michael (XIAO Xufeng)
f7be540222 ci: partially enable example build for esp32c2 2022-06-02 14:17:31 +08:00
muhaidong
af04a58633 docs: modify some Chinese expressions related to CSI 2022-06-02 11:55:48 +08:00
Sachin Parekh
8ad3f2ba57 esp32c2: Add support for RNG 2022-06-02 11:36:23 +08:00
muhaidong
ce37a2f205 docs:update wifi sci subcarrier index docs 2022-06-02 11:25:59 +08:00
Jakob Hasse
11a8c95d11 bugfix (esp_system): Added default UART pin numbers for C2 2022-06-02 11:22:20 +08:00
Anton Maklakov
cc309db89d ci, test: temporary increase IDF_PERFORMANCE_MAX_SPI_PER_TRANS_NO_POLLING and IDF_PERFORMANCE_MAX_SPI_PER_TRANS_NO_POLLING_NO_DMA 2022-06-02 10:15:24 +07:00
Anton Maklakov
c199f910e1 ci, test: temporary increase IDF_PERFORMANCE_MAX_VFS_OPEN_WRITE_CLOSE_TIME limit 2022-06-02 10:15:24 +07:00
Anton Maklakov
b79d0739f4 ci, test: temporary increase IDF_PERFORMANCE_MAX_FREERTOS_SPINLOCK_CYCLES_PER_OP limit 2022-06-02 10:15:23 +07:00
Anton Maklakov
ad4b3bc8b3 ci, config: re-arrange some C3 tests due to code size changes from 2022r1 toolchain 2022-06-02 10:15:23 +07:00
Anton Maklakov
30d0d7fe7f docs: add GCC migration guide 2022-06-02 10:15:23 +07:00
Shu Chen
4011c7c578 openthread: update the lib with new toolchain 2022-06-02 10:15:23 +07:00
Anton Maklakov
457fc2d582 build: temporary suppress format warnings since xtensa toolchain has long type for int32_t 2022-06-02 10:15:23 +07:00
Anton Maklakov
c4b88d25b5 build: temporary suppress enum conversion warnings 2022-06-02 10:15:23 +07:00
Anton Maklakov
bf43076c04 tools: Update 2022r1 toolchain, GCC 11.2.0, Newlib 4.1.0
Closes https://github.com/espressif/esp-idf/issues/7282
    Closes https://github.com/espressif/esp-idf/issues/7857
    Closes https://github.com/espressif/esp-idf/issues/6885
    Closes https://github.com/espressif/esp-idf/issues/6214
2022-06-02 10:15:23 +07:00
Michael (XIAO Xufeng)
acd4ca0f6e ci: add ut configs for ESP32-C2
note: flash encryption ut is not enabled in this commit, see IDF-5056
2022-06-02 11:10:29 +08:00
Michael (XIAO Xufeng)
b9f37be868 ci: enable target tests for ESP32-C2
reduce parallel num of unused jobs
2022-06-02 11:10:29 +08:00
morris
17a688749a timer: disable nano printf for gptimer examples
because we need to use %llu to print the timer count value, but nano
printf doesn't known that format
2022-06-02 11:08:59 +08:00
morris
4b26a5d340 legacy_timer: fix converting count value into time second 2022-06-02 11:08:59 +08:00
Michael (XIAO Xufeng)
a0c2252756 build_system: fixed issue that default.target may override other custom configs 2022-06-02 11:08:59 +08:00
xiongweichao
d888665160 Bluetooth build fail when power management is enabled
Closes https://github.com/espressif/esp-idf/issues/9081
2022-06-02 10:46:19 +08:00
Cao Sen Miao
6a2d3509dc spi_flash: Making XMC flash works more stable when brownout detected 2022-06-02 10:38:55 +08:00
Cao Sen Miao
890f046ee9 test: split a new banch of testing to save IRAM 2022-06-02 10:38:55 +08:00
Cao Sen Miao
895a3e1bb2 esp_intr: Split RTC interrupt, making some of signals can be triggered with cache disabled 2022-06-02 10:38:55 +08:00
David Cermak
7efcb5e625 lwip: Add missing null-checks, rename to vanilla-lwip 2022-06-01 20:38:40 +02:00
Michael (XIAO Xufeng)
1d018fd3bd test_rtc: add test_app to test power consumption 2022-06-01 21:03:54 +08:00
chaijie
e624206ca6 modify voltage param to fit all mode of S3 2022-06-01 21:03:54 +08:00
Michael (XIAO Xufeng)
ab69df3ea7 esp32s3: fixed dangerous power parameters in sleep modes 2022-06-01 21:03:54 +08:00
Scott Mabin
c947585ee4 newlib: dirent d_ino type fix
As per the posix spec, `d_ino` should be defined as `ino_t`. See the
reference:
http://pubs.opengroup.org/onlinepubs/7908799/xsh/dirent.h.html.
2022-06-01 13:49:32 +01:00
David Cermak
00377cf2e5 lwip/ci: Cleanup public header checker ignore list 2022-06-01 14:36:58 +02:00
xiongweichao
a48cb2c5e7 initialize all elements of esp_bt_controller_config_t
Closes https://github.com/espressif/esp-idf/pull/9073
2022-06-01 18:10:25 +08:00
Roland Dobai
2d08431433 Merge branch 'bugfix/flash_size_detect' into 'master'
Tools: Fix esptool flash size detection arguments

Closes IDFGH-7203

See merge request espressif/esp-idf!18100
2022-06-01 17:46:33 +08:00
Roland Dobai
41e42faa40 Merge branch 'tools/increase_minimal_cmake' into 'master'
tools: Increase the minimal supported CMake version to 3.16

Closes IDF-4362

See merge request espressif/esp-idf!18276
2022-06-01 15:54:14 +08:00
Roland Dobai
9c46c98b4c Tools: Don't add SHA256 digest to images when flash size detection is enabled 2022-06-01 08:57:07 +02:00
Roland Dobai
9bbbb99907 Tools: Fix esptool arguments and use flash size detection if selected
Closes https://github.com/espressif/esp-idf/issues/8798
2022-06-01 08:57:07 +02:00
Djordje Nedic
facab8c5a7 tools: Increase the minimal supported CMake version to 3.16
This updates the minimal supported version of CMake to 3.16, which in turn enables us to use more CMake features and have a cleaner build system.
This is the version that provides most new features and also the one we use in our latest docker image for CI.
2022-06-01 06:35:02 +00:00
Mahavir Jain
8094d874bc Merge branch 'refactor/tcp_transport' into 'master'
tcp_transport: Fix error propagation to higher layers

Closes IDF-1291

See merge request espressif/esp-idf!16394
2022-06-01 13:22:15 +08:00
Konstantin Kondrashov
b824f68b35 Merge branch 'feature/move_dport_workaround_to_g0' into 'master'
dport_access: Move DPORT workaround to G0

Closes IDF-2177

See merge request espressif/esp-idf!17961
2022-06-01 12:11:12 +08:00
Marius Vikhammer
740c8d30d6 CI: enable custom bootloader tests on S3 2022-06-01 11:39:09 +08:00
Ivan Grokhotkov
0c10b937f5 Merge branch 'bugfix/freertos_smp_disable_interrupt_usage' into 'master'
FreeRTOS: Replace portSET_INTERRUPT_MASK_FROM_ISR() call for SMP

Closes IDF-5062 and IDF-5066

See merge request espressif/esp-idf!18301
2022-06-01 00:18:26 +08:00
David Cermak
8b40579aa4 lwip: Move wifi's custom pbuf alloc/free to IRAM if config 2022-05-31 16:21:47 +02:00
David Cermak
0e71a325de lwip/wifi: Improve Rx throughput on the wifi defaults (sta+ap) 2022-05-31 15:23:06 +02:00
Konstantin Kondrashov
f1d3332eea Merge branch 'bugfix/c3_efuse_fail_bits' into 'master'
soc: Fix efuse fail bits

See merge request espressif/esp-idf!18321
2022-05-31 21:11:30 +08:00
Mahavir Jain
6aa4743ffd Merge branch 'feature/c2_support_flash_encryption' into 'master'
esp32c2: Support Flash Encryption

Closes IDF-3899

See merge request espressif/esp-idf!17993
2022-05-31 21:04:00 +08:00
KonstantinKondrashov
c5a4ab39a7 soc: Fix description of efuse fail bits 2022-05-31 11:21:24 +00:00
KonstantinKondrashov
6e6b5474c3 doc(esp32c2): Updates Flash Encryption chapter 2022-05-31 11:12:21 +00:00
KonstantinKondrashov
0b22839925 hal(ecp32c2): Adds spi_flash_encrypted_ll 2022-05-31 11:12:21 +00:00
KonstantinKondrashov
dd4642b6ba secure_boot(esp32c2): Fix case when SB key is pre-loaded 2022-05-31 11:12:21 +00:00
KonstantinKondrashov
505e18237a bootloader: Support Flash Encryption for ESP32-C2 2022-05-31 11:12:21 +00:00
Martin Gano
d11af9051b Merge branch 'bugfix/fixed-unsatisfiable-condition' into 'master'
Fixed comparison with ESP_MONITOR_DECODE

Closes IDFGH-7482

See merge request espressif/esp-idf!18325
2022-05-31 19:00:12 +08:00
Martin Gaňo
24e856a509 Fixed comparsion of integer and string that evaluated always to False
Closes https://github.com/espressif/esp-idf/issues/9052
Closes IDFGH-7482
2022-05-31 12:51:47 +02:00
Sudeep Mohanty
8d3eca6a0d Merge branch 'bugfix/freertos_fix_test_preemption' into 'master'
freertos: fix test_preemtion test

See merge request espressif/esp-idf!18318
2022-05-31 18:08:45 +08:00
Laukik Hase
12fb7a61a4 docs: Added migration guide for HTTP Client and TCP Transport
- Added breaking changes notes
- Style fixes
2022-05-31 15:04:21 +05:30
Laukik Hase
7115881a97 esp_http_client/esp_https_ota: Removed errno checks
- Returned -ESP_ERR_HTTP_EAGAIN for timeout errors from
  esp_http_client whenever tcp transport layer returns
  connection timeout
- Removed redundant conditional statements as required

Co-authored-by: Shubham Kulkarni <shubham.kulkarni@espressif.com>
2022-05-31 15:04:21 +05:30
Laukik Hase
cc7c67ad4e tcp_transport: Fix error propogation
- Made tcp_transport_errors codes public to indicate
  TCP connection issues not covered in socket's errno
- Added API to translate tcp_transport_error codes
  to esp_err_t codes for TCP Transport

Co-authored-by: Shubham Kulkarni <shubham.kulkarni@espressif.com>
2022-05-31 15:04:21 +05:30
Mahavir Jain
01d014c42d Merge branch 'contrib/github_pr_9062' into 'master'
Secure boot v2 image format: CRC size (GitHub PR)

Closes IDFGH-7493

See merge request espressif/esp-idf!18327
2022-05-31 14:21:05 +08:00
Anton Maklakov
25cee26784 Merge branch 'bugfix/storage-warnings' into 'master'
nvs: minor warning fixes

See merge request espressif/esp-idf!18313
2022-05-31 13:46:13 +08:00
KonstantinKondrashov
ac4c7d99fe dport: Move DPORT workaround to G0 2022-05-31 13:44:18 +08:00
Anton Maklakov
5751ecbbe9 Merge branch 'bugfix/bootloader_warnings' into 'master'
bootloader:  minor fixes of warnings

See merge request espressif/esp-idf!18307
2022-05-31 13:36:01 +08:00
Anton Maklakov
d1aa08eefb Merge branch 'bugfix/periph-warnings' into 'master'
peripherals: minor warning fixes

See merge request espressif/esp-idf!18312
2022-05-31 13:32:55 +08:00
Mahavir Jain
8e9bb00781 Merge branch 'bugfix/mark_ota_test_as_flaky' into 'master'
ota_example: Mark tests as flaky

See merge request espressif/esp-idf!18311
2022-05-31 13:15:11 +08:00
morris
fa6bce6c21 Merge branch 'docs/translate_gpio' into 'master'
Docs/translate gpio

Closes DOC-2857

See merge request espressif/esp-idf!18090
2022-05-31 12:19:35 +08:00
Dai Zi Yan
e2b87e668b Docs/translate gpio 2022-05-31 12:19:34 +08:00
Jiang Jiang Jian
3ef6d2ac34 Merge branch 'docs/bt_l2cap' into 'master'
docs: fix spelling errors in l2cap docs

See merge request espressif/esp-idf!18326
2022-05-31 12:15:36 +08:00
Anton Maklakov
b965264e68 Merge branch 'bugfix/coredump_warnings' into 'master'
coredump: minor fixes of warnings

See merge request espressif/esp-idf!18306
2022-05-31 11:43:51 +08:00
Anton Maklakov
620ceb8638 Merge branch 'bugfix/efuse_supress_warnings' into 'master'
efuse: suppress -Wstringop-overflow warnings

See merge request espressif/esp-idf!18258
2022-05-31 11:14:32 +08:00
Anton Maklakov
c0c4548453 Merge branch 'bugfix/ulp_warnings' into 'master'
ulp: minor fixes of warnings

See merge request espressif/esp-idf!18309
2022-05-31 11:06:18 +08:00
Marius Vikhammer
349203b3b1 docs: fix spelling errors in l2cap docs 2022-05-31 02:32:06 +00:00
Jiang Jiang Jian
6bde276a7a Merge branch 'docs/update-fatfsgen-encoding' into 'master'
Removed misleading sentence about fatfs lfn encoding

Closes IDF-5174

See merge request espressif/esp-idf!18324
2022-05-31 10:24:29 +08:00
Jakob Hasse
97c149f73d Merge branch 'refactor/nvs_iterator_api' into 'master'
NVS: New interface for iterator functions

Closes IDFGH-6149

See merge request espressif/esp-idf!18081
2022-05-31 07:47:26 +08:00
Stefan Wallentowitz
dd7aece4bf Secure boot v2 image format: CRC size
The CRC size is documented as 1095 bytes, but in the code I find 1196 bytes:
https://github.com/espressif/esp-idf/blob/master/components/bootloader_support/src/secure_boot_v2/secure_boot.c#L35
2022-05-30 23:30:34 +02:00
Sergei Silnov
dd6c0629f7 Merge branch 'bugfix/default_components_for_component_manager' into 'master'
build & config: Don't include common components on early expansion

Closes IDF-4823

See merge request espressif/esp-idf!17728
2022-05-31 01:26:28 +08:00
Ivan Grokhotkov
79659e3096 sdmmc: better calculation of erase timeout
Previous version of the code used a fixed constant (500 ms) for the
erase timeout and added 1 ms for each sector erased.
This commit improves timeouts calculation:
- For SD cards, check if erase timeout information is present in the
  SSR register. If yes, use it for erase timeout calculation.
  Otherwise assume 250ms per erase block, same as Linux does.
- For eMMC assume 250ms per erase block (but no less than 1 second).
  This has to be improved later to use the erase timeout info in the
  extended CSD register.
2022-05-30 15:39:02 +02:00
Ivan Grokhotkov
a28828a6f4 fatfs: re-enable TRIM support for SPI mode
Previously this didn't work because MMC_ERASE implementation for SPI
didn't wait for the busy status indication.
2022-05-30 15:39:01 +02:00
Ivan Grokhotkov
36e3043306 sdmmc: check card status in SPI mode after sdmmc_erase_sectors
Same as for write operation, some errors are reported only via CMD13.
Without the R1b response support in sdspi driver, this check would
fail. Now that R1b support is implemented, erase command response is
zero (success) on all cards under test.
Also remove the now-unnecessary card reset after erase in the test
case.
2022-05-30 15:39:01 +02:00
Ivan Grokhotkov
3ad98984e9 driver: sdspi: add support for R1b response
Same as R1 but with busy indication polling
2022-05-30 15:39:01 +02:00
Ivan Grokhotkov
bb11f49c74 sdmmc: check for errors reported by card in sdmmc_write_sectors_dma
During write operation (CMD24 or CMD25), the card can report some of
the errors in the 1-byte response tokens. Other types of errors are
not reported, the host has to get them by issuing CMD13.
This commit adds CMD13 request at the end of write operations and
reports error to the user if the card status isn't zero.
2022-05-30 15:39:01 +02:00
Ivan Grokhotkov
c4c7e7c82b sdmmc: support sdmmc_send_cmd_send_status in SPI mode
SPI mode uses different response format (2-byte R2) compared to SD mode.
2022-05-30 15:39:01 +02:00
Ivan Grokhotkov
da47bebdd8 sdmmc: sdmmc_init_sd_ssr: use correct command name
Numerical value of MMC_SEND_STATUS is the same as SD_APP_SD_STATUS,
so there is no functional change. Just making this consistent with the
sdmmc_send_app_cmd call later on.
2022-05-30 15:39:01 +02:00
Ivan Grokhotkov
f1e3536f3c driver: sdspi: fix decoding of R2 response 2022-05-30 15:39:00 +02:00
Ivan Grokhotkov
17b7981e2e driver: sdmmc: add SPI mode R2 response definitions 2022-05-30 15:39:00 +02:00
Martin Gaňo
59ba6999ae Removed misleading sentence about fatfs lfn encoding
Closes IDF-5174

Related to IDF-4795
2022-05-30 15:33:58 +02:00
Island
74b7a3fc83 Merge branch 'feature/final_h2_bluedroid_skc_common' into 'master'
Feature/final h2 bluedroid skc common

See merge request espressif/esp-idf!17710
2022-05-30 21:20:52 +08:00
Martin Vychodil
9bd819c78f Merge branch 'fix/fatfs_remove_utf16_support' into 'master'
FatFS: Disable UTF 16 filename encoding

Closes IDF-4795

See merge request espressif/esp-idf!18192
2022-05-30 20:59:53 +08:00
daiziyan
59453d0e78 docs: update CN translation for idf-monitor.rst 2022-05-30 20:55:37 +08:00
Sergei Silnov
89518ee86a build & config: Check requirements of managed components of main and add interface versioning 2022-05-30 14:36:22 +02:00
Sergei Silnov
07827ea362 build & config: Don't include common components on early expansion 2022-05-30 14:34:30 +02:00
Roland Dobai
56bb81228c Merge branch 'feature/update-gdb-to-11.2_20220529' into 'master'
tools: update gdb version to '11.2_20220529'

See merge request espressif/esp-idf!18296
2022-05-30 19:59:04 +08:00
Anton Maklakov
3c8a1390a0 Merge branch 'bugfix/esp-system-warnings' into 'master'
system: minor fixes of warnings

See merge request espressif/esp-idf!18310
2022-05-30 19:33:01 +08:00
Jiang Jiang Jian
2bc5d58807 Merge branch 'feature/support_sleep_for_esp32c2' into 'master'
esp32c2: support power management

Closes IDF-4440 and IDF-4617

See merge request espressif/esp-idf!18174
2022-05-30 17:57:18 +08:00
Mahavir Jain
59ecb7e3ae Merge branch 'update/protobuf' into 'master'
protobuf: Updated to v1.4.0

Closes IDFCI-1278

See merge request espressif/esp-idf!18267
2022-05-30 16:52:09 +08:00
satish.solanke
3a42007680 Bluedroid porting changes for esp32h2
created common Kconfig for common flag of nimbble and Bluedroid

fix compile error

created common cfg file for controller

fix the compilation error on tip of master

added common controller flags and fixed compilation error

sdkconfig rename for target specific
2022-05-30 08:42:45 +00:00
Mo Fei Fei
2a733ceca5 Merge branch 'doc/add_cn_trans_esp_https_server' into 'master'
Docs: Add CN trans for esp-https-server.rst

Closes DOC-3072

See merge request espressif/esp-idf!18155
2022-05-30 16:24:00 +08:00
Ivan Grokhotkov
87ec752bda Merge branch 'docs/fix_nvs_encryption_docs' into 'master'
doc (nvs_flash): improved NVS partition flash documentation

Closes IDFGH-6549

See merge request espressif/esp-idf!18004
2022-05-30 16:13:12 +08:00
Sudeep Mohanty
7476e197ad freertos: fix test_preemtion test
Increased the yield count threshold to work for both SMP FreeRTOS and
IDF FreeRTOS.
2022-05-30 13:19:26 +05:30
Anton Maklakov
84879a8e9c esp_rom: esp32s2: suppress -Waddress-of-packed-member warning 2022-05-30 14:48:12 +07:00
Anton Maklakov
1f5bb083b9 examples, timer: use llabs() 64-bit argument 2022-05-30 14:48:12 +07:00
Anton Maklakov
bf3892acee newlib: stdatomic: fix conflicting types for __atomic_load/__atomic_store 2022-05-30 14:48:12 +07:00
Anton Maklakov
afde2434e8 memprot: fix type casting to avoid suspesious address arithmetic 2022-05-30 14:48:12 +07:00
Anton Maklakov
0c549320b2 esp_system: intentionally suppress -Wstringop-overread 2022-05-30 14:48:12 +07:00
jingli
93a5087e58 add PM related soc caps about power down rtc slow/fast mem
Supporting rtc slow/fast mem does not mean supporting
rtc slow/fast mem power down.
2022-05-30 15:26:50 +08:00
Anton Maklakov
b3a6c3bcb5 nvs: suppress -Wstringop-truncation warning 2022-05-30 13:11:25 +07:00
Anton Maklakov
b0369aa898 test, spi: randr_r() expects unsigned int * type 2022-05-30 12:58:57 +07:00
Anton Maklakov
c82d8532d3 hal: explicit initialization 2022-05-30 12:57:52 +07:00
Anton Maklakov
f57016dab0 esp_hw_support: explicit initialization 2022-05-30 12:43:45 +07:00
Anton Maklakov
8ea1a2b1e8 pthread: add missing header 2022-05-30 12:43:36 +07:00
Anton Maklakov
d1db4d0c1b system: add missing header 2022-05-30 12:43:23 +07:00
Harshit Malpani
48bbfaeeba ota_example: Mark tests as flaky 2022-05-30 11:13:05 +05:30
mofeifei
0cce36f0ec docs:add cn trans for esp-https-server.rst 2022-05-30 13:38:01 +08:00
Anton Maklakov
6b15dce39c ulp test: suppress -Wstringop-overflow and -Warray-bounds 2022-05-30 11:55:27 +07:00
Anton Maklakov
6c30426777 ulp_riscv: suppress -Wstringop-overflow 2022-05-30 11:55:27 +07:00
Anton Maklakov
77c3bb9cfe bootloader: suppress -Wstringop-overflow 2022-05-30 11:45:33 +07:00
Anton Maklakov
aeaebc0977 bootloader: explicit initialization 2022-05-30 11:45:33 +07:00
Mahavir Jain
b17c09e85b esp_local_ctrl: Regenerated proto-c and python with protobuf compiler v3.21.0
$protoc --version
libprotoc 3.21.0

$ protoc-c --version
protobuf-c 1.4.0
2022-05-30 09:54:32 +05:30
Laukik Hase
b7fcbb3e7d wifi_provisioning: Regenerated proto-c and python with protobuf compiler v3.21.0 2022-05-30 09:54:32 +05:30
Laukik Hase
a3f5087336 protocomm: Regenerated proto-c and python with protobuf compiler v3.21.0 2022-05-30 09:54:32 +05:30
Laukik Hase
1ee3ee6854 protobuf: Fix v4.21.0 (python) compatibility issue
- Added auto-generated protobuf files (proto-c and python to
  pre-commit hook ignore lists
2022-05-30 09:54:31 +05:30
Laukik Hase
b09b716f1d protobuf-c: Update submodule to v1.4.0 2022-05-30 09:54:31 +05:30
Anton Maklakov
45f267390b espcoredump: fix unsigned arithmetic 2022-05-30 11:21:30 +07:00
Anton Maklakov
57785e5eca espcoredump: suppress -Waddress-of-packed-member warning 2022-05-30 11:21:30 +07:00
Jiang Jiang Jian
bf4afcbe57 Merge branch 'ci/add_esp32c2_ssc_build_jobs' into 'master'
CI: add esp32c2 SSC build jobs

See merge request espressif/esp-idf!18302
2022-05-30 12:01:45 +08:00
Darian
1ec59e6982 Merge branch 'bugfix/update_eTaskGetState_unit_test' into 'master'
FreeRTOS: Refactor eTaskGetState() test for FreeRTOS SMP

Closes IDF-5073

See merge request espressif/esp-idf!18228
2022-05-30 11:44:51 +08:00
morris
4352c39e3e Merge branch 'feature/cache_c2_support' into 'master'
cache: access error & illegal error ll functions

Closes IDF-3820

See merge request espressif/esp-idf!18203
2022-05-30 11:40:11 +08:00
Anton Maklakov
b70f528793 efuse: suppress -Wstringop-overflow warnings 2022-05-30 10:00:44 +07:00
Jiang Jiang Jian
3941b8d136 Merge branch 'docs/c2_getting_started' into 'master'
docs: update getting started guide for C2

Closes IDF-4211

See merge request espressif/esp-idf!18179
2022-05-30 10:53:15 +08:00
Mahavir Jain
7640971f14 Merge branch 'feature/https_example_pytest_migration' into 'master'
https example pytest migration

See merge request espressif/esp-idf!18054
2022-05-30 10:45:12 +08:00
Mahavir Jain
8250edbf22 Merge branch 'bugfix/mbedtls_deprecated_options' into 'master'
mbedtls: Remove deprecated options from mbedtls/esp_config.h

Closes IDFGH-7296

See merge request espressif/esp-idf!18008
2022-05-30 10:38:08 +08:00
Jiang Jiang Jian
8efa4d64e0 Merge branch 'feature/add_task_wrappers' into 'master'
wpa_supplicant: Add osi layer for FreeRTOS calls

Closes WIFI-2996

See merge request espressif/esp-idf!11734
2022-05-30 10:29:50 +08:00
Chen Yudong
4bf7e1944d CI: add esp32c2 SSC build jobs 2022-05-30 10:18:20 +08:00
Jiang Jiang Jian
fb7994ba06 Merge branch 'feature/remove_disable_gcc8_warns' into 'master'
build: remove COMPILER_DISABLE_GCC8_WARNINGS option

See merge request espressif/esp-idf!16941
2022-05-30 09:42:17 +08:00
Jakob Hasse
ad184e979a refactor (nvs)!: New interface for iterator functions
Closes https://github.com/espressif/esp-idf/issues/7826

* nvs_entry_find(), nvs_entry_next() and nvs_entry_info()
  return error codes now
* nvs_entry_find() and nvs_entry_next() access/modify iterator via
  parameters, instead of returning an new iterator.

Added appropriate documentation in Chinese and English
2022-05-30 09:28:42 +08:00
Darian Leung
daa950d9ed freertos: Replace portSET_INTERRUPT_MASK_FROM_ISR() call for SMP
The behavior of portSET_INTERRUPT_MASK_FROM_ISR() has changed in SMP FreeRTOS. It's
previous behavior is now implemented in portDISABLE_INTERRUPTS() and portRESTORE_INTERRUPTS().

This commit replaces all portSET_INTERRUPT_MASK_FROM_ISR() and portCLEAR_INTERRUPT_MASK_FROM_ISR()
calls with portDISABLE_INTERRUPTS() and portRESTORE_INTERRUPTS() respectively
2022-05-30 06:11:24 +08:00
Jiang Jiang Jian
769bc9b2d2 Merge branch 'bugfix/wifi_fix_adapter_argument_types' into 'master'
esp_wifi: make int types consistent

See merge request espressif/esp-idf!18222
2022-05-30 01:17:35 +08:00
Martin Vychodil
d1ec5580ee Merge branch 'nvs/remove_asserts' into 'master'
change: NVS assertions as runtime errorcodes

Closes IDF-3025

See merge request espressif/esp-idf!17739
2022-05-30 01:07:25 +08:00
Roland Dobai
a2d5041492 Merge branch 'feat/idf_tools_migrate_to_venv' into 'master'
Tools: Use built-in venv instead of virtualenv for creating Python environments

Closes IDF-4538

See merge request espressif/esp-idf!18249
2022-05-29 22:20:35 +08:00
Jiang Jiang Jian
6a27983fc9 Merge branch 'feature/nimble_spp_multiple_profile_conn' into 'master'
NimBLE SPP multiple profile connection

Closes IDFGH-7001

See merge request espressif/esp-idf!17660
2022-05-29 19:24:08 +08:00
Jack
47909a76c0 esp_wifi: make int types consistent for esp32c2 2022-05-29 18:59:13 +08:00
Darian
e1915907bb Merge branch 'bugfix/update_tlsp_del_cb_tests' into 'master'
FreeRTOS: Fix TLSP deletion callback tests

Closes IDF-5071

See merge request espressif/esp-idf!18233
2022-05-29 18:42:53 +08:00
Anton Maklakov
282c9ab1e1 esp_wifi: make int types consistent 2022-05-29 18:42:09 +08:00
Jiang Jiang Jian
0e94779b2e Merge branch 'feature/support_esp32c2_wifi_new' into 'master'
Bringup ESP32C2 Wi-Fi

Closes IDF-3905

See merge request espressif/esp-idf!18136
2022-05-29 18:25:24 +08:00
Jiang Jiang Jian
4ed2e6130a Merge branch 'feature/add_l2cap_ertm_api' into 'master'
Component_bt:Add l2cap and sdp api

Closes IDF-4487

See merge request espressif/esp-idf!18034
2022-05-29 17:34:38 +08:00
Jiang Jiang Jian
ffbc25056c Merge branch 'feature/add_avdtp_delay_reporting' into 'master'
component_bt: add avdtp delay reporting

Closes BT-2308

See merge request espressif/esp-idf!17475
2022-05-29 17:03:36 +08:00
Anton Maklakov
70c12407d3 Merge branch 'bugfix/bt_fix_int_arguments' into 'master'
bt: make int types consistent

See merge request espressif/esp-idf!18223
2022-05-29 16:56:00 +08:00
Jiang Jiang Jian
368cb04194 Merge branch 'contrib/github_pr_8076' into 'master'
example: Synchronize includes in BLE walkthrough (GitHub PR)

Closes IDFGH-6417

See merge request espressif/esp-idf!17458
2022-05-29 14:31:09 +08:00
Jiang Jiang Jian
6884d98c23 Merge branch 'bugfix/add_bda_to_read_rmt_name_param' into 'master'
Bugfix/add bda to read rmt name param

Closes IDFGH-7459

See merge request espressif/esp-idf!18279
2022-05-29 14:13:39 +08:00
Isha Pardikar
4ab6aafecc Merge branch 'feature/nimble_spp_multiple_profile_conn' into 'master'
Added support for multiple profile connection in NimBLE SPP example.

Closes IDFGH-7001
2022-05-29 06:10:18 +00:00
Jiang Jiang Jian
f3922f1b7f Merge branch 'feature/flash_mmap_refactor' into 'master'
flash mmap: abstract R/W of MMU table instead of reg access

See merge request espressif/esp-idf!16882
2022-05-29 13:56:37 +08:00
Yuan Jian Min
a574652f79 Merge branch 'bugfix/fix_lwip_kconfig' into 'master'
fix(Kconfig): Fix lw-ip Kconfig display garbled characters

See merge request espressif/esp-idf!18264
2022-05-29 12:35:53 +08:00
Kapil Gupta
777b2caa1c wpa_supplicant: Move ETS/ESP timers to eloop 2022-05-29 09:32:16 +05:30
Jiang Jiang Jian
6798494a05 Merge branch 'contrib/github_pr_8972' into 'master'
Fix Typo in bluedroid spp client readme (GitHub PR)

Closes IDFGH-7392

See merge request espressif/esp-idf!18200
2022-05-29 11:43:21 +08:00
Jack
74e0096472 relax memory leak threshold for some wifi test case 2022-05-29 10:38:54 +08:00
wangmengyang
1423d02cb0 Added BT_SDP API reference document 2022-05-28 23:34:21 +00:00
xiongweichao
b2987c1e94 Added BT_L2CAP API reference document 2022-05-28 23:34:21 +00:00
xiongweichao
7624d5dd93 add l2cap client demo 2022-05-28 23:34:21 +00:00
xiongweichao
52656ad582 add l2cap server demo 2022-05-28 23:34:21 +00:00
xiongweichao
b777a53fe8 support add and search raw sdp record 2022-05-28 23:34:21 +00:00
xiongweichao
4faf4e760a sdp support create and search PBAPC record 2022-05-28 23:34:21 +00:00
xiongweichao
a317cb1b0a Split jv_rfcomm and jv_l2cap 2022-05-28 23:34:21 +00:00
xiongweichao
740dc8795d rfcomm supports the use of ERTM 2022-05-28 23:34:21 +00:00
xiongweichao
1d9fd4707a add sdp api 2022-05-28 23:34:21 +00:00
xiongweichao
4719db7047 add l2cap api 2022-05-28 23:34:21 +00:00
xiongweichao
e2e74e2b8b Modify the format of esp_a2dp_api.h comments 2022-05-28 23:31:45 +00:00
xiongweichao
f321d62696 Modify a2dp demo 2022-05-28 23:31:45 +00:00
xiongweichao
b0551ef456 add source handle the delay report 2022-05-28 23:31:45 +00:00
xiongweichao
9126e4f07b add sink send delay reporting 2022-05-28 23:31:45 +00:00
Matus Fabo
58cca07104 add: Kconfig assert or errorcode option
add: private include header
add: macro encapsulation for assertion or error check
add: ESP_FAIL return code documentation in public headers
change: replaced all assertions by NVS_ASSERT_OR_RETURN macro
change: few internal function return values from void to esp_err_t
change: ESP_ERR_NVS_VALUE_TOO_LONG macro comment
2022-05-28 20:29:05 +02:00
Jiang Jiang Jian
2042840974 Merge branch 'bugfix/sae_pmk_caching_issue' into 'master'
esp_wifi: Do not use pmkid caching when SSID is changed

Closes WIFI-4422

See merge request espressif/esp-idf!18244
2022-05-29 00:18:19 +08:00
Jack
7a8b63869f deinit BB MAC back memory when they are not used 2022-05-29 00:13:32 +08:00
Martin Gano
67920a03dc Merge branch 'feature/add-chaining-fatfsparse' into 'master'
fatfs: enable cluster chaining for fatfsparse.py

Closes IDF-4975

See merge request espressif/esp-idf!18069
2022-05-28 22:31:36 +08:00
Wu Zheng Hui
d3fa6e3a15 Merge branch 'bugfix/update_efuse_name' into 'master'
efuse: update efuse name

See merge request espressif/esp-idf!18193
2022-05-28 22:03:17 +08:00
Wu Zheng Hui
b98622c624 efuse: update efuse name 2022-05-28 22:03:16 +08:00
Darian Leung
49256fe5c9 freertos: Refactor TLSP deletion callback test
- Add a new test case for SMP FreeRTOS
- Old test case is preserved. To be removed in the future
2022-05-28 21:36:39 +08:00
Darian Leung
64469affcd freertos: Fix TLSP deletion callback log
Currently, portCLEAN_UP_TCB() is called in a critical section. This commit updates
vPortTLSPointersDelCb() to use an EARLY log to prevent a crash.
2022-05-28 21:36:39 +08:00
Darian Leung
ef6afa1324 freertos: Refactor eTaskGetState() unit test
This commit refactors the eTaskGetState() unit test to work on FreeRTOS SMP
2022-05-28 21:36:23 +08:00
Alexey Lapshin
587949b3a5 tools: update gdb version to '11.2_20220529' 2022-05-28 15:16:20 +04:00
Darian
f3d06ad78d Merge branch 'bugfix/fix_SysTickIsrHandler_casting' into 'master'
HAL: Fix systimer counter value bit field

Closes IDF-5132

See merge request espressif/esp-idf!18252
2022-05-28 18:31:03 +08:00
jingli
1781ce3b98 further fix rtc attr for esp32c2 2022-05-28 08:52:55 +00:00
Jessy Chen
7b9b448041 esp_wifi: optimize wifi kconfig 2022-05-28 08:52:55 +00:00
liuning
e0decf4839 esp_wifi: fully support connectionless traffic with ps and coex 2022-05-28 08:52:55 +00:00
Jessy Chen
0ae391ef07 esp_wifi: enable FTM for esp32c2 & fix pre-commit check 2022-05-28 08:52:55 +00:00
Jessy Chen
60cbbffc74 esp_phy: optimize esp32c2 tx power control 2022-05-28 08:52:55 +00:00
Zhang Junhao
31f9292f90 feat: disable mbedtls rom code on master 2022-05-28 08:52:55 +00:00
Zhang Jun Hao
fcf8c84ad5 fix potential leak of memory check error 2022-05-28 08:52:55 +00:00
jiangguangming
c7beae1d6a newlib: 64-bits time_t test pass
please keep in mind that don't use nano-foramt printf for 64-bits
2022-05-28 08:52:55 +00:00
jiangguangming
4302e28698 newlib: use newlib nano format default 2022-05-28 08:52:55 +00:00
jingli
84628ba883 fix rtc attr for esp32c2 2022-05-28 08:52:55 +00:00
Jack
58d04eb203 esp_wifi: update esp32c2 wifi rom & lib 2022-05-28 08:52:55 +00:00
zhangyanjiao
e979e9701f esp_wifi: bringup esp32c2 wifi 2022-05-28 08:52:55 +00:00
Roland Dobai
ed795c86df Tools: Use built-in venv instead of virtualenv for creating Python environments 2022-05-28 06:43:14 +00:00
Marius Vikhammer
7dcd85b873 docs: update getting started guide for C2 2022-05-28 14:22:13 +08:00
Roland Dobai
c0a045793f Merge branch 'bugfix/return_idf_component_manager_build_property' into 'master'
build & config: Add IDF_COMPONENT_MANAGER build property

Closes PACMAN-356

See merge request espressif/esp-idf!18251
2022-05-28 13:58:34 +08:00
Laukik Hase
28ac0b12fb mbedtls: Remove deprecated options from mbedtls/esp_config.h
- Removed options related to RC4 ciphersuite, SSL3 and TLS1
  (as per mbedtls v3.1.0)
2022-05-28 10:21:06 +05:30
Roland Dobai
bdcb6715b5 Merge branch 'bugfix/mkdfu_flash_parameters' into 'master'
mkdfu.py: Support setting flash parameters

Closes IDF-4820

See merge request espressif/esp-idf!18269
2022-05-28 03:22:10 +08:00
radim.karnis
d2c918f407 mkdfu.py: Support setting flash parameters 2022-05-27 15:44:56 +02:00
Anton Maklakov
63ed392cac Merge branch 'bugfix/upd_debug_options' into 'master'
build & tools: update debug options for new GCC

Closes GCC-217

See merge request espressif/esp-idf!16956
2022-05-27 20:45:55 +08:00
Ivan Grokhotkov
a14e14f37a Merge branch 'feature/docker_build_gh_actions' into 'master'
ci: move Docker image builds to Github, plus other improvements

Closes IDFCI-1264 and IDFGH-6264

See merge request espressif/esp-idf!18256
2022-05-27 19:56:29 +08:00
jingli
ae127b04cd fix ld err since esp32c2 do not suport config gpio of spi flash via efuse 2022-05-27 19:29:38 +08:00
jingli
e70c434780 fix compile error for esp32c2, since esp32c2 no longer support RTC fast mem 2022-05-27 19:29:38 +08:00
jingli
27edaaef91 add wakeup enable for bt 2022-05-27 19:29:38 +08:00
jingli
db102da7c6 update sleep params for esp32c2 2022-05-27 19:29:38 +08:00
jingli
9eec740a16 enable external 32k osc for esp32c2 2022-05-27 19:29:29 +08:00
Roland Dobai
e096374560 Merge branch 'bugfix/disable_extensions_idfpy_tests' into 'master'
Tools: Make idf.py tests independent on extra extensions

Closes PACMAN-359

See merge request espressif/esp-idf!18275
2022-05-27 18:57:32 +08:00
jingli
efd5376fc0 fix power_save demo 2022-05-27 18:37:11 +08:00
Michael (XIAO Xufeng)
9f5c03dc67 Merge branch 'feat/elf_unit_test_parser' into 'master'
ci: extract ElfUnitTestParser allowing resolve elf offline

See merge request espressif/esp-idf!18205
2022-05-27 18:03:13 +08:00
Sergei Silnov
360183dd8d Tools: Make idf.py tests independent on extra extensions 2022-05-27 10:45:27 +02:00
Anton Maklakov
9cc2ce9f7c build: fallback to dwarf-4 format because of lesser binary size (dwarf-5 is by default in GCC 11) 2022-05-27 15:10:22 +07:00
Anton Maklakov
51c22d3b8b tools: GCC 11 uses both '.debug_line_str' and '.debug_str' sections 2022-05-27 15:06:56 +07:00
Anton Maklakov
cfa3e68d1b bt: esp32s3, make int types consistent 2022-05-27 08:03:54 +00:00
Anton Maklakov
877dc3e304 bt: make int types consistent 2022-05-27 08:03:54 +00:00
Harshit Malpani
a1810c5066 ci: increase parallel count for build_pytest_examples_esp32 2022-05-27 10:31:21 +05:30
Harshit Malpani
e9201edab8 .gitlab-ci.yml: Add websocket-client depedency for pytest examples 2022-05-27 10:31:21 +05:30
Harshit Malpani
5a51af523c https examples pytest migration 2022-05-27 10:27:00 +05:30
Anton Maklakov
b9a549c80b build: remove COMPILER_DISABLE_GCC8_WARNINGS, no longer relevant 2022-05-27 11:40:40 +07:00
yuanjm
0ae030d0ca fix(Kconfig): Fix lw-ip Kconfig display garbled characters 2022-05-27 02:48:45 +00:00
Marius Vikhammer
9177e9fb37 Merge branch 'bugfix/cpu_cycle_count_not_iram' into 'master'
HAL: place cpu_ll_get_cycle_count in IRAM

Closes IDFGH-7431

See merge request espressif/esp-idf!18260
2022-05-27 10:40:50 +08:00
Tomas Rezucha
3b7018923e Merge branch 'docs/i2c_thread_safety' into 'master'
docs: Fix I2C thread-safety

Closes IDF-5034

See merge request espressif/esp-idf!18172
2022-05-27 08:24:13 +08:00
Zim Kalinowski
2c9cd8e307 Merge branch 'feature/remove_target_cmake' into 'master'
build-system: remove target component

Closes IDF-3091 and IDF-3581

See merge request espressif/esp-idf!18131
2022-05-27 06:55:25 +08:00
keymoon
3027aa84be assign value to uninitialized bt_addr field 2022-05-27 01:07:06 +09:00
Roland Dobai
a5ebf0c3e7 Merge branch 'feature/esptool_v4' into 'master'
tools: Use esptool v4

See merge request espressif/esp-idf!18098
2022-05-26 23:35:17 +08:00
keymoon
2c4b135be6 add address field to read_rmt_name_param 2022-05-26 23:24:56 +09:00
radim.karnis
3e08f355b6 tools: Use esptool v4 2022-05-26 13:59:50 +00:00
Darian Leung
c45784b8c4 hal: Fix systimer counter value bit field
This commit fixes the systimer_counter_value_t by adding a resreved field so that the
type fills 64-bits.

Without the reserved field, when compiling with -O0 optimization, the unoccupied high
bits would not be initalized by the compiler, leading to systimer_hal_get_counter_value()
returning a garbage value.
2022-05-26 12:56:25 +00:00
Fu Hanxi
73be74fd71 Merge branch 'ci/fix_protobuf_version' into 'master'
ci: fix protobuf 4.0 incompatible issue

See merge request espressif/esp-idf!18259
2022-05-26 20:07:06 +08:00
Sergei Silnov
487603b51f build & config: Add IDF_COMPONENT_MANAGER build property 2022-05-26 12:48:27 +02:00
Kapil Gupta
0cdad0a002 wpa_supplicant: Add wrappers for FreeRTOS APIs 2022-05-26 15:23:21 +05:30
Jiang Jiang Jian
37596b4dd8 Merge branch 'feature/wps_registrar_support' into 'master'
wpa_supplicant: wps registrar support

See merge request espressif/esp-idf!17659
2022-05-26 17:05:00 +08:00
David Čermák
6f3d021d60 Merge branch 'bugfix/esp_netif_ip6_multicast_api' into 'master'
esp_netif: Fix inversion error in leave_ipv6 api (GitHub PR)

Closes IDFGH-7412

See merge request espressif/esp-idf!18184
2022-05-26 15:57:00 +08:00
Yuan Jian Min
62182e1767 Merge branch 'feature/add_mld6_flag_for_eth' into 'master'
feat(netif): Add NETIF_FLAG_MLD6 flag for eth netif

Closes IDFGH-6983

See merge request espressif/esp-idf!18173
2022-05-26 15:40:09 +08:00
Marius Vikhammer
415ab25a49 HAL: place cpu_ll_get_cycle_count in IRAM
Closes https://github.com/espressif/esp-idf/issues/9008
2022-05-26 14:42:41 +08:00
Fu Hanxi
e0a41cd816 ci: fix protobuf 4.0 incompatible issue 2022-05-26 14:42:16 +08:00
morris
febe329ae5 Merge branch 'docs/fix_linker_script_table' into 'master'
docs: fix linker-script-generation figure

See merge request espressif/esp-idf!18240
2022-05-26 10:52:27 +08:00
Fu Hanxi
788ac3989b Merge branch 'fix/panic_test' into 'master'
fix: panic test

See merge request espressif/esp-idf!18239
2022-05-26 10:09:15 +08:00
Ivan Grokhotkov
212cbc3fb6 tools/docker: add README.md file to be displayed on Docker Hub
Closes https://github.com/espressif/esp-idf/issues/7933
2022-05-26 03:44:13 +02:00
Ivan Grokhotkov
6dc52d4425 ci: build and push Docker images in Github actions, add arm64 platform
Replaces the previously used Docker Hub autobuild infrastructure.
This allows for more flexible configuration of the build process,
at the expense of some extra maintenance of CI workflow files
required.
2022-05-26 03:44:13 +02:00
Ivan Grokhotkov
ec96adae2b docs: document build arguments of the Docker image 2022-05-26 03:31:22 +02:00
Ivan Grokhotkov
a8904787fa tools/docker: add IDF_CLONE_SHALLOW and IDF_INSTALL_TARGETS arguments
These two arguments can be used to reduce the size of the Docker
image:

- Setting IDF_CLONE_SHALLOW enables shallow cloning.
- Setting IDF_INSTALL_TARGETS to the comma separated list of targets
  results in toolchains being installed only for these targets.
2022-05-26 03:31:22 +02:00
Darian
3b57f6d40c Merge branch 'bugfix/task_wdt_freertos_smp_unicore_build' into 'master'
esp_system: FIx TWDT SMP FreeRTOS unicore build error

See merge request espressif/esp-idf!18241
2022-05-26 09:20:33 +08:00
Song Ruo Jing
cf32e49aeb Merge branch 'refactor/cleanup_rtc_h' into 'master'
clk_tree: Prework2 of introducing clock subsystem control

Closes IDF-4934

See merge request espressif/esp-idf!17861
2022-05-26 09:16:47 +08:00
Michael (XIAO Xufeng)
cd6056c9cd ci: extract ElfUnitTestParser allowing resolve elf offline 2022-05-26 01:40:52 +08:00
Mahavir Jain
c6e2ae76a9 Merge branch 'esp32c2/IDRAM_PMP_split' into 'master'
esp32c2: Enable IRAM/DRAM split using PMP

Closes IDF-3837

See merge request espressif/esp-idf!18156
2022-05-26 00:47:49 +08:00
Martin Gano
8ef66536ed fatfsparse.py: add cluster chaining support to enable reading longer-than-sector files
Closes IDF-4975
2022-05-25 15:49:24 +02:00
Roland Dobai
64b6733349 Merge branch 'refactor/change_copyright_in_tools' into 'master'
idf.py: Change copyright in tools code owner's files

See merge request espressif/esp-idf!18215
2022-05-25 18:58:15 +08:00
Darian
0fa1a63c45 Merge branch 'ci/fix_freertos_smp_build_system_test' into 'master'
ci: Fix failing build system test when FreeRTOS SMP is enabled

See merge request espressif/esp-idf!18245
2022-05-25 17:43:31 +08:00
Kapil Gupta
1cf54db433 esp_wifi: Changes to not use pmkid caching when SSID is changed 2022-05-25 15:11:26 +05:30
Darian Leung
887421bb49 ci: Fix failing build system test when FreeRTOS SMP is enabled
Build system tests check that xtensa_vectors.S is rebuilt in some of the CMake build system
tests. However, the path of this file may change when FreeRTOS SMP is enabled.

This commit fixes the CMake build system test by selecting another ".S" file who's path
does not change based on configuration.
2022-05-25 16:31:34 +08:00
Tomas Rezucha
b6771b7f83 docs: Fix I2C thread-safety 2022-05-25 07:22:02 +00:00
Darian Leung
8af172ec46 esp_system: FIx TWDT SMP FreeRTOS unicore build error
When configNUM_CORES = 1, vTaskCoreAffinityGet() is not defined. This
commit fixes the TWDT to omit calls to vTaskCoreAffinityGet() when building
for unicore.
2022-05-25 13:51:17 +08:00
Anton Maklakov
8f6534165a docs: fix linker-script-generation figure 2022-05-25 12:10:25 +07:00
Fu Hanxi
b2f107b76c fix: espcoredump without project_description.json in ci 2022-05-25 12:00:13 +08:00
Fu Hanxi
a5bb129c37 ci: skip auto parse coredump 2022-05-25 11:28:29 +08:00
Fu Hanxi
d2aae6d53a fix: panic test case test_task_wdt 2022-05-25 10:30:29 +08:00
morris
7642be45ef Merge branch 'bugfix/c2_efuse_fix_error_reg' into 'master'
efuse_hal(esp32c2): Fix error bits for BLOCK0

See merge request espressif/esp-idf!18219
2022-05-25 04:24:55 +08:00
Ivan Grokhotkov
4d9e141201 Merge branch 'bugfix/freertos_smp_no_affinity' into 'master'
Freertos SMP: fix wrong no affinity value in kconfig

Closes IDF-5063, IDF-5064, IDF-5067, IDF-5068, IDF-5075, IDF-5076, IDF-5078, IDF-5079, IDF-5080, IDF-5082, IDF-5083, IDF-5084, IDF-5085, IDF-5086, IDF-5087, IDF-5088, IDF-5089, IDF-5090, IDF-5091, IDF-5092, IDF-5093, IDF-5094, IDF-5095, IDF-5096, IDF-5097, IDF-5098, IDF-5099, IDF-5100, IDF-5101, IDF-5102, IDF-5105, IDF-5106, IDF-5108, IDF-5109, IDF-5110, IDF-5111, IDF-5113, IDF-5114, IDF-5115, IDF-5116, IDF-5117, IDF-5118, IDF-5120, IDF-5121, IDF-5123, IDF-5125, IDF-5126, IDF-5128, and IDF-5129

See merge request espressif/esp-idf!18224
2022-05-25 03:05:33 +08:00
Rahul Tank
b45723b92e Merge branch 'bugfix/fix_esp_timer_crash_on_esp32h2' into 'master'
NimBLE: Enabled ESP Timer support for esp32h2

See merge request espressif/esp-idf!18072
2022-05-25 00:22:30 +08:00
Sachin Parekh
9a763f4ff2 esp32c2: Enable IRAM/DRAM split using PMP 2022-05-24 21:36:06 +05:30
songruojing
74c99a8a07 rtc_clk: Add alias for the clock tree related enum and macros for backwards compatibility 2022-05-24 22:59:51 +08:00
songruojing
729d70129a clk_tree: add initial docs for clock tree 2022-05-24 22:59:51 +08:00
morris
b26cd91537 doc: added clk_tree definitions to doc 2022-05-24 22:59:51 +08:00
songruojing
a5b09cf015 rtc_clk: Clean up some clock related enum and macro in soc/rtc.h, replace with new ones in
soc/clk_tree_defs.h
2022-05-24 22:59:41 +08:00
simon.chupin
1c5e596633 idf.py: Change copyright in tools dir 2022-05-24 14:01:50 +02:00
morris
64604dcfe0 Merge branch 'bugfix/s3_spi_pre' into 'master'
hal: Fix max value for clkdiv_pre in ESP32-S3 SPI master clock config

See merge request espressif/esp-idf!18213
2022-05-24 16:18:48 +08:00
Roland Dobai
4e0116a170 Merge branch 'fix/otatool_targets' into 'master'
app_update: Fix otatool targets

Closes IDF-4758 and IDFGH-7254

See merge request espressif/esp-idf!18190
2022-05-24 15:47:34 +08:00
Kapil Gupta
a6811adac7 wpa_supplicant: Add WPS registrar support for softAP mode 2022-05-24 12:11:53 +05:30
Kapil Gupta
df1a15e918 wpa_supplicant: Add upstream files for wps registrar 2022-05-24 12:11:53 +05:30
Mahavir Jain
5607018f28 Merge branch 'feature/ota_examples_pytest_migration' into 'master'
Migrate OTA example test to pytest framework

Closes IDFCI-1146

See merge request espressif/esp-idf!17767
2022-05-24 14:28:15 +08:00
morris
60d51bf6c8 Merge branch 'contrib/github_pr_9001' into 'master'
usbh_print_intf_desc prints wrong value for tbInterfaceClass (GitHub PR)

Closes IDFGH-7422 and IDFGH-9000

See merge request espressif/esp-idf!18198
2022-05-24 10:15:12 +08:00
Kevin (Lao Kaiyao)
94d7ae03da Merge branch 'bugfix/i2s_write_timeout_when_setting_clock' into 'master'
i2s: fixed write timeout while setting the clock

Closes IDFGH-7273 and IDFGH-7261

See merge request espressif/esp-idf!18201
2022-05-24 10:01:12 +08:00
Marius Vikhammer
15684fb5a0 Freertos SMP: fix wrong no affinity value in kconfig 2022-05-24 09:16:43 +08:00
Marius Vikhammer
cf1b222cac build system: removed target component
After refactoring the target components (e.g. esp32) no longer contained any real functionality.
What remained in these components have been moved elsewhere and the component itself deleted from the
build system.
2022-05-24 09:12:59 +08:00
Marius Vikhammer
d485f6add8 Merge branch 'feature/arch_build_property' into 'master'
build-system: add property for architecture (riscv/xtensa)

Closes IDF-1754

See merge request espressif/esp-idf!18127
2022-05-24 08:46:09 +08:00
Marius Vikhammer
425c9e5b0f Merge branch 'feature/target_kconfig_movement_3' into 'master'
kconfig: move remaining kconfig options out of target component

Closes IDF-3579

See merge request espressif/esp-idf!18046
2022-05-24 08:45:01 +08:00
KonstantinKondrashov
c74d442d03 efuse_hal: Fix error bits for BLOCK0
eFuse BLOCK0 has only one error reg.
2022-05-24 03:28:57 +08:00
Mahavir Jain
5d88df658d Merge branch 'feature/esp-tls_optimize_memory' into 'master'
esp-tls: add api to free client session

Closes AEG-57

See merge request espressif/esp-idf!18103
2022-05-24 02:53:59 +08:00
morris
1385d1b2f6 Merge branch 'bugfix/i2c_warning_always_true' into 'master'
i2c: fix 'comparision is always true' warning

See merge request espressif/esp-idf!18202
2022-05-24 02:21:34 +08:00
Shang Zhou
954069eb37 Merge branch 'docs/sync_up_api_reference' into 'master'
docs: Sync up line number for api reference files

Closes DOC-2572 and DOC-2573

See merge request espressif/esp-idf!18033
2022-05-23 21:27:56 +08:00
Gustavo Henrique Nihei
c946c80415 hal: Fix max value for clkdiv_pre in ESP32-S3 SPI master clock config
Signed-off-by: Gustavo Henrique Nihei <gustavo.nihei@espressif.com>
2022-05-23 10:13:07 -03:00
unknown
5a1c257f96 docs: sync up line number for api reference 2022-05-23 20:30:29 +08:00
Marius Vikhammer
0687daf2c8 kconfig: move remaining kconfig options out of target component
The kconfig options are moved to the component where they are used,
mostly esp_hw_support and esp_system.
2022-05-23 17:57:45 +08:00
Ivan Grokhotkov
179ea878c7 Merge branch 'bugfix/pre-commit_PyYAML_deps' into 'master'
Tools: fix PyYAML deps for pre-commit hook

See merge request espressif/esp-idf!18204
2022-05-23 17:55:18 +08:00
Mahavir Jain
b54fc7ecd5 Merge branch 'feature/esp_local_ctrl_example_pytest_migration' into 'master'
esp local ctrl example pytest migration

See merge request espressif/esp-idf!18051
2022-05-23 17:06:21 +08:00
Roland Dobai
2e9ac36fc8 Merge branch 'contrib/github_pr_8981' into 'master'
Tools: Add missing DTR/RTS set before serial port open on reconnect (GitHub PR)

Closes IDFGH-7403

See merge request espressif/esp-idf!18171
2022-05-23 16:32:08 +08:00
Mahavir Jain
b8e02c689d Merge branch 'bugfix/https_mbedtls_tls1_3' into 'master'
https_mbedtls: Prefer TLS 1.3 connection when enabled over TLS 1.2

Closes IDFGH-7380

See merge request espressif/esp-idf!18133
2022-05-23 16:29:25 +08:00
laokaiyao
a5f651ad71 i2s: Update FIFO direct access reg on ESP32 according to the TRM
Closes: https://www.github.com/espressif/esp-idf/issues/8862
2022-05-23 16:28:42 +08:00
laokaiyao
f523fbc73b i2s: Fixed divide 0 issue while setting PDM down sampling issue
Closes https://www.github.com/espressif/esp-idf/issues/8850
2022-05-23 16:28:42 +08:00
Li Jingyi
9b766b851a example: https_request update free client session api 2022-05-23 16:28:40 +08:00
Li Jingyi
6d58008119 esp-tls: add api to free client session
Free session with mbedtls api to avoid mem-leak
2022-05-23 16:28:40 +08:00
laokaiyao
f36ae3f603 i2s: fixed write timeout while setting the clock 2022-05-23 16:28:37 +08:00
Harshit Malpani
448b98d3bc Update relative link for example test in README.md 2022-05-23 13:11:22 +05:30
Harshit Malpani
877b00ab5f target-test.yml: Add job for tags related to ota tests 2022-05-23 13:11:21 +05:30
Harshit Malpani
989aeac11a pytest.ini: Add markers 2022-05-23 13:11:21 +05:30
Harshit Malpani
25f02efaa1 Migrate OTA example test to pytest framework 2022-05-23 13:11:21 +05:30
Anton Maklakov
95da3330c7 Tools: fix PyYAML deps for pre-commit hook
Fix 'error: Library stubs not installed for "yaml" (or incompatiblewith Python 3.9)'
2022-05-23 14:09:42 +07:00
Armando
8532d09259 cache: access error & illegal error ll functions 2022-05-23 15:00:47 +08:00
morris
3b2f8dfc0d Merge branch 'contrib/github_pr_8997' into 'master'
Clean up botched merge (GitHub PR)

Closes IDFGH-7419

See merge request espressif/esp-idf!18199
2022-05-23 14:41:26 +08:00
songruojing
436085de51 rtc_clk: fix potential "division by zero" in rtc_clk_cpu_freq_mhz_to_config (found by coverity scan) 2022-05-23 13:38:41 +08:00
Anton Maklakov
41bbea5124 i2c: fix 'comparision is always true' warning 2022-05-23 11:39:46 +07:00
Omar Chebib
2d84985baa Merge branch 'bugfix/i2c_notify_task_in_ISR' into 'master'
I2C: Fix a bug making the I2C task wait too long on an event

Closes IDFGH-7169

See merge request espressif/esp-idf!18027
2022-05-23 12:29:22 +08:00
Laukik Hase
6ad25f991d https_mbedtls: Prefer TLS 1.3 connection when enabled over TLS 1.2
Closes https://github.com/espressif/esp-idf/issues/8960
2022-05-23 09:51:57 +05:30
Omar Chebib
872a4311f2 I2C: Fix a bug making the I2C task wait too long on an event
The I2C ISR will now notify the task waiting on an event. Thus, the task can stop waiting on the event queue as soon as possible.
2022-05-23 02:02:00 +00:00
Nicholas Palmer
0f645e59b6 usbh_print_intf_desc prints wrong value for tbInterfaceClass (IDFGH-9000) 2022-05-21 15:54:21 -07:00
Kaushik Ghose
34369cd709 Clean up botched merge 2022-05-20 16:04:41 -04:00
Adam Múdry
b388321e3b fatfs: Disable UTF-16 filename encoding
UTF-16 is not supported in VFS and not covered by unit tests
2022-05-20 15:15:01 +02:00
Roland Dobai
457beeb530 app_update: Fix otatool targets
Fix a regression caused by 6b361d923c

Closes https://github.com/espressif/esp-idf/issues/8843
2022-05-20 14:10:08 +02:00
yuanjm
667a7c6cd0 feat(netif): Add NETIF_FLAG_MLD6 flag for eth netif
Closes https://github.com/espressif/esp-idf/issues/8602
2022-05-20 11:26:27 +00:00
jiangguangming
9719979e4f UT: add a timeout-tag to make the esp_flash UT ci pass 2022-05-20 16:46:28 +08:00
jiangguangming
42bc0b0643 soc: remove unused MMU related macros 2022-05-20 16:46:28 +08:00
jiangguangming
9c6afee12f flash mmap: abstract R/W MMU table instead of reg access 2022-05-20 16:46:27 +08:00
Marius Vikhammer
9362434c47 build-system: add property for architecture (riscv/xtensa)
riscv/xtensa is now a common component.
2022-05-20 09:00:32 +08:00
Richard Retanubun
bd3db823b1 Fixup inversion error causing error prints
ESP_RETURN_ON_FALSE(a, err_code, ...) macro

Will print and return err_code
if (unlikely(!(a)))

so "a" needs to state what we expect to be TRUE
which in this case means:

mld6_leavegroup_netif(...) == ERR_OK
2022-05-19 16:58:47 -04:00
Nonoo
f6e4140171 Tools: Add missing DTR/RTS set before serial port open on reconnect when --no-reset is used
This makes sure --no-reset works correctly when the monitor reconnects the serial port.
2022-05-19 08:24:50 +02:00
David Cermak
60fc1ae035 lwip: Removed incorrect-fix 358ee481 2022-05-18 17:11:35 +02:00
David Cermak
d50739adec lwip: forgotten ip4_route_src_hook to IRAM 2022-05-18 17:11:35 +02:00
David Cermak
e7f19f39bc lwip: Fix the CI 2022-05-18 17:11:35 +02:00
David Cermak
09aa24632a esp_netif: Support IPv6 autoconfig is enabled in menuconfig 2022-05-18 17:11:35 +02:00
David Cermak
a6154a5f10 lwip: Update default MEMP_NUM_SYS_TIMEOUT if timers on-demand 2022-05-18 17:11:35 +02:00
David Cermak
5d6afa3c4b dhcp: Implement additional dhcp options 2022-05-18 17:11:35 +02:00
David Cermak
1564e8d5a9 lwip: Implement DHCP hook supporting MTU option 2022-05-18 17:11:35 +02:00
David Cermak
5aa3be11fd dhcpserver: Minor #idfef fix 2022-05-18 17:11:35 +02:00
David Cermak
b6eb9002a8 add dhcp custom values 2022-05-18 17:11:35 +02:00
David Cermak
356bc603c4 lwip: Support DHCP restore last IP 2022-05-18 17:11:35 +02:00
David Cermak
7a04eb8d66 lwip: Reference specific ESP patches
Also adding ip4_napt.c to sources, as it's added by ESP-patches
2022-05-18 17:10:42 +02:00
David Cermak
53c009e626 lwip: Update socket API to include port-version of sockets/netdb
Added socket extention to the lwip hooks for implementing non-vanilla
{get/set}sockopts()
2022-05-18 17:10:42 +02:00
David Cermak
e909cd5219 tcp_transport/test: Fix localhost interface name
Per lwip spec it's two letter's name plus index, i.e. "lo0"
(the reason "lo" was accepted before was bug in lwip)
2022-05-18 17:10:42 +02:00
David Cermak
44a9620c17 esp_netif: Add thread safe pppapi set_auth API to esp-netif 2022-05-18 17:10:42 +02:00
David Cermak
dbc91f73e6 lwip: Use custom pbufs for eth and wifi port/netif 2022-05-18 17:10:42 +02:00
David Cermak
65bf5f2b10 lwip: Add mem-heap options to support ALLOCATION_FROM_SPIRAM_FIRST 2022-05-18 17:10:42 +02:00
David Cermak
06263efe0b lwip: Add IPv4 route hook to the esp32 port 2022-05-18 17:10:42 +02:00
David Cermak
808ac7427a lwip: Add freertos sys-arch port layer
Added sys_thread_sem_func(), sys_sem_signal_isr(), g_lwip_task
2022-05-18 17:10:42 +02:00
David Cermak
b0e4ae4a5e examples: Minor fixes in udp_nulticast socket examples
Make sure that IPv6 mapped IPv4 addresses are not used when using
vanilla lwip
2022-05-18 17:10:42 +02:00
David Cermak
5b471a1848 esp_netif/lwip: Implement basic support for vanilla-lwip (2.1.3-REL)
* Reference lwip-2.1.3-REL vanilla lwip version
* Use inherent NETIF callbacks instead of dhcp/ipv6/autoip
2022-05-18 17:10:42 +02:00
EcotechBrad
286bc45cdc Fix Typo in bluedroid spp client readme
`uart_wrire_bytes`  to `uart_write_bytes`
2022-05-17 10:42:34 -04:00
Harshit Malpani
63b1b1bd44 esp_local_ctrl example pytest migration 2022-05-17 15:23:22 +05:30
Rahul Tank
95db4bbf05 NimBLE: Enabled ESP Timer support for esp32h2 2022-05-17 12:49:40 +05:30
Jakob Hasse
dd3c5c3cbb doc (nvs_flash): improved NVS partition flash documentation
Closes https://github.com/espressif/esp-idf/issues/8196
2022-05-16 14:13:43 +08:00
František Nečas
7277e61672 example: Synchronize includes in BLE walkthrough
Previously, the includes in the initial walkthrough section were
different from the actual ones used includes in the code example.
Moreover, if one was following the walkthrough and only taking
inspiration from there rather than the code itself, with these includes,
the code wouldn't compile. Synchronize the source code file with the
walkthrough in this regard.

Signed-off-by: František Nečas <frantisek.necas@protonmail.com>
2021-12-14 00:42:10 +01:00
4458 changed files with 231584 additions and 84829 deletions

View File

@@ -149,18 +149,17 @@ exclude =
components/tinyusb,
components/unity/unity,
components/spiffs/spiffs,
examples/build_system/cmake/import_lib/main/lib/tinyxml2,
examples/peripherals/secure_element/atecc608_ecdsa/components/esp-cryptoauthlib,
# 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_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,
examples/provisioning/legacy/custom_config/components/custom_provisioning/python/custom_config_pb2.py,
per-file-ignores =
# Sphinx conf.py files use star imports to setup config variables

87
.github/workflows/docker.yml vendored Normal file
View File

@@ -0,0 +1,87 @@
name: docker
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
on:
push:
branches:
- 'master'
- 'release/*'
tags:
- 'v*.*'
env:
# Platforms to build the image for
BUILD_PLATFORMS: linux/amd64,linux/arm64
DOCKERHUB_REPO: ${{ github.repository_owner }}/idf
jobs:
docker:
# Disable the job in forks
if: ${{ github.repository_owner == 'espressif' }}
runs-on: ubuntu-latest
steps:
# Depending on the branch/tag, set CLONE_BRANCH_OR_TAG variable (used in the Dockerfile
# as a build arg) and TAG_NAME (used when tagging the image).
#
# The following 3 steps cover the alternatives (tag, release branch, master branch):
- name: Set variables (tags)
if: ${{ github.ref_type == 'tag' }}
run: |
echo "CLONE_BRANCH_OR_TAG=$GITHUB_REF_NAME" >> $GITHUB_ENV
echo "TAG_NAME=$GITHUB_REF_NAME" >> $GITHUB_ENV
- name: Set variables (release branches)
if: ${{ github.ref_type == 'branch' && startsWith(github.ref_name, 'release/') }}
run: |
echo "CLONE_BRANCH_OR_TAG=$GITHUB_REF_NAME" >> $GITHUB_ENV
echo "TAG_NAME=release-${GITHUB_REF_NAME##release/}" >> $GITHUB_ENV
- name: Set variables (main branch)
if: ${{ github.ref_type == 'branch' && github.ref_name == 'master' }}
run: |
echo "CLONE_BRANCH_OR_TAG=master" >> $GITHUB_ENV
echo "TAG_NAME=latest" >> $GITHUB_ENV
# Display the variables set above, just in case.
- name: Check variables
run: |
echo "CLONE_BRANCH_OR_TAG: $CLONE_BRANCH_OR_TAG"
echo "CHECKOUT_REF: $CHECKOUT_REF"
echo "TAG_NAME: $TAG_NAME"
# The following steps are the standard boilerplate from
# https://github.com/marketplace/actions/build-and-push-docker-images
- name: Checkout
uses: actions/checkout@v3
- name: Login to Docker Hub
uses: docker/login-action@v2
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_TOKEN }}
- name: Set up QEMU for multiarch builds
uses: docker/setup-qemu-action@v2
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v2
- name: Build and push
uses: docker/build-push-action@v3
with:
context: tools/docker
push: true
tags: ${{ env.DOCKERHUB_REPO }}:${{ env.TAG_NAME }}
platforms: ${{ env.BUILD_PLATFORMS }}
build-args: |
IDF_CLONE_URL=${{ github.server_url }}/${{ github.repository }}.git
IDF_CLONE_BRANCH_OR_TAG=${{ env.CLONE_BRANCH_OR_TAG }}
- name: Update Docker Hub repository description (master branch)
if: ${{ github.ref_type == 'branch' && github.ref_name == 'master' }}
uses: peter-evans/dockerhub-description@v3
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
# Token based authentication is not supported here:
# https://github.com/peter-evans/dockerhub-description/issues/10
# https://github.com/docker/roadmap/issues/115#issuecomment-891694974
password: ${{ secrets.DOCKERHUB_PASSWORD }}
repository: ${{ env.DOCKERHUB_REPO }}
readme-filepath: ./tools/docker/README.md

14
.gitignore vendored
View File

@@ -21,15 +21,20 @@ GPATH
# MacOS directory files
.DS_Store
# cache dir
.cache/
# Components Unit Test Apps files
components/**/build
components/**/build/
components/**/build_*_*/
components/**/sdkconfig
components/**/sdkconfig.old
# Example project files
examples/**/build/
examples/**/build_esp*_*/
examples/**/sdkconfig
examples/**/sdkconfig.old
examples/**/build
# Doc build artifacts
docs/_build/
@@ -43,7 +48,7 @@ docs/_static/NotoSansSC-Regular.otf
tools/unit-test-app/sdkconfig
tools/unit-test-app/sdkconfig.old
tools/unit-test-app/build
tools/unit-test-app/builds
tools/unit-test-app/build_*_*/
tools/unit-test-app/output
tools/unit-test-app/test_configs
@@ -51,7 +56,8 @@ tools/unit-test-app/test_configs
log_ut_cmake
# test application build files
tools/test_apps/**/build
tools/test_apps/**/build/
tools/test_apps/**/build_*_*/
tools/test_apps/**/sdkconfig
tools/test_apps/**/sdkconfig.old

View File

@@ -1,4 +1,5 @@
stages:
- upload_cache
- pre_check
- build
- assign_test
@@ -53,6 +54,10 @@ variables:
BATCH_BUILD: "1"
V: "0"
CHECKOUT_REF_SCRIPT: "$CI_PROJECT_DIR/tools/ci/checkout_project_ref.py"
PYTHON_VER: 3.7.10
CLANG_TIDY_RUNNER_PROJ: 2107 # idf/clang-tidy-runner
IDF_BUILD_APPS_PROJ: 2818 # fuhanxi/idf-build-apps
# Docker images
BOT_DOCKER_IMAGE_TAG: ":latest"
@@ -74,7 +79,6 @@ variables:
TEST_ENV_CONFIG_REPO: "https://gitlab-ci-token:${BOT_TOKEN}@${CI_SERVER_HOST}:${CI_SERVER_PORT}/qa/ci-test-runner-configs.git"
CI_AUTO_TEST_SCRIPT_REPO_URL: "https://gitlab-ci-token:${BOT_TOKEN}@${CI_SERVER_HOST}:${CI_SERVER_PORT}/qa/auto_test_script.git"
CI_AUTO_TEST_SCRIPT_REPO_BRANCH: "ci/v4.1"
PYTEST_EMBEDDED_VERSION: "0.7.0"
# cache python dependencies
PIP_CACHE_DIR: "$CI_PROJECT_DIR/.cache/pip"
@@ -85,7 +89,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.v5.0.txt"
CI_PYTHON_CONSTRAINT_FILE: "espidf.constraints.v5.1.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.
@@ -97,12 +101,16 @@ variables:
CI_PYTHON_TOOL_BRANCH: ""
cache:
key: pip-cache
paths:
- .cache/pip
# pull only for most of the use cases since it's cache dir.
# Only set "pull-push" policy for "scan_test" since it would **possibly** install all pypi packages
policy: pull
# Only set "push" policy for "upload_cache" stage jobs
- key: pip-cache
paths:
- .cache/pip
policy: pull
- key: submodule-cache
paths:
- .cache/submodule_archives
policy: pull
.setup_tools_unless_target_test: &setup_tools_unless_target_test |
if [[ -n "$IDF_DONT_USE_MIRRORS" ]]; then
@@ -134,9 +142,15 @@ cache:
rm -rf ${CI_PYTHON_TOOL_REPO}
fi
.set_include_nightly_run: &set_include_nightly_run |
if echo "$CI_MERGE_REQUEST_LABELS" | egrep "^([^,\n\r]+,)*include_nightly_run(,[^,\n\r]+)*$"; then
export INCLUDE_NIGHTLY_RUN="1"
fi
before_script:
- source tools/ci/utils.sh
- is_based_on_commits $REQUIRED_ANCESTOR_COMMITS
- *set_include_nightly_run
- source tools/ci/setup_python.sh
- add_gitlab_ssh_keys
- source tools/ci/configure_ci_environment.sh
@@ -154,6 +168,7 @@ before_script:
- echo "Not setting up GitLab key, not fetching submodules"
- source tools/ci/utils.sh
- is_based_on_commits $REQUIRED_ANCESTOR_COMMITS
- *set_include_nightly_run
- source tools/ci/setup_python.sh
- source tools/ci/configure_ci_environment.sh
- *download_test_python_contraint_file
@@ -164,12 +179,14 @@ before_script:
- echo "Only load utils.sh"
- source tools/ci/utils.sh
- is_based_on_commits $REQUIRED_ANCESTOR_COMMITS
- *set_include_nightly_run
.before_script_integration_test:
before_script:
# need to install esptool, needn't install idf python env
- source tools/ci/utils.sh
- is_based_on_commits $REQUIRED_ANCESTOR_COMMITS
- *set_include_nightly_run
- source tools/ci/setup_python.sh
- add_gitlab_ssh_keys
- fetch_submodules
@@ -185,6 +202,7 @@ before_script:
before_script:
- source tools/ci/utils.sh
- is_based_on_commits $REQUIRED_ANCESTOR_COMMITS
- *set_include_nightly_run
- export IDF_TOOLS_PATH="${HOME}/.espressif_runner_${CI_RUNNER_ID}_${CI_CONCURRENT_ID}"
- *download_test_python_contraint_file
- $IDF_PATH/tools/idf_tools.py install-python-env
@@ -193,7 +211,7 @@ before_script:
# This adds tools (compilers) and the version-specific Python environment to PATH
- *setup_tools_unless_target_test
# Install packages required by CI scripts into IDF Python environment
- pip install -r $IDF_PATH/tools/ci/python_packages/ttfw_idf/requirements.txt
- pip install -r $IDF_PATH/tools/requirements/requirements.ci.txt
- source tools/ci/configure_ci_environment.sh
# Part of tools/ci/setup_python.sh; we don't use pyenv on macOS, so can't run the rest of the script.
- export PYTHONPATH="$IDF_PATH/tools:$IDF_PATH/tools/ci/python_packages:$PYTHONPATH"
@@ -203,22 +221,31 @@ before_script:
before_script:
- source tools/ci/utils.sh
- is_based_on_commits $REQUIRED_ANCESTOR_COMMITS
- *set_include_nightly_run
- source tools/ci/setup_python.sh
- add_gitlab_ssh_keys
- source tools/ci/configure_ci_environment.sh
- *setup_tools_unless_target_test
- fetch_submodules
- *download_test_python_contraint_file
- $IDF_PATH/tools/idf_tools.py install-python-env
# TODO: remove this, IDFCI-1207
- pip install esptool -c ~/.espressif/${CI_PYTHON_CONSTRAINT_FILE}
- pip install
"pytest-embedded-serial-esp~=$PYTEST_EMBEDDED_VERSION"
"pytest-embedded-idf~=$PYTEST_EMBEDDED_VERSION"
"pytest-embedded-qemu~=$PYTEST_EMBEDDED_VERSION"
pytest-rerunfailures
scapy
google-api-python-client
# only need ci and pytest related packages, ttfw requirements would be mocked if not installed
- $IDF_PATH/tools/idf_tools.py install-python-env --features pytest,ci
- eval "$($IDF_PATH/tools/idf_tools.py export)" # use idf venv instead
.before_script_build_jobs:
before_script:
- source tools/ci/utils.sh
- is_based_on_commits $REQUIRED_ANCESTOR_COMMITS
- *set_include_nightly_run
- source tools/ci/setup_python.sh
- add_gitlab_ssh_keys
- source tools/ci/configure_ci_environment.sh
- *setup_tools_unless_target_test
- fetch_submodules
- *download_test_python_contraint_file
# only need ci and pytest related packages, ttfw requirements would be mocked if not installed
- $IDF_PATH/tools/idf_tools.py install-python-env --features pytest,ci
- eval "$($IDF_PATH/tools/idf_tools.py export)" # use idf venv instead
- export EXTRA_CFLAGS=${PEDANTIC_CFLAGS}
- export EXTRA_CXXFLAGS=${PEDANTIC_CXXFLAGS}
@@ -233,6 +260,7 @@ default:
include:
- '.gitlab/ci/rules.yml'
- '.gitlab/ci/upload_cache.yml'
- '.gitlab/ci/docs.yml'
- '.gitlab/ci/static-code-analysis.yml'
- '.gitlab/ci/pre_check.yml'

View File

@@ -69,17 +69,15 @@
/components/app_trace/ @esp-idf-codeowners/tools
/components/app_update/ @esp-idf-codeowners/system @esp-idf-codeowners/app-utilities
/components/asio/ @esp-idf-codeowners/network
/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
/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/esp32*/ @esp-idf-codeowners/system
/components/esp_adc_cal/ @esp-idf-codeowners/peripherals
/components/esp_adc/ @esp-idf-codeowners/peripherals
/components/esp_common/ @esp-idf-codeowners/system
/components/esp_eth/ @esp-idf-codeowners/network
/components/esp_event/ @esp-idf-codeowners/system
@@ -95,6 +93,7 @@
/components/esp_netif/ @esp-idf-codeowners/network
/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
/components/esp_psram/ @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_serial_slave_link/ @esp-idf-codeowners/peripherals
@@ -116,8 +115,7 @@
/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 @esp-idf-codeowners/security
/components/mdns/ @esp-idf-codeowners/network
/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/tools
/components/nvs_flash/ @esp-idf-codeowners/storage
@@ -125,7 +123,7 @@
/components/partition_table/ @esp-idf-codeowners/system
/components/perfmon/ @esp-idf-codeowners/tools
/components/protobuf-c/ @esp-idf-codeowners/app-utilities
/components/protocomm/ @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/sdmmc/ @esp-idf-codeowners/storage
@@ -140,7 +138,7 @@
/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
/components/wifi_provisioning/ @esp-idf-codeowners/app-utilities/provisioning
/components/wpa_supplicant/ @esp-idf-codeowners/wifi
/components/xtensa/ @esp-idf-codeowners/system
@@ -149,7 +147,7 @@
/docs/**/api-reference/network/ @esp-idf-codeowners/network
/docs/**/api-reference/peripherals/ @esp-idf-codeowners/peripherals
/docs/**/api-reference/protocols/ @esp-idf-codeowners/network @esp-idf-codeowners/app-utilities
/docs/**/api-reference/provisioning/ @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
@@ -160,6 +158,7 @@
/examples/bluetooth/ @esp-idf-codeowners/bluetooth
/examples/build_system/ @esp-idf-codeowners/build-config
/examples/common_components/ @esp-idf-codeowners/system
/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
@@ -169,21 +168,20 @@
/examples/peripherals/ @esp-idf-codeowners/peripherals
/examples/peripherals/usb/ @esp-idf-codeowners/peripherals @esp-idf-codeowners/peripherals/usb
/examples/protocols/ @esp-idf-codeowners/network @esp-idf-codeowners/app-utilities
/examples/provisioning/ @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/*_apps.py @esp-idf-codeowners/ci
/tools/ble/ @esp-idf-codeowners/app-utilities
/tools/catch/ @esp-idf-codeowners/ci
/tools/ci/ @esp-idf-codeowners/ci
/tools/cmake/ @esp-idf-codeowners/build-config
/tools/esp_prov/ @esp-idf-codeowners/app-utilities
/tools/find_build_apps/ @esp-idf-codeowners/ci
/tools/idf_size_yaml/ @esp-idf-codeowners/peripherals
/tools/kconfig*/ @esp-idf-codeowners/build-config
/tools/ldgen/ @esp-idf-codeowners/build-config

View File

@@ -19,6 +19,13 @@
- [Functions](#functions)
- [CI Job Related](#ci-job-related)
- [Shell Script Related](#shell-script-related)
- [Manifest File to Control the Build/Test apps](#manifest-file-to-control-the-buildtest-apps)
- [Grammar](#grammar)
- [Operands](#operands)
- [Operators](#operators)
- [Limitation:](#limitation)
- [How does it work?](#how-does-it-work)
- [Example](#example)
## General Workflow
@@ -224,3 +231,93 @@ To run these commands in shell script locally, place `source tools/ci/utils.sh`
- `info`: log in green color
- `run_cmd`: run the command with duration seconds info
- `retry_failed`: run the command with duration seconds info, retry when failed
## Manifest File to Control the Build/Test apps
`.build-test-rules.yml` file is a manifest file to control if the CI is running the build and test job or not. The Supported Targets table in `README.md` for apps would be auto-generated by `pre-commit` from the app's `.build-test-rules.yml`.
### Grammar
#### Operands
- Variables start with `SOC_`. The value would be parsed from components/soc/[TARGET]/include/soc/*_caps.h
- `IDF_TARGET`
- `INCLUDE_DEFAULT` (The default value of officially supported targets is 1, otherwise is 0)
- String, must be double-quoted. e.g. `"esp32"`, `"12345"`
- Integer, support decimal and hex. e.g. `1`, `0xAB`
- List with String and Integer inside, the type could be mixed. e.g. `["esp32", 1]`
#### Operators
- `==`, `!=`, `>`, `>=`, `<`, `<=`
- `and`, `or`
- `in`, `not in` with list
- parentheses
#### Limitation:
- all operators are binary operator. For more than two operands, you may use nested parentheses trick. For example,
- `A == 1 or (B == 2 and C in [1,2,3])`
- `(A == 1 and B == 2) or (C not in ["3", "4", 5])`
### How does it work?
By default, we enable build and test jobs for supported targets. In other words, if an app supports all supported targets, it does not need to be added in a manifest file. The manifest files are files that set the violation rules for apps.
three rules (disable rules are calculated after the `enable` rule):
- enable: run CI build/test jobs for targets that match any of the specified conditions only
- disable: will not run CI build/test jobs for targets that match any of the specified conditions
- disable_test: will not run CI test jobs for targets that match any of the specified conditions
Each key is a test folder. Will apply to all folders inside.
If one sub folder is in a special case, you can overwrite the rules for this folder by adding another entry for this folder itself. Each folder's rules are standalone, and will not inherit its parent's rules. (YAML inheritance is too complicated for reading)
For example in the following codeblock, only `disable` rule exists in `examples/foo/bar`. It's unaware of its parent's `enable` rule.
```yaml
examples/foo:
enable:
- if: IDF_TARGET == "esp32"
examples/foo/bar:
disable:
- if: IDF_TARGET == "esp32s2"
```
### Example
```yaml
examples/foo:
enable:
- if IDF_TARGET in ["esp32", 1, 2, 3]
- if IDF_TARGET not in ["4", "5", 6]
# should be run under all targets!
examples/bluetooth:
disable: # disable both build and tests jobs
- if: SOC_BT_SUPPORTED != 1
# reason is optional if there's no `temporary: true`
disable_test:
- if: IDF_TARGET == "esp32"
temporary: true
reason: lack of ci runners # required when `temporary: true`
examples/bluetooth/test_foo:
# each folder's settings are standalone
disable:
- if: IDF_TARGET == "esp32s2"
temporary: true
reason: no idea
# unlike examples/bluetooth, the apps under this folder would not be build nor test for "no idea" under target esp32s2
examples/get-started/hello_world:
enable:
- if: IDF_TARGET == "linux"
reason: this one only supports linux!
examples/get-started/blink:
enable:
- if: INCLUDE_DEFAULT == 1 or IDF_TARGET == "linux"
reason: This one supports all supported targets and linux
```

View File

@@ -7,12 +7,12 @@
SUBMODULES_TO_FETCH: "none"
artifacts:
paths:
- ${TEST_DIR}/test_configs
- ${BUILD_DIR}/artifact_index.json
- ${TEST_DIR}/test_configs/
- artifact_index.json
when: always
expire_in: 1 week
script:
- python tools/ci/python_packages/ttfw_idf/IDFAssignTest.py $TEST_TYPE $TEST_DIR -c $CI_TARGET_TEST_CONFIG_FILE -o $TEST_DIR/test_configs
- run_cmd python tools/ci/python_packages/ttfw_idf/IDFAssignTest.py $TEST_TYPE $TEST_DIR -c $CI_TARGET_TEST_CONFIG_FILE -o $TEST_DIR/test_configs
assign_example_test:
extends:
@@ -25,6 +25,9 @@ assign_example_test:
- job: build_examples_cmake_esp32s2
artifacts: false
optional: true
- job: build_examples_cmake_esp32c2
artifacts: false
optional: true
- job: build_examples_cmake_esp32c3
artifacts: false
optional: true
@@ -33,8 +36,7 @@ assign_example_test:
optional: true
variables:
TEST_TYPE: example_test
TEST_DIR: ${CI_PROJECT_DIR}/examples
BUILD_DIR: ${CI_PROJECT_DIR}/build_examples
TEST_DIR: examples
assign_custom_test:
extends:
@@ -47,6 +49,9 @@ assign_custom_test:
- job: build_test_apps_esp32s2
artifacts: false
optional: true
- job: build_test_apps_esp32c2
artifacts: false
optional: true
- job: build_test_apps_esp32c3
artifacts: false
optional: true
@@ -55,8 +60,7 @@ assign_custom_test:
optional: true
variables:
TEST_TYPE: custom_test
TEST_DIR: ${CI_PROJECT_DIR}/tools/test_apps
BUILD_DIR: ${CI_PROJECT_DIR}/build_test_apps
TEST_DIR: tools/test_apps
assign_unit_test:
extends:
@@ -67,16 +71,15 @@ assign_unit_test:
optional: true
- job: build_esp_idf_tests_cmake_esp32s2
optional: true
- job: build_esp_idf_tests_cmake_esp32c2
optional: true
- job: build_esp_idf_tests_cmake_esp32c3
optional: true
- job: build_esp_idf_tests_cmake_esp32s3
optional: true
variables:
TEST_TYPE: unit_test
TEST_DIR: ${CI_PROJECT_DIR}/components/idf_test/unit_test
BUILD_DIR: ${CI_PROJECT_DIR}/tools/unit-test-app/builds
script:
- python tools/ci/python_packages/ttfw_idf/IDFAssignTest.py $TEST_TYPE $TEST_DIR -c $CI_TARGET_TEST_CONFIG_FILE -o $TEST_DIR/test_configs
TEST_DIR: components/idf_test/unit_test
assign_integration_test:
extends:

View File

@@ -15,138 +15,178 @@
.build_pytest_template:
extends:
- .build_template
- .before_script_pytest
- .before_script_build_jobs
dependencies: # set dependencies to null to avoid missing artifacts issue
needs:
- job: fast_template_app
artifacts: false
variables:
PYTHON_VER: 3.7.10
artifacts:
paths:
- "**/build*/size.json"
- "**/build*/build.log"
- "**/build*/build_log.txt"
- "**/build*/*.bin"
- "**/build*/*.elf"
- "**/build*/*.map"
- "**/build*/flasher_args.json"
- "**/build*/flash_project_args"
- "**/build*/config/sdkconfig.json"
- "**/build*/bootloader/*.bin"
- "**/build*/partition_table/*.bin"
- $SIZE_INFO_LOCATION
when: always
expire_in: 3 days
script:
# CI specific options start from "--collect-size-info xxx". could ignore when running locally
- run_cmd python tools/ci/ci_build_apps.py $TEST_DIR -v
-t $IDF_TARGET
--pytest-apps
--collect-size-info $SIZE_INFO_LOCATION
--parallel-count ${CI_NODE_TOTAL:-1}
--parallel-index ${CI_NODE_INDEX:-1}
build_pytest_examples_esp32:
extends:
- .build_pytest_template
- .rules:build:example_test-esp32
script:
- run_cmd python tools/ci/build_pytest_apps.py examples --target esp32 --size-info $SIZE_INFO_LOCATION -vv
parallel: 3
variables:
IDF_TARGET: esp32
TEST_DIR: examples
build_pytest_examples_esp32s2:
extends:
- .build_pytest_template
- .rules:build:example_test-esp32s2
script:
- run_cmd python tools/ci/build_pytest_apps.py examples --target esp32s2 --size-info $SIZE_INFO_LOCATION -vv
parallel: 3
variables:
IDF_TARGET: esp32s2
TEST_DIR: examples
build_pytest_examples_esp32s3:
extends:
- .build_pytest_template
- .rules:build:example_test-esp32s3
script:
- run_cmd python tools/ci/build_pytest_apps.py examples --target esp32s3 --size-info $SIZE_INFO_LOCATION -vv
parallel: 3
variables:
IDF_TARGET: esp32s3
TEST_DIR: examples
build_pytest_examples_esp32c3:
extends:
- .build_pytest_template
- .rules:build:example_test-esp32c3
script:
- run_cmd python tools/ci/build_pytest_apps.py examples --target esp32c3 --size-info $SIZE_INFO_LOCATION -vv
parallel: 3
variables:
IDF_TARGET: esp32c3
TEST_DIR: examples
build_pytest_examples_esp32c2:
extends:
- .build_pytest_template
- .rules:build:example_test-esp32c2
script:
- run_cmd python tools/ci/build_pytest_apps.py examples --target esp32c2 --size-info $SIZE_INFO_LOCATION -vv
variables:
IDF_TARGET: esp32c2
TEST_DIR: examples
build_pytest_components_esp32:
extends:
- .build_pytest_template
- .rules:build:component_ut-esp32
script:
- run_cmd python tools/ci/build_pytest_apps.py components --target esp32 --size-info $SIZE_INFO_LOCATION -vv
parallel: 2
variables:
IDF_TARGET: esp32
TEST_DIR: components
build_pytest_components_esp32s2:
extends:
- .build_pytest_template
- .rules:build:component_ut-esp32s2
script:
- run_cmd python tools/ci/build_pytest_apps.py components --target esp32s2 --size-info $SIZE_INFO_LOCATION -vv
variables:
IDF_TARGET: esp32s2
TEST_DIR: components
build_pytest_components_esp32s3:
extends:
- .build_pytest_template
- .rules:build:component_ut-esp32s3
script:
- run_cmd python tools/ci/build_pytest_apps.py components --target esp32s3 --size-info $SIZE_INFO_LOCATION -vv
variables:
IDF_TARGET: esp32s3
TEST_DIR: components
build_pytest_components_esp32c3:
extends:
- .build_pytest_template
- .rules:build:component_ut-esp32c3
script:
- run_cmd python tools/ci/build_pytest_apps.py components --target esp32c3 --size-info $SIZE_INFO_LOCATION -vv
variables:
IDF_TARGET: esp32c3
TEST_DIR: components
build_pytest_components_esp32c2:
extends:
- .build_pytest_template
- .rules:build:component_ut-esp32c2
script:
- run_cmd python tools/ci/build_pytest_apps.py components --target esp32c2 --size-info $SIZE_INFO_LOCATION -vv
variables:
IDF_TARGET: esp32c2
TEST_DIR: components
build_non_test_components_apps:
extends:
- .build_template
- .build_test_apps_template
- .build_cmake_template
- .rules:build:component_ut
variables:
IDF_TARGET: all
TEST_PREFIX: component_ut
TEST_RELATIVE_DIR: component_ut
script:
- set_component_ut_vars
# CI specific options start from "--collect-size-info xxx". could ignore when running locally
- run_cmd python tools/ci/ci_build_apps.py $COMPONENT_UT_DIRS -v
-t all
--collect-size-info $SIZE_INFO_LOCATION
--collect-app-info list_job_${CI_NODE_INDEX:-1}.json
--parallel-count ${CI_NODE_TOTAL:-1}
--parallel-index ${CI_NODE_INDEX:-1}
build_pytest_test_apps_esp32:
extends:
- .build_pytest_template
- .rules:build:custom_test-esp32
script:
- run_cmd python tools/ci/build_pytest_apps.py tools/test_apps --target esp32 --size-info $SIZE_INFO_LOCATION -vv
variables:
IDF_TARGET: esp32
TEST_DIR: tools/test_apps
build_pytest_test_apps_esp32s2:
extends:
- .build_pytest_template
- .rules:build:custom_test-esp32s2
script:
- run_cmd python tools/ci/build_pytest_apps.py tools/test_apps --target esp32s2 --size-info $SIZE_INFO_LOCATION -vv
variables:
IDF_TARGET: esp32s2
TEST_DIR: tools/test_apps
build_pytest_test_apps_esp32s3:
extends:
- .build_pytest_template
- .rules:build:custom_test-esp32s3
script:
- run_cmd python tools/ci/build_pytest_apps.py tools/test_apps --target esp32s3 --size-info $SIZE_INFO_LOCATION -vv
variables:
IDF_TARGET: esp32s3
TEST_DIR: tools/test_apps
build_pytest_test_apps_esp32c3:
extends:
- .build_pytest_template
- .rules:build:custom_test-esp32c3
script:
- run_cmd python tools/ci/build_pytest_apps.py tools/test_apps --target esp32c3 --size-info $SIZE_INFO_LOCATION -vv
variables:
IDF_TARGET: esp32c3
TEST_DIR: tools/test_apps
build_pytest_test_apps_esp32c2:
extends:
- .build_pytest_template
- .rules:build:custom_test-esp32c2
variables:
IDF_TARGET: esp32c2
TEST_DIR: tools/test_apps
.build_template_app_template:
extends: .build_template
extends:
- .build_template
- .before_script_build_jobs
variables:
LOG_PATH: "${CI_PROJECT_DIR}/log_template_app"
BUILD_PATH: "${CI_PROJECT_DIR}/build_template_app"
@@ -168,8 +208,6 @@ build_pytest_test_apps_esp32c3:
# using on esp-idf. If it doesn't exist then just stick to the default branch
- python $CHECKOUT_REF_SCRIPT esp-idf-template esp-idf-template
- export PATH="$IDF_PATH/tools:$PATH"
- export EXTRA_CFLAGS=${PEDANTIC_CFLAGS}
- export EXTRA_CXXFLAGS=${PEDANTIC_CXXFLAGS}
# Only do the default cmake build for each target, remaining part are done in the build_template_app job
- tools/ci/build_template_app.sh ${BUILD_COMMAND_ARGS}
@@ -210,6 +248,12 @@ build_ssc_esp32s2:
variables:
TARGET_NAME: "ESP32S2"
build_ssc_esp32c2:
extends: .build_ssc_template
parallel: 2
variables:
TARGET_NAME: "ESP32C2"
build_ssc_esp32c3:
extends: .build_ssc_template
parallel: 3
@@ -223,34 +267,45 @@ build_ssc_esp32s3:
TARGET_NAME: "ESP32S3"
.build_esp_idf_tests_cmake_template:
extends: .build_template
extends:
- .build_template
- .before_script_build_jobs
dependencies: # set dependencies to null to avoid missing artifacts issue
needs:
- job: fast_template_app
artifacts: false
- scan_tests
artifacts:
paths:
- tools/unit-test-app/output/${IDF_TARGET}
- tools/unit-test-app/builds/*.json
- tools/unit-test-app/builds/${IDF_TARGET}/*/size.json
- components/idf_test/unit_test/*.yml
- $LOG_PATH
- "**/build*/size.json"
- "**/build*/build_log.txt"
- "**/build*/*.bin"
- "**/build*/*.elf"
- "**/build*/*.map"
- "**/build*/flasher_args.json"
- "**/build*/flash_project_args"
- "**/build*/config/sdkconfig.json"
- "**/build*/sdkconfig"
- "**/build*/bootloader/*.bin"
- "**/build*/partition_table/*.bin"
- list_job_*.json
- $SIZE_INFO_LOCATION
- components/idf_test/unit_test/*.yml
when: always
expire_in: 4 days
variables:
LOG_PATH: "$CI_PROJECT_DIR/log_ut_cmake"
BUILD_PATH: ${CI_PROJECT_DIR}/tools/unit-test-app/builds
OUTPUT_PATH: ${CI_PROJECT_DIR}/tools/unit-test-app/output
BUILD_SYSTEM: "cmake"
TEST_TYPE: "unit_test"
PYTHON_VER: 3.7.10
LDGEN_CHECK_MAPPING: 1
script:
- ${IDF_PATH}/tools/ci/find_apps_build_apps.sh
- cd $CI_PROJECT_DIR/tools/unit-test-app
- python tools/UnitTestParser.py ${BUILD_PATH} ${CI_NODE_INDEX:-1}
# CI specific options start from "--collect-size-info xxx". could ignore when running locally
- run_cmd python tools/ci/ci_build_apps.py tools/unit-test-app -v
-t $IDF_TARGET
--config "configs/*="
--copy-sdkconfig
--preserve-all
--collect-size-info $SIZE_INFO_LOCATION
--collect-app-info list_job_${CI_NODE_INDEX:-1}.json
--parallel-count ${CI_NODE_TOTAL:-1}
--parallel-index ${CI_NODE_INDEX:-1}
- run_cmd python tools/unit-test-app/tools/UnitTestParser.py tools/unit-test-app ${CI_NODE_INDEX:-1}
build_esp_idf_tests_cmake_esp32:
extends:
@@ -275,13 +330,6 @@ build_esp_idf_tests_cmake_esp32s3:
variables:
IDF_TARGET: esp32s3
build_esp_idf_tests_cmake_esp32c3:
extends:
- .build_esp_idf_tests_cmake_template
- .rules:build:unit_test-esp32c3
variables:
IDF_TARGET: esp32c3
build_esp_idf_tests_cmake_esp32c2:
extends:
- .build_esp_idf_tests_cmake_template
@@ -289,134 +337,150 @@ build_esp_idf_tests_cmake_esp32c2:
variables:
IDF_TARGET: esp32c2
.build_examples_template:
extends: .build_template
dependencies: # set dependencies to null to avoid missing artifacts issue
build_esp_idf_tests_cmake_esp32c3:
extends:
- .build_esp_idf_tests_cmake_template
- .rules:build:unit_test-esp32c3
variables:
IDF_TARGET: esp32c3
.build_cmake_template:
extends:
- .build_template
- .before_script_build_jobs
dependencies: # set dependencies to null to avoid missing artifacts issue
needs:
- job: fast_template_app
artifacts: false
- scan_tests
variables:
TEST_PREFIX: examples
TEST_RELATIVE_DIR: examples
SCAN_TEST_JSON: ${CI_PROJECT_DIR}/${TEST_RELATIVE_DIR}/test_configs/scan_${IDF_TARGET}_${BUILD_SYSTEM}.json
TEST_TYPE: example_test
LOG_PATH: ${CI_PROJECT_DIR}/log_${TEST_PREFIX}
BUILD_PATH: ${CI_PROJECT_DIR}/build_${TEST_PREFIX}
PYTHON_VER: 3.7.10
LDGEN_CHECK_MAPPING: 1
script:
# it's not possible to build 100% out-of-tree and have the "artifacts"
# mechanism work, but this is the next best thing
- ${IDF_PATH}/tools/ci/find_apps_build_apps.sh
.build_examples_cmake_template:
extends: .build_examples_template
artifacts:
paths:
- build_${TEST_PREFIX}/list.json
- build_${TEST_PREFIX}/list_job_*.json
- build_${TEST_PREFIX}/*/*/*/sdkconfig
- build_${TEST_PREFIX}/*/*/*/build/size.json
- build_${TEST_PREFIX}/*/*/*/build/*.bin
- build_${TEST_PREFIX}/*/*/*/build/*.elf
- build_${TEST_PREFIX}/*/*/*/build/*.map
- build_${TEST_PREFIX}/*/*/*/build/flasher_args.json
- build_${TEST_PREFIX}/*/*/*/build/bootloader/*.bin
- build_${TEST_PREFIX}/*/*/*/build/partition_table/*.bin
- $LOG_PATH
- "**/build*/size.json"
- "**/build*/build_log.txt"
- "**/build*/*.bin"
- "**/build*/*.elf"
- "**/build*/*.map"
- "**/build*/flasher_args.json"
- "**/build*/flash_project_args"
- "**/build*/config/sdkconfig.json"
- "**/build*/sdkconfig"
- "**/build*/bootloader/*.bin"
- "**/build*/partition_table/*.bin"
- list_job_*.json
- $SIZE_INFO_LOCATION
when: always
expire_in: 4 days
variables:
BUILD_SYSTEM: cmake
script:
# CI specific options start from "--collect-size-info xxx". could ignore when running locally
- run_cmd python tools/ci/ci_build_apps.py $TEST_DIR -v
-t $IDF_TARGET
--copy-sdkconfig
--collect-size-info $SIZE_INFO_LOCATION
--collect-app-info list_job_${CI_NODE_INDEX:-1}.json
--parallel-count ${CI_NODE_TOTAL:-1}
--parallel-index ${CI_NODE_INDEX:-1}
--extra-preserve-dirs
examples/bluetooth/esp_ble_mesh/ble_mesh_console
examples/bluetooth/hci/controller_hci_uart_esp32
examples/wifi/iperf
build_examples_cmake_esp32:
extends:
- .build_examples_cmake_template
- .build_cmake_template
- .rules:build:example_test-esp32
parallel: 12
variables:
IDF_TARGET: esp32
TEST_DIR: examples
build_examples_cmake_esp32s2:
extends:
- .build_examples_cmake_template
- .build_cmake_template
- .rules:build:example_test-esp32s2
parallel: 8
variables:
IDF_TARGET: esp32s2
TEST_DIR: examples
build_examples_cmake_esp32s3:
extends:
- .build_examples_cmake_template
- .build_cmake_template
- .rules:build:example_test-esp32s3
parallel: 8
variables:
IDF_TARGET: esp32s3
TEST_DIR: examples
build_examples_cmake_esp32c2:
extends:
- .build_cmake_template
- .rules:build:example_test-esp32c2
parallel: 8
variables:
IDF_TARGET: esp32c2
TEST_DIR: examples
build_examples_cmake_esp32c3:
extends:
- .build_examples_cmake_template
- .build_cmake_template
- .rules:build:example_test-esp32c3
parallel: 8
variables:
IDF_TARGET: esp32c3
TEST_DIR: examples
build_examples_cmake_esp32h2:
extends:
- .build_examples_cmake_template
- .build_cmake_template
- .rules:build:example_test-esp32h2
variables:
IDF_TARGET: esp32h2
.build_test_apps_template:
extends: .build_examples_cmake_template
variables:
TEST_PREFIX: test_apps
TEST_RELATIVE_DIR: tools/test_apps
TEST_TYPE: custom_test
script:
- ${IDF_PATH}/tools/ci/find_apps_build_apps.sh
TEST_DIR: examples
build_test_apps_esp32:
extends:
- .build_test_apps_template
- .build_cmake_template
- .rules:build:custom_test-esp32
parallel: 2
variables:
IDF_TARGET: esp32
TEST_DIR: tools/test_apps
build_test_apps_esp32s2:
extends:
- .build_test_apps_template
- .build_cmake_template
- .rules:build:custom_test-esp32s2
parallel: 2
variables:
IDF_TARGET: esp32s2
TEST_DIR: tools/test_apps
build_test_apps_esp32s3:
extends:
- .build_test_apps_template
- .build_cmake_template
- .rules:build:custom_test-esp32s3
parallel: 2
variables:
IDF_TARGET: esp32s3
TEST_DIR: tools/test_apps
build_test_apps_esp32c3:
extends:
- .build_test_apps_template
- .build_cmake_template
- .rules:build:custom_test-esp32c3
parallel: 2
variables:
IDF_TARGET: esp32c3
TEST_DIR: tools/test_apps
build_test_apps_esp32c2:
extends:
- .build_test_apps_template
- .build_cmake_template
- .rules:build:custom_test-esp32c2
variables:
IDF_TARGET: esp32c2
TEST_DIR: tools/test_apps
.test_build_system_template:
stage: host_test

View File

@@ -156,6 +156,64 @@ build:integration_test:
- "build:component_ut-{0}"
- build:target_test
# To reduce the specific runners' usage.
# Do not create these jobs by default patterns on development branches
# Can be triggered by labels or related changes
"test:{0}-{1}-{2}":
matrix:
- *target_test
- *all_targets
- - bt # example_test_005
- wifi # example_test_002, example_test*wifi*
- ethernet # example_test*ethernet*
- sdio # UT_044, UT_045
patterns:
- "{0}-{1}-{2}"
- "{0}-{2}"
- "target_test-{2}"
labels:
- "{0}_{1}"
- "{0}"
- target_test
included_in:
- "build:{0}-{1}"
- "build:{0}"
- build:target_test
# For example_test*flash_encryption_wifi_high_traffic jobs
# set `INCLUDE_NIGHTLY_RUN` variable when triggered on development branches
"test:example_test-{0}-include_nightly_run-rule":
matrix:
- - esp32
- esp32c3
specific_rules:
- "if-example_test-ota-include_nightly_run-rule"
included_in:
- "build:example_test-{0}"
- "build:example_test"
- build:target_test
# due to the lack of runners, c2 tests will only be triggered by label
"test:{0}-esp32c2":
matrix:
- *target_test
labels:
- "{0}_esp32c2"
included_in:
- "build:{0}"
- "build:{0}-esp32c2"
- build:target_test
# overwrite the esp32c2 component ut again
"test:component_ut-esp32c2": # component_ut will trigger by unit_test as well, since now we have 2 kinds of UT
labels:
- "component_ut_esp32c2"
- "unit_test_esp32c2"
included_in:
- build:component_ut
- "build:component_ut-esp32c2"
- build:target_test
# due to the lack of runners, s3 tests will only be triggered by label
"test:{0}-esp32s3":
matrix:

View File

@@ -82,6 +82,7 @@ class RulesWriter:
RULE_LABEL_TEMPLATE = ' - <<: *if-label-{0}'
RULE_PATTERN_TEMPLATE = ' - <<: *if-dev-push\n' \
' changes: *patterns-{0}'
SPECIFIC_RULE_TEMPLATE = ' - <<: *{0}'
RULES_TEMPLATE = inspect.cleandoc(r"""
.rules:{0}:
rules:
@@ -156,6 +157,8 @@ class RulesWriter:
continue
if 'included_in' in v:
for item in _list(v['included_in']):
if 'specific_rules' in v:
res[item]['specific_rules'].update(_list(v['specific_rules']))
if 'labels' in v:
res[item]['labels'].update(_list(v['labels']))
if 'patterns' in v:
@@ -210,6 +213,12 @@ class RulesWriter:
_rules.append(self.RULE_PROTECTED)
if name.startswith('test:'):
_rules.append(self.RULE_BUILD_ONLY)
for specific_rule in cfg['specific_rules']:
if f'.{specific_rule}' in self.rules_cfg:
_rules.append(self.SPECIFIC_RULE_TEMPLATE.format(specific_rule))
else:
print('WARNING: specific_rule {} not exists'.format(specific_rule))
for label in cfg['labels']:
_rules.append(self.RULE_LABEL_TEMPLATE.format(label))
for pattern in cfg['patterns']:

View File

@@ -45,7 +45,7 @@ deploy_test_result:
extends:
- .deploy_job_template
- .before_script_minimal
- .rules:ref:master-schedule-always
- .rules:ref:master-always
image: $CI_DOCKER_REGISTRY/bot-env:1
dependencies: []
tags:

View File

@@ -57,14 +57,12 @@ check_docs_lang_sync:
.build_docs_template:
image: $ESP_IDF_DOC_ENV_IMAGE
variables:
PYTHON_VER: 3.7.10
tags:
- build_docs
dependencies: []
script:
- cd docs
- pip install -U -r requirements.txt
- pip install -U -r $IDF_PATH/tools/requirements/requirements.docs.txt
- build-docs -t $DOCTGT -bs $DOC_BUILDERS -l $DOCLANG build
parallel:
matrix:
@@ -73,14 +71,12 @@ check_docs_lang_sync:
check_docs_gh_links:
image: $ESP_IDF_DOC_ENV_IMAGE
variables:
PYTHON_VER: 3.7.10
extends:
- .pre_check_job_template
- .doc-rules:build:docs
script:
- cd docs
- pip install -U -r requirements.txt
- pip install -U -r $IDF_PATH/tools/requirements/requirements.docs.txt
- build-docs gh-linkcheck
# stage: build_doc
@@ -156,7 +152,6 @@ build_docs_pdf:
- .before_script_no_sync_submodule
image: $ESP_IDF_DOC_ENV_IMAGE
variables:
PYTHON_VER: 3.7.10
DOCS_BUILD_DIR: "${IDF_PATH}/docs/_build/"
PYTHONUNBUFFERED: 1
stage: test_deploy
@@ -166,7 +161,7 @@ build_docs_pdf:
script:
- add_doc_server_ssh_keys $DOCS_DEPLOY_PRIVATEKEY $DOCS_DEPLOY_SERVER $DOCS_DEPLOY_SERVER_USER
- export GIT_VER=$(git describe --always ${PIPELINE_COMMIT_SHA} --)
- pip install -U -r docs/requirements.txt
- pip install -U -r $IDF_PATH/tools/requirements/requirements.docs.txt
- deploy-docs
# stage: test_deploy
@@ -232,5 +227,5 @@ check_doc_links:
allow_failure: true
script:
- cd docs
- pip install -U -r requirements.txt
- pip install -U -r $IDF_PATH/tools/requirements/requirements.docs.txt
- build-docs -t $DOCTGT -l $DOCLANG linkcheck

View File

@@ -2,12 +2,17 @@
extends: .rules:test:host_test
stage: host_test
image: $ESP_ENV_IMAGE
variables:
PYTHON_VER: 3.7.10
tags:
- host_test
dependencies: []
needs: [] # run host_test jobs immediately
# run host_test jobs immediately, only after upload cache
needs:
- job: upload-pip-cache
optional: true
artifacts: false
- job: upload-submodules-cache
optional: true
artifacts: false
test_nvs_on_host:
extends: .host_test_template
@@ -99,17 +104,6 @@ test_reproducible_build:
# check no crashes found
- test -z "$(ls out/crashes/)" || exit 1
test_mdns_fuzzer_on_host:
extends: .host_fuzzer_test_template
variables:
FUZZER_TEST_DIR: components/mdns/test_afl_fuzz_host
test_mdns_no_serv_fuzzer_on_host:
extends: .host_fuzzer_test_template
variables:
FUZZER_TEST_DIR: components/mdns/test_afl_fuzz_host
FUZZER_PARAMS: MDNS_NO_SERVICES=on
test_lwip_dns_fuzzer_on_host:
extends: .host_fuzzer_test_template
variables:
@@ -358,6 +352,13 @@ test_nvs_page:
- idf.py build
- build/test_nvs_page_host.elf
test_mqtt_on_host:
extends: .host_test_template
script:
- cd ${IDF_PATH}/components/mqtt/host_test
- idf.py build
- LSAN_OPTIONS=verbosity=1:log_threads=1 build/host_mqtt_client_test.elf
test_log:
extends: .host_test_template
script:
@@ -438,8 +439,11 @@ test_gen_soc_caps_kconfig:
test_pytest_qemu:
extends:
- .host_test_template
- .before_script_pytest
- .before_script_build_jobs
image: $QEMU_IMAGE
script:
- run_cmd python tools/ci/build_pytest_apps.py . --target esp32 -m qemu -vv
- run_cmd python tools/ci/ci_build_apps.py . -vv
--target esp32
--pytest-apps
-m qemu
- pytest --target esp32 -m qemu --embedded-services idf,qemu

View File

@@ -51,8 +51,6 @@ check_python_style:
extends:
- .pre_check_base_template
- .rules:patterns:python-files
variables:
PYTHON_VER: 3.7.10
artifacts:
when: on_failure
paths:
@@ -63,8 +61,6 @@ check_python_style:
test_check_kconfigs:
extends: .pre_check_job_template
variables:
PYTHON_VER: 3.7.10
artifacts:
when: on_failure
paths:
@@ -101,8 +97,6 @@ check_fuzzer_compilation:
- make MODE=dhcp_server
- make MODE=dhcp_client
- make MODE=dns
- cd ${IDF_PATH}/components/mdns/test_afl_fuzz_host
- make
check_public_headers:
extends:
@@ -111,7 +105,11 @@ check_public_headers:
tags:
- build
script:
- python tools/ci/check_public_headers.py --jobs 4 --prefix xtensa-esp32-elf-
- IDF_TARGET=esp32 python tools/ci/check_public_headers.py --jobs 4 --prefix xtensa-esp32-elf-
- IDF_TARGET=esp32s2 python tools/ci/check_public_headers.py --jobs 4 --prefix xtensa-esp32s2-elf-
- IDF_TARGET=esp32s3 python tools/ci/check_public_headers.py --jobs 4 --prefix xtensa-esp32s3-elf-
- IDF_TARGET=esp32c3 python tools/ci/check_public_headers.py --jobs 4 --prefix riscv32-esp-elf-
- IDF_TARGET=esp32c2 python tools/ci/check_public_headers.py --jobs 4 --prefix riscv32-esp-elf-
check_chip_support_components:
extends:
@@ -146,44 +144,14 @@ check_esp_err_to_name:
- ./gen_esp_err_to_name.py
- git diff --exit-code -- ../components/esp_common/src/esp_err_to_name.c || { echo 'Differences found. Please run gen_esp_err_to_name.py and commit the changes.'; exit 1; }
scan_tests:
check_esp_system:
extends:
- .pre_check_base_template
- .before_script_pytest
- .rules:build:target_test
image: $TARGET_TEST_ENV_IMAGE
- .rules:build
tags:
- scan_test # since this job is used for uploading the cache, the runner tags should be unique
artifacts:
paths:
- $EXAMPLE_TEST_OUTPUT_DIR
- $TEST_APPS_OUTPUT_DIR
- $COMPONENT_UT_OUTPUT_DIR
expire_in: 1 week
cache:
key: pip-cache
paths:
- .cache/pip
# pull only for most of the use cases since it's cache dir.
# Only set "pull-push" policy for "scan_test" since it would **possibly** install all pypi packages
policy: pull-push
variables:
EXAMPLE_TEST_DIR: ${CI_PROJECT_DIR}/examples
EXAMPLE_TEST_OUTPUT_DIR: ${CI_PROJECT_DIR}/examples/test_configs
TEST_APPS_TEST_DIR: ${CI_PROJECT_DIR}/tools/test_apps
TEST_APPS_OUTPUT_DIR: ${CI_PROJECT_DIR}/tools/test_apps/test_configs
COMPONENT_UT_OUTPUT_DIR: ${CI_PROJECT_DIR}/component_ut/test_configs
CI_SCAN_TESTS_PY: ${CI_PROJECT_DIR}/tools/ci/python_packages/ttfw_idf/CIScanTests.py
EXTRA_TEST_DIRS: >-
examples/bluetooth/esp_ble_mesh/ble_mesh_console
examples/bluetooth/hci/controller_hci_uart_esp32
examples/wifi/iperf
EXTRA_EVALUATE_ARGS: '--evaluate-parallel-count --config "sdkconfig.ci=default" --config "sdkconfig.ci.*=" --config "=default"'
- build
script:
- run_cmd python $CI_SCAN_TESTS_PY example_test $EXAMPLE_TEST_DIR -b cmake --exclude examples/build_system/idf_as_lib -c $CI_TARGET_TEST_CONFIG_FILE -o $EXAMPLE_TEST_OUTPUT_DIR --extra_test_dirs $EXTRA_TEST_DIRS $EXTRA_EVALUATE_ARGS
- run_cmd python $CI_SCAN_TESTS_PY test_apps $TEST_APPS_TEST_DIR -c $CI_TARGET_TEST_CONFIG_FILE -o $TEST_APPS_OUTPUT_DIR $EXTRA_EVALUATE_ARGS
- set_component_ut_vars
- run_cmd python $CI_SCAN_TESTS_PY component_ut $COMPONENT_UT_DIRS --exclude $COMPONENT_UT_EXCLUDES -c $CI_TARGET_TEST_CONFIG_FILE -o $COMPONENT_UT_OUTPUT_DIR --combine-all-targets --except-targets linux $EXTRA_EVALUATE_ARGS
- python components/esp_system/check_system_init_priorities.py
# For release tag pipelines only, make sure the tag was created with 'git tag -a' so it will update
# the version returned by 'git describe'
@@ -207,3 +175,10 @@ check_commit_msg:
- git log -n10 --oneline ${PIPELINE_COMMIT_SHA}
# commit start with "WIP: " need to be squashed before merge
- 'git log --pretty=%s origin/master..${PIPELINE_COMMIT_SHA} -- | grep -i "^WIP:" && exit 1 || exit 0'
check_test_scripts_build_test_rules:
extends:
- .pre_check_job_template
- .before_script_build_jobs
script:
- python tools/ci/check_build_test_rules.py check-test-scripts examples/ tools/test_apps components

File diff suppressed because it is too large Load Diff

View File

@@ -10,7 +10,6 @@ clang_tidy_check:
when: always
expire_in: 1 day
variables:
CLANG_TIDY_RUNNER_PROJ: 2107 # idf/clang-tidy-runner
CLANG_TIDY_DIRS_TXT: ${CI_PROJECT_DIR}/tools/ci/clang_tidy_dirs.txt
RULES_FILE: ${CI_PROJECT_DIR}/tools/ci/static-analysis-rules.yml
OUTPUT_DIR: ${CI_PROJECT_DIR}/clang_tidy_reports

View File

@@ -1,9 +1,21 @@
.pytest_template:
.target_test_template:
image: $TARGET_TEST_ENV_IMAGE
stage: target_test
timeout: 1 hour
extends: .before_script_pytest
tags: [$TARGET, $ENV_MARKER]
variables:
GIT_DEPTH: 1
SUBMODULES_TO_FETCH: "none"
cache:
# Usually do not need submodule-cache in target_test
- key: pip-cache
paths:
- .cache/pip
policy: pull
.pytest_template:
extends:
- .target_test_template
- .before_script_pytest
artifacts:
when: always
paths:
@@ -14,7 +26,14 @@
expire_in: 1 week
script:
- retry_failed git clone $KNOWN_FAILURE_CASES_REPO known_failure_cases
- pytest $TEST_DIR --target $TARGET -m $ENV_MARKER --junitxml=XUNIT_RESULT.xml --known-failure-cases-file known_failure_cases/known_failure_cases.txt
# get runner env config file
- retry_failed git clone $TEST_ENV_CONFIG_REPO
- python $CHECKOUT_REF_SCRIPT ci-test-runner-configs ci-test-runner-configs
# using runner tags as markers to filter the test cases
# Runner tags are comma separated, replace the comma with " and " for markers
- job_tags=$(python tools/ci/python_packages/gitlab_api.py get_job_tags $CI_PROJECT_ID --job_id $CI_JOB_ID)
- markers=$(echo $job_tags | sed -e "s/,/ and /g")
- run_cmd pytest $TEST_DIR -m \"${markers}\" --junitxml=XUNIT_RESULT.xml --known-failure-cases-file known_failure_cases/known_failure_cases.txt
.pytest_examples_dir_template:
extends: .pytest_template
@@ -27,9 +46,7 @@ example_test_pytest_esp32_generic:
- .rules:test:example_test-esp32
needs:
- build_pytest_examples_esp32
variables:
TARGET: ESP32
ENV_MARKER: generic
tags: [ esp32, generic ]
example_test_pytest_esp32_ir_transceiver:
extends:
@@ -37,9 +54,7 @@ example_test_pytest_esp32_ir_transceiver:
- .rules:test:example_test-esp32
needs:
- build_pytest_examples_esp32
variables:
TARGET: ESP32
ENV_MARKER: ir_transceiver
tags: [ esp32, ir_transceiver ]
example_test_pytest_esp32s2_generic:
extends:
@@ -47,9 +62,7 @@ example_test_pytest_esp32s2_generic:
- .rules:test:example_test-esp32s2
needs:
- build_pytest_examples_esp32s2
variables:
TARGET: ESP32S2
ENV_MARKER: generic
tags: [ esp32s2, generic ]
example_test_pytest_esp32s3_generic:
extends:
@@ -57,9 +70,23 @@ example_test_pytest_esp32s3_generic:
- .rules:test:example_test-esp32s3
needs:
- build_pytest_examples_esp32s3
variables:
TARGET: ESP32S3
ENV_MARKER: generic
tags: [ esp32s3, generic ]
example_test_pytest_esp32c2_generic:
extends:
- .pytest_examples_dir_template
- .rules:test:example_test-esp32c2
needs:
- build_pytest_examples_esp32c2
tags: [ esp32c2, generic, xtal_40mhz ]
example_test_pytest_esp32c2_26mhz:
extends:
- .pytest_examples_dir_template
- .rules:test:example_test-esp32c2
needs:
- build_pytest_examples_esp32c2
tags: [ esp32c2, xtal_26mhz ]
example_test_pytest_esp32c3_generic:
extends:
@@ -67,9 +94,7 @@ example_test_pytest_esp32c3_generic:
- .rules:test:example_test-esp32c3
needs:
- build_pytest_examples_esp32c3
variables:
TARGET: ESP32C3
ENV_MARKER: generic
tags: [ esp32c3, generic ]
example_test_pytest_esp32c3_flash_suspend:
extends:
@@ -77,29 +102,79 @@ example_test_pytest_esp32c3_flash_suspend:
- .rules:test:example_test-esp32c3
needs:
- build_pytest_examples_esp32c3
variables:
TARGET: ESP32C3
ENV_MARKER: flash_suspend
tags: [ esp32c3, flash_suspend ]
example_test_pytest_esp32_ethernet_ota:
extends:
- .pytest_examples_dir_template
- .rules:test:example_test-esp32
- .rules:test:example_test-esp32-ethernet
needs:
- build_pytest_examples_esp32
variables:
TARGET: ESP32
ENV_MARKER: ethernet_ota
tags: [ esp32, ethernet_ota ]
example_test_pytest_esp32_wifi:
example_test_pytest_esp32_wifi_high_traffic:
extends:
- .pytest_examples_dir_template
- .rules:test:example_test-esp32-wifi
needs:
- build_pytest_examples_esp32
tags: [ esp32, wifi_high_traffic ]
example_test_pytest_esp32_flash_encryption_wifi_high_traffic:
extends:
- .pytest_examples_dir_template
- .rules:test:example_test-esp32-include_nightly_run-rule
needs:
- build_pytest_examples_esp32
tags: [ esp32, flash_encryption_wifi_high_traffic ]
example_test_pytest_esp32c3_flash_encryption_wifi_high_traffic:
extends:
- .pytest_examples_dir_template
- .rules:test:example_test-esp32c3-include_nightly_run-rule
needs:
- build_pytest_examples_esp32c3
tags: [ esp32c3, flash_encryption_wifi_high_traffic ]
example_test_pytest_esp32_ethernet:
extends:
- .pytest_examples_dir_template
- .rules:test:example_test-esp32-ethernet
needs:
- build_pytest_examples_esp32
tags: [ esp32, ethernet]
example_test_pytest_esp32_8mb_flash:
extends:
- .pytest_examples_dir_template
- .rules:test:example_test-esp32
needs:
- build_pytest_examples_esp32
variables:
TARGET: ESP32
ENV_MARKER: wifi
tags: [ esp32, ethernet_flash_8m ]
example_test_pytest_esp32_wifi_ap:
extends:
- .pytest_examples_dir_template
- .rules:test:example_test-esp32-wifi
needs:
- build_pytest_examples_esp32
tags: [ esp32, wifi_ap ]
example_test_pytest_esp32_wifi_router:
extends:
- .pytest_examples_dir_template
- .rules:test:example_test-esp32-wifi
needs:
- build_pytest_examples_esp32
tags: [ esp32, wifi_router ]
example_test_pytest_esp32_wifi_wlan:
extends:
- .pytest_examples_dir_template
- .rules:test:example_test-esp32-wifi
needs:
- build_pytest_examples_esp32
tags: [ esp32, wifi_wlan ]
example_test_pytest_esp32_ethernet_ip101:
extends:
@@ -107,9 +182,7 @@ example_test_pytest_esp32_ethernet_ip101:
- .rules:test:example_test-esp32
needs:
- build_pytest_examples_esp32
variables:
TARGET: ESP32
ENV_MARKER: ip101
tags: [ esp32, ip101 ]
example_test_pytest_esp32_flash_encryption:
extends:
@@ -117,9 +190,7 @@ example_test_pytest_esp32_flash_encryption:
- .rules:test:example_test-esp32
needs:
- build_pytest_examples_esp32
variables:
TARGET: ESP32
ENV_MARKER: flash_encryption
tags: [ esp32, flash_encryption ]
example_test_pytest_esp32_multi_dut_generic:
extends:
@@ -127,9 +198,7 @@ example_test_pytest_esp32_multi_dut_generic:
- .rules:test:example_test-esp32
needs:
- build_pytest_examples_esp32
variables:
TARGET: ESP32
ENV_MARKER: multi_dut_generic
tags: [ esp32, multi_dut_generic ]
example_test_pytest_esp32c3_flash_encryption:
extends:
@@ -137,9 +206,7 @@ example_test_pytest_esp32c3_flash_encryption:
- .rules:test:example_test-esp32c3
needs:
- build_pytest_examples_esp32c3
variables:
TARGET: ESP32C3
ENV_MARKER: flash_encryption
tags: [ esp32c3, flash_encryption ]
.pytest_components_dir_template:
extends: .pytest_template
@@ -152,9 +219,7 @@ component_ut_pytest_esp32_generic:
- .rules:test:component_ut-esp32
needs:
- build_pytest_components_esp32
variables:
TARGET: ESP32
ENV_MARKER: generic
tags: [ esp32, generic ]
component_ut_pytest_esp32_ip101:
extends:
@@ -162,9 +227,7 @@ component_ut_pytest_esp32_ip101:
- .rules:test:component_ut-esp32
needs:
- build_pytest_components_esp32
variables:
TARGET: ESP32
ENV_MARKER: ip101
tags: [ esp32, ip101 ]
component_ut_pytest_esp32_lan8720:
extends:
@@ -172,9 +235,15 @@ component_ut_pytest_esp32_lan8720:
- .rules:labels-protected:lan8720 # FIXME: IDFCI-1176
needs:
- build_pytest_components_esp32
variables:
TARGET: ESP32
ENV_MARKER: lan8720
tags: [ esp32, lan8720 ]
component_ut_pytest_esp32_flash_encryption:
extends:
- .pytest_components_dir_template
- .rules:test:component_ut-esp32
needs:
- build_pytest_components_esp32
tags: [ esp32, flash_encryption ]
component_ut_pytest_esp32s2_generic:
extends:
@@ -182,9 +251,7 @@ component_ut_pytest_esp32s2_generic:
- .rules:test:component_ut-esp32s2
needs:
- build_pytest_components_esp32s2
variables:
TARGET: ESP32S2
ENV_MARKER: generic
tags: [ esp32s2, generic ]
component_ut_pytest_esp32s3_generic:
extends:
@@ -192,9 +259,7 @@ component_ut_pytest_esp32s3_generic:
- .rules:test:component_ut-esp32s3
needs:
- build_pytest_components_esp32s3
variables:
TARGET: ESP32S3
ENV_MARKER: generic
tags: [ esp32s3, generic ]
component_ut_pytest_esp32s3_octal_psram:
extends:
@@ -202,9 +267,39 @@ component_ut_pytest_esp32s3_octal_psram:
- .rules:test:component_ut-esp32s3
needs:
- build_pytest_components_esp32s3
variables:
TARGET: ESP32S3
ENV_MARKER: octal_psram
tags: [ esp32s3, octal_psram ]
component_ut_pytest_esp32s3_flash_encryption_f4r8:
extends:
- .pytest_components_dir_template
- .rules:test:component_ut-esp32s3
needs:
- build_pytest_components_esp32s3
tags: [ esp32s3, flash_encryption_f4r8 ]
component_ut_pytest_esp32s3_flash_encryption_f8r8:
extends:
- .pytest_components_dir_template
- .rules:test:component_ut-esp32s3
needs:
- build_pytest_components_esp32s3
tags: [ esp32s3, flash_encryption_f8r8 ]
component_ut_pytest_esp32c2_generic:
extends:
- .pytest_components_dir_template
- .rules:test:component_ut-esp32c2
needs:
- build_pytest_components_esp32c2
tags: [ esp32c2, generic, xtal_40mhz ]
component_ut_pytest_esp32c2_xtal_26mhz:
extends:
- .pytest_components_dir_template
- .rules:test:component_ut-esp32c2
needs:
- build_pytest_components_esp32c2
tags: [ esp32c2, xtal_26mhz ]
component_ut_pytest_esp32c3_generic:
extends:
@@ -212,9 +307,15 @@ component_ut_pytest_esp32c3_generic:
- .rules:test:component_ut-esp32c3
needs:
- build_pytest_components_esp32c3
variables:
TARGET: ESP32C3
ENV_MARKER: generic
tags: [ esp32c3, generic ]
component_ut_pytest_esp32c3_flash_encryption:
extends:
- .pytest_components_dir_template
- .rules:test:component_ut-esp32c3
needs:
- build_pytest_components_esp32c3
tags: [ esp32c3, flash_encryption ]
.pytest_test_apps_dir_template:
extends: .pytest_template
@@ -227,9 +328,8 @@ test_app_test_pytest_esp32_generic:
- .rules:test:custom_test-esp32
needs:
- build_pytest_test_apps_esp32
tags: [ esp32, generic ]
variables:
TARGET: ESP32
ENV_MARKER: generic
SETUP_TOOLS: "1" # need gdb
test_app_test_pytest_esp32s2_generic:
@@ -238,9 +338,8 @@ test_app_test_pytest_esp32s2_generic:
- .rules:test:custom_test-esp32s2
needs:
- build_pytest_test_apps_esp32s2
tags: [ esp32s2, generic ]
variables:
TARGET: ESP32S2
ENV_MARKER: generic
SETUP_TOOLS: "1" # need gdb
test_app_test_pytest_esp32s3_generic:
@@ -249,9 +348,23 @@ test_app_test_pytest_esp32s3_generic:
- .rules:test:custom_test-esp32s3
needs:
- build_pytest_test_apps_esp32s3
variables:
TARGET: ESP32S3
ENV_MARKER: generic
tags: [ esp32s3, generic ]
test_app_test_pytest_esp32c2_generic:
extends:
- .pytest_test_apps_dir_template
- .rules:test:custom_test-esp32c2
needs:
- build_pytest_test_apps_esp32c2
tags: [ esp32c2, generic, xtal_40mhz ]
test_app_test_pytest_esp32c2_26mhz:
extends:
- .pytest_test_apps_dir_template
- .rules:test:custom_test-esp32c2
needs:
- build_pytest_test_apps_esp32c2
tags: [ esp32c2, xtal_26mhz ]
test_app_test_pytest_esp32c3_generic:
extends:
@@ -259,9 +372,7 @@ test_app_test_pytest_esp32c3_generic:
- .rules:test:custom_test-esp32c3
needs:
- build_pytest_test_apps_esp32c3
variables:
TARGET: ESP32C3
ENV_MARKER: generic
tags: [ esp32c3, generic ]
test_app_test_pytest_esp32s2_usb_host:
extends:
@@ -269,9 +380,31 @@ test_app_test_pytest_esp32s2_usb_host:
- .rules:test:custom_test-esp32s2
needs:
- build_pytest_test_apps_esp32s2
variables:
TARGET: ESP32S2
ENV_MARKER: usb_host
tags: [ esp32s2, usb_host ]
test_app_test_pytest_esp32s3_mspi_f8r8:
extends:
- .pytest_test_apps_dir_template
- .rules:test:custom_test-esp32s3
needs:
- build_pytest_test_apps_esp32s3
tags: [ esp32s3, MSPI_F8R8 ]
test_app_test_pytest_esp32s3_mspi_f4r8:
extends:
- .pytest_test_apps_dir_template
- .rules:test:custom_test-esp32s3
needs:
- build_pytest_test_apps_esp32s3
tags: [ esp32s3, MSPI_F4R8 ]
test_app_test_pytest_esp32s3_mspi_f4r4:
extends:
- .pytest_test_apps_dir_template
- .rules:test:custom_test-esp32s3
needs:
- build_pytest_test_apps_esp32s3
tags: [ esp32s3, MSPI_F4R4 ]
# for parallel jobs, CI_JOB_NAME will be "job_name index/total" (for example, "IT_001 1/2")
# we need to convert to pattern "job_name_index.yml"
@@ -281,9 +414,8 @@ test_app_test_pytest_esp32s2_usb_host:
CONFIG_FILE="${CONFIG_FILE_PATH}/${JOB_FULL_NAME}.yml"
.target_test_job_template:
stage: target_test
timeout: 1 hour
image: $TARGET_TEST_ENV_IMAGE
extends:
- .target_test_template
artifacts:
when: always
paths:
@@ -298,7 +430,6 @@ test_app_test_pytest_esp32s2_usb_host:
TEST_FW_PATH: "$CI_PROJECT_DIR/tools/tiny-test-fw"
LOG_PATH: "$CI_PROJECT_DIR/TEST_LOGS"
ENV_FILE: "$CI_PROJECT_DIR/ci-test-runner-configs/$CI_RUNNER_DESCRIPTION/EnvConfig.yml"
SUBMODULES_TO_FETCH: "none"
script:
- *define_config_file_name
# first test if config file exists, if not exist, exit 0
@@ -321,20 +452,13 @@ test_app_test_pytest_esp32s2_usb_host:
TEST_CASE_PATH: "$CI_PROJECT_DIR/examples"
CONFIG_FILE_PATH: "${CI_PROJECT_DIR}/examples/test_configs"
.example_debug_template:
extends:
- .example_test_template
- .rules:test:example_test-esp32
variables:
SUBMODULES_TO_FETCH: "all"
test_weekend_mqtt:
extends:
- .test_app_esp32_template
- .rules:labels:weekend_test
tags:
- ESP32
- Example_EthKitV1
- ethernet_router
script:
- export MQTT_PUBLISH_TEST=1
- export TEST_PATH=$CI_PROJECT_DIR/tools/test_apps/protocols/mqtt/publish_connect_test
@@ -351,6 +475,11 @@ test_weekend_mqtt:
- .example_test_template
- .rules:test:example_test-esp32s2
.example_test_esp32c2_template:
extends:
- .example_test_template
- .rules:test:example_test-esp32c2
.example_test_esp32c3_template:
extends:
- .example_test_template
@@ -361,19 +490,6 @@ test_weekend_mqtt:
- .example_test_template
- .rules:test:example_test-esp32s3
example_test_001A:
extends: .example_test_esp32_template
tags:
- ESP32
- Example_WIFI
example_test_001B:
extends: .example_test_esp32_template
parallel: 2
tags:
- ESP32
- Example_EthKitV1
example_test_001B_V3:
extends: .example_test_esp32_template
tags:
@@ -387,43 +503,29 @@ example_test_001C:
- ESP32
- Example_GENERIC
example_test_001D:
extends: .example_test_esp32_template
tags:
- ESP32
- Example_8Mflash_Ethernet
example_test_OTA:
extends: .example_test_esp32_template
tags:
- ESP32
- EXAMPLE_ETH_OTA
example_test_protocols:
extends: .example_test_esp32_template
parallel: 2
extends:
- .example_test_esp32_template
- .rules:test:example_test-esp32-wifi
tags:
- ESP32
- Example_WIFI_Protocols
# This job is only triggered by env var `NIGHTLY_RUN`, please do NOT remove
example_test_esp32_WIFI_OTA:
extends: .example_test_esp32_template
tags:
- ESP32
- Example_WIFI_OTA
- wifi_router
example_test_002:
extends: .example_test_esp32_template
extends:
- .example_test_esp32_template
- .rules:test:example_test-esp32-wifi
tags:
- ESP32
- Example_ShieldBox_Basic
example_test_ethernet:
extends: .example_test_esp32_template
example_test_ethernet_router:
extends:
- .example_test_esp32_template
- .rules:test:example_test-esp32-ethernet
tags:
- ESP32
- Example_Ethernet
- ethernet_router
.example_test_003:
extends: .example_test_esp32_template
@@ -444,7 +546,9 @@ example_test_004B:
- Example_TWAI2
example_test_005:
extends: .example_test_esp32_template
extends:
- .example_test_esp32_template
- .rules:test:example_test-esp32-bt
tags:
- ESP32
- Example_WIFI_BT
@@ -463,12 +567,6 @@ example_test_007:
- ESP32
- Example_I2C_CCS811_SENSOR
example_test_008B:
extends: .example_test_esp32_template
tags:
- ESP32
- Example_Flash_Encryption_OTA
example_test_009:
extends: .example_test_esp32_template
tags:
@@ -485,12 +583,10 @@ example_test_010:
- Example_ExtFlash
example_test_011:
extends: .example_debug_template
extends: .example_test_esp32_template
tags:
- ESP32
- Example_T2_RS485
variables:
SETUP_TOOLS: "1"
example_test_013:
extends: .example_test_esp32_template
@@ -498,18 +594,6 @@ example_test_013:
- ESP32
- UT_T1_SDMODE
example_test_014:
extends: .example_test_esp32_template
tags:
- ESP32
- 8Mpsram
example_test_015:
extends: .example_test_esp32_template
tags:
- ESP32
- Example_PPP
example_test_016:
extends: .example_test_esp32_template
tags:
@@ -529,12 +613,6 @@ example_test_C3_GENERIC:
- ESP32C3
- Example_GENERIC
example_test_C3_FLASH_ENC_OTA:
extends: .example_test_esp32c3_template
tags:
- ESP32C3
- Example_Flash_Encryption_OTA_WiFi
example_test_ESP32_SDSPI:
extends: .example_test_esp32_template
tags:
@@ -558,6 +636,7 @@ example_test_ESP32C3_SDSPI:
needs:
- assign_custom_test
variables:
GIT_DEPTH: 1
TEST_CASE_PATH: "$CI_PROJECT_DIR/tools/test_apps"
CONFIG_FILE_PATH: "${CI_PROJECT_DIR}/tools/test_apps/test_configs"
@@ -571,6 +650,11 @@ example_test_ESP32C3_SDSPI:
- .test_app_template
- .rules:test:custom_test-esp32s2
.test_app_esp32c2_template:
extends:
- .test_app_template
- .rules:test:custom_test-esp32c2
.test_app_esp32c3_template:
extends:
- .test_app_template
@@ -589,23 +673,11 @@ test_app_test_001:
variables:
SETUP_TOOLS: "1"
test_app_test_002:
extends: .test_app_esp32_template
tags:
- ESP32
- Example_WIFI
test_app_test_eth:
extends: .test_app_esp32_template
tags:
- ESP32
- Example_EthKitV1
test_app_test_003:
extends: .test_app_esp32_template
tags:
- ESP32
- Example_PPP
- ethernet_router
test_app_test_004:
extends: .test_app_esp32s2_template
@@ -613,41 +685,43 @@ test_app_test_004:
- ESP32S2
- Example_GENERIC
test_app_test_esp32c2_generic:
extends: .test_app_esp32c2_template
tags:
- ESP32C2
- Example_GENERIC
- xtal_40mhz
test_app_test_esp32c2_26mhz:
extends: .test_app_esp32c2_template
tags:
- ESP32C2
- xtal_26mhz
test_app_test_005:
extends: .test_app_esp32c3_template
tags:
- ESP32C3
- Example_GENERIC
test_app_test_006:
extends: .test_app_esp32s3_template
tags:
- ESP32S3
- Example_GENERIC
test_app_test_esp32_generic:
extends: .test_app_esp32_template
tags:
- ESP32
- Example_GENERIC
test_app_test_flash_psram_f4r4:
extends: .test_app_esp32s3_template
tags:
- ESP32S3
- MSPI_F4R4
test_app_test_flash_psram_f4r8:
extends: .test_app_esp32s3_template
tags:
- ESP32S3
- MSPI_F4R8
test_app_test_flash_psram_f8r8:
extends: .test_app_esp32s3_template
tags:
- ESP32S3
- MSPI_F8R8
.unit_test_template:
extends: .target_test_job_template
needs: # the assign already needs all the build jobs
- assign_unit_test
variables:
GIT_DEPTH: 1
TEST_CASE_PATH: "$CI_PROJECT_DIR/tools/unit-test-app"
CONFIG_FILE_PATH: "${CI_PROJECT_DIR}/components/idf_test/unit_test/test_configs"
@@ -666,6 +740,11 @@ test_app_test_flash_psram_f8r8:
- .unit_test_template
- .rules:test:unit_test-esp32s3
.unit_test_esp32c2_template:
extends:
- .unit_test_template
- .rules:test:unit_test-esp32c2
.unit_test_esp32c3_template:
extends:
- .unit_test_template
@@ -717,7 +796,7 @@ UT_006:
UT_007:
extends: .unit_test_esp32_template
parallel: 5
parallel: 2
tags:
- ESP32_IDF
- UT_T1_1
@@ -757,13 +836,6 @@ UT_020:
- Example_SPI_Multi_device
- psram
UT_021:
extends: .unit_test_esp32_template
tags:
- ESP32_IDF
- psram
- UT_T1_FlashEncryption
UT_022:
extends: .unit_test_esp32_template
tags:
@@ -778,12 +850,6 @@ UT_028:
- UT_T2_1
- psram
UT_031:
extends: .unit_test_esp32_template
tags:
- ESP32_IDF
- UT_T1_FlashEncryption
UT_033:
extends: .unit_test_esp32_template
tags:
@@ -834,13 +900,17 @@ UT_043:
- psram
UT_044:
extends: .unit_test_esp32_template
extends:
- .unit_test_esp32_template
- .rules:test:unit_test-esp32-sdio
tags:
- ESP32_IDF
- UT_SDIO
UT_045:
extends: .unit_test_esp32_template
extends:
- .unit_test_esp32_template
- .rules:test:unit_test-esp32-sdio
tags:
- ESP32_IDF
- UT_SDIO
@@ -854,7 +924,7 @@ UT_046:
UT_047:
extends: .unit_test_esp32s2_template
parallel: 13
parallel: 6
tags:
- ESP32S2_IDF
- UT_T1_1
@@ -871,9 +941,24 @@ UT_S2_SDSPI:
- ESP32S2_IDF
- UT_T1_SPIMODE
UT_C2:
extends: .unit_test_esp32c2_template
parallel: 21
tags:
- ESP32C2_IDF
- UT_T1_1
- xtal_40mhz
UT_C2_26M:
extends: .unit_test_esp32c2_template
tags:
- ESP32C2_IDF
- UT_T1_1
- xtal_26mhz
UT_C3:
extends: .unit_test_esp32c3_template
parallel: 34
parallel: 31
tags:
- ESP32C3_IDF
- UT_T1_1
@@ -891,12 +976,6 @@ UT_C3_SPI_DUAL:
- ESP32C3_IDF
- Example_SPI_Multi_device
UT_C3_FLASH_ENC:
extends: .unit_test_esp32c3_template
tags:
- ESP32C3_IDF
- UT_T1_FlashEncryption
UT_C3_I2C:
extends: .unit_test_esp32c3_template
tags:
@@ -917,27 +996,19 @@ UT_C3_SDSPI:
UT_S3:
extends: .unit_test_esp32s3_template
parallel: 33
parallel: 29
tags:
- ESP32S3_IDF
- UT_T1_1
UT_S3_QUAD_PSRAM:
extends: .unit_test_esp32s3_template
parallel: 33
parallel: 4
tags:
- ESP32S3_IDF
- UT_T1_1
- quad_psram
UT_S3_OCTAL_PSRAM:
extends: .unit_test_esp32s3_template
parallel: 33
tags:
- ESP32S3_IDF
- UT_T1_1
- octal_psram
UT_S3_SPI_DUAL:
extends: .unit_test_esp32s3_template
tags:

View File

@@ -0,0 +1,53 @@
# pull only for most of the use cases for cache
# only set "push" policy for the jobs under this file.
# The cache would be updated when files matched specified patterns changes.
.upload_cache_template:
stage: upload_cache
image: $ESP_ENV_IMAGE
upload-pip-cache:
extends:
- .upload_cache_template
- .rules:patterns:python-cache
tags:
- $GEO
- build
cache:
key: pip-cache
paths:
- .cache/pip
policy: push
before_script: []
script:
- source tools/ci/utils.sh
- is_based_on_commits $REQUIRED_ANCESTOR_COMMITS
- source tools/ci/setup_python.sh
- rm -rf .cache/pip # clear old packages
- $IDF_PATH/tools/idf_tools.py install-python-env --features pytest,ci
parallel:
matrix:
- GEO: [ 'shiny', 'brew' ]
upload-submodules-cache:
extends:
- .upload_cache_template
- .rules:patterns:submodule
tags:
- $GEO
- build
cache:
key: submodule-cache
paths:
- .cache/submodule_archives
policy: push
before_script: []
script:
- source tools/ci/utils.sh
- is_based_on_commits $REQUIRED_ANCESTOR_COMMITS
- source tools/ci/setup_python.sh
- rm -rf .cache/submodule_archives # clear old submodule archives
- fetch_submodules
parallel:
matrix:
- GEO: [ 'shiny', 'brew' ]

14
.gitmodules vendored
View File

@@ -5,7 +5,7 @@
[submodule "components/bt/controller/lib_esp32"]
path = components/bt/controller/lib_esp32
url = ../../espressif/esp32-bt-lib.git
url = ../../espressif/esp32-bt-lib.git
[submodule "components/bootloader/subproject/components/micro-ecc/micro-ecc"]
path = components/bootloader/subproject/components/micro-ecc/micro-ecc
@@ -23,10 +23,6 @@
path = components/mbedtls/mbedtls
url = ../../espressif/mbedtls.git
[submodule "components/asio/asio"]
path = components/asio/asio
url = ../../espressif/asio.git
[submodule "components/lwip/lwip"]
path = components/lwip/lwip
url = ../../espressif/esp-lwip.git
@@ -43,10 +39,6 @@
path = components/unity/unity
url = ../../ThrowTheSwitch/Unity.git
[submodule "examples/build_system/cmake/import_lib/main/lib/tinyxml2"]
path = examples/build_system/cmake/import_lib/main/lib/tinyxml2
url = ../../leethomason/tinyxml2.git
[submodule "components/bt/host/nimble/nimble"]
path = components/bt/host/nimble/nimble
url = ../../espressif/esp-nimble.git
@@ -90,3 +82,7 @@
[submodule "components/bt/controller/lib_esp32h2/esp32h2-bt-lib"]
path = components/bt/controller/lib_esp32h2/esp32h2-bt-lib
url = ../../espressif/esp32h2-bt-lib.git
[submodule "components/bt/controller/lib_esp32c2/esp32c2-bt-lib"]
path = components/bt/controller/lib_esp32c2/esp32c2-bt-lib
url = ../../espressif/esp32c2-bt-lib.git

View File

@@ -12,12 +12,16 @@ repos:
# 2 - any file matching *test*/*expected* (for host tests, if possible use this naming pattern always)
# 3 - any directory named 'testdata'
# 4 - IDF monitor test data
# 5 - protobuf auto-generated files
exclude: &whitespace_excludes |
(?x)^(
.+\.(md|rst|map|bin)|
.+test.*\/.*expected.*|
.+\/testdata\/.+|
.+test_idf_monitor\/tests\/.+
.+test_idf_monitor\/tests\/.+|
.*_pb2.py|
.*.pb-c.h|
.*.pb-c.c
)$
- id: end-of-file-fixer
exclude: *whitespace_excludes
@@ -35,6 +39,10 @@ repos:
hooks:
- id: isort
name: isort (python)
exclude: >
(?x)^(
.*_pb2.py
)$
- repo: local
hooks:
- id: check-executables
@@ -97,21 +105,13 @@ repos:
- 'mypy==0.940'
- 'mypy-extensions==0.4.3'
- 'types-setuptools==57.4.14'
- 'types-PyYAML==0.1.9'
exclude: >
(?x)^(
.*_pb2.py
)$
language: python
types: [python]
- id: check-copyright
name: Check copyright notices
entry: tools/ci/check_copyright.py --verbose --replace
additional_dependencies:
- 'comment_parser == 1.2.3'
- 'thefuzz == 0.19.0'
- 'thefuzz[speedup] == 0.19.0; sys_platform != "win32"'
# don't depend on python-Levenshtein on Windows, as it requires Microsoft C++ Build Tools to install
- 'pyyaml == 5.4.1'
- 'pathspec == 0.9.0'
language: python
files: \.(py|c|h|cpp|hpp|ld|s|S)$
require_serial: true
- id: check-requirement-files
name: Check requirement files
entry: tools/ci/check_requirement_files.py
@@ -136,8 +136,27 @@ repos:
pass_filenames: false
additional_dependencies:
- pyparsing
- id: check-all-apps-readmes
name: Check if all apps readme files match given .build-test-rules.yml files. Modify the supported target tables
entry: tools/ci/check_build_test_rules.py check-readmes
language: python
files: 'tools/test_apps/.+|examples/.+|components/.+'
additional_dependencies:
- idf_build_apps
- id: sort-build-test-rules-ymls
name: sort .build-test-rules.yml files
entry: tools/ci/check_build_test_rules.py sort-yaml
language: python
files: '\.build-test-rules\.yml'
additional_dependencies:
- ruamel.yaml
- repo: https://github.com/pre-commit/pre-commit-hooks
rev: v4.0.1
hooks:
- 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.0.1
hooks:
- id: check-copyright
args: ['--ignore', 'tools/ci/check_copyright_ignore.txt', '--config', 'tools/ci/check_copyright_config.yaml']

View File

@@ -152,6 +152,7 @@ disable=print-statement,
too-many-statements,
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

View File

@@ -1,4 +1,4 @@
cmake_minimum_required(VERSION 3.5)
cmake_minimum_required(VERSION 3.16)
project(esp-idf C CXX ASM)
if(CMAKE_CURRENT_LIST_DIR STREQUAL CMAKE_SOURCE_DIR)
@@ -62,23 +62,6 @@ if(CONFIG_COMPILER_SAVE_RESTORE_LIBCALLS)
list(APPEND compile_options "-msave-restore")
endif()
if(CONFIG_COMPILER_DISABLE_GCC8_WARNINGS)
list(APPEND compile_options "-Wno-parentheses"
"-Wno-sizeof-pointer-memaccess"
"-Wno-clobbered")
list(APPEND compile_options "-Wno-format-overflow"
"-Wno-stringop-truncation"
"-Wno-misleading-indentation"
"-Wno-cast-function-type"
"-Wno-implicit-fallthrough"
"-Wno-unused-const-variable"
"-Wno-switch-unreachable"
"-Wno-format-truncation"
"-Wno-memset-elt-size"
"-Wno-int-in-bool-context")
endif()
if(CMAKE_C_COMPILER_ID MATCHES "GNU")
list(APPEND c_compile_options "-Wno-old-style-declaration")
endif()

51
Kconfig
View File

@@ -71,7 +71,7 @@ mainmenu "Espressif IoT Development Framework Configuration"
choice IDF_TARGET_ESP32H2_BETA_VERSION
prompt "ESP32-H2 beta version"
depends on IDF_TARGET_ESP32H2
default IDF_TARGET_ESP32H2_BETA_VERSION_1
default IDF_TARGET_ESP32H2_BETA_VERSION_2
help
Currently ESP32-H2 has several beta versions for internal use only.
Select the one that matches your chip model.
@@ -200,6 +200,48 @@ mainmenu "Espressif IoT Development Framework Configuration"
If enabled, this disables the linking of binary libraries in the application build. Note
that after enabling this Wi-Fi/Bluetooth will not work.
config APP_COMPATIBLE_PRE_V2_1_BOOTLOADERS
bool "App compatible with bootloaders before ESP-IDF v2.1"
select APP_COMPATIBLE_PRE_V3_1_BOOTLOADERS
depends on IDF_TARGET_ESP32
default n
help
Bootloaders before ESP-IDF v2.1 did less initialisation of the
system clock. This setting needs to be enabled to build an app
which can be booted by these older bootloaders.
If this setting is enabled, the app can be booted by any bootloader
from IDF v1.0 up to the current version.
If this setting is disabled, the app can only be booted by bootloaders
from IDF v2.1 or newer.
Enabling this setting adds approximately 1KB to the app's IRAM usage.
config APP_COMPATIBLE_PRE_V3_1_BOOTLOADERS
bool "App compatible with bootloader and partition table before ESP-IDF v3.1"
depends on IDF_TARGET_ESP32
default n
help
Partition tables before ESP-IDF V3.1 do not contain an MD5 checksum
field, and the bootloader before ESP-IDF v3.1 cannot read a partition
table that contains an MD5 checksum field.
Enable this option only if your app needs to boot on a bootloader and/or
partition table that was generated from a version *before* ESP-IDF v3.1.
If this option and Flash Encryption are enabled at the same time, and any
data partitions in the partition table are marked Encrypted, then the
partition encrypted flag should be manually verified in the app before accessing
the partition (see CVE-2021-27926).
config APP_INIT_CLK
bool
depends on IDF_TARGET_ESP32
default y if APP_COMPATIBLE_PRE_V2_1_BOOTLOADERS
default y if APP_BUILD_TYPE_ELF_RAM
endmenu # Build type
source "$COMPONENT_KCONFIGS_PROJBUILD_SOURCE_FILE"
@@ -424,13 +466,6 @@ mainmenu "Espressif IoT Development Framework Configuration"
This option can be enabled for RISC-V targets only.
config COMPILER_DISABLE_GCC8_WARNINGS
bool "Disable new warnings introduced in GCC 6 - 8"
default "n"
help
Enable this option if using GCC 6 or newer, and wanting to disable warnings which don't appear with
GCC 5.
config COMPILER_DUMP_RTL_FILES
bool "Dump RTL files during compilation"
help

9
SECURITY.md Normal file
View File

@@ -0,0 +1,9 @@
# Security Policy
## Supported Versions
Please refer to https://docs.espressif.com/projects/esp-idf/en/latest/esp32/versions.html#support-periods for more details on ESP-IDF supported versions and support period policy.
## Reporting a Vulnerability
If you think you have found a security vulnerability in Espressif solutions (including ESP-IDF), then please send an email to our Bug Bounty team at bugbounty@espressif.com. Please do **NOT** create a public GitHub issue.

View File

@@ -5,9 +5,11 @@
*/
#include <string.h>
#include "esp_cpu.h"
#include "esp_log.h"
#include "esp_app_trace.h"
#include "esp_app_trace_port.h"
#include "esp_private/startup_internal.h"
#ifdef CONFIG_APPTRACE_DEST_UART0
#define ESP_APPTRACE_DEST_UART_NUM 0
@@ -44,7 +46,7 @@ esp_err_t esp_apptrace_init(void)
void *hw_data = NULL;
// 'esp_apptrace_init()' is called on every core, so ensure to do main initialization only once
if (cpu_hal_get_core_id() == 0) {
if (esp_cpu_get_core_id() == 0) {
memset(&s_trace_channels, 0, sizeof(s_trace_channels));
hw = esp_apptrace_jtag_hw_get(&hw_data);
ESP_APPTRACE_LOGD("HW interface %p", hw);
@@ -75,6 +77,11 @@ esp_err_t esp_apptrace_init(void)
return ESP_OK;
}
ESP_SYSTEM_INIT_FN(esp_apptrace_init, ESP_SYSTEM_INIT_ALL_CORES, 115)
{
return esp_apptrace_init();
}
void esp_apptrace_down_buffer_config(uint8_t *buf, uint32_t size)
{
esp_apptrace_channel_t *ch;

View File

@@ -1,5 +1,5 @@
/*
* SPDX-FileCopyrightText: 2021 Espressif Systems (Shanghai) CO LTD
* SPDX-FileCopyrightText: 2021-2022 Espressif Systems (Shanghai) CO LTD
*
* SPDX-License-Identifier: Apache-2.0
*/
@@ -8,6 +8,7 @@
#include <string.h>
#include "sdkconfig.h"
#include "esp_log.h"
#include "esp_cpu.h"
#include "esp_app_trace_membufs_proto.h"
/** Trace data header. Every user data chunk is prepended with this header.
@@ -259,8 +260,8 @@ static inline uint8_t *esp_apptrace_membufs_wait4buf(esp_apptrace_membufs_proto_
static inline uint8_t *esp_apptrace_membufs_pkt_start(uint8_t *ptr, uint16_t size)
{
// it is safe to use cpu_hal_get_core_id() in macro call because arg is used only once inside it
((esp_tracedata_hdr_t *)ptr)->block_sz = ESP_APPTRACE_USR_BLOCK_CORE(cpu_hal_get_core_id()) | size;
// it is safe to use esp_cpu_get_core_id() in macro call because arg is used only once inside it
((esp_tracedata_hdr_t *)ptr)->block_sz = ESP_APPTRACE_USR_BLOCK_CORE(esp_cpu_get_core_id()) | size;
((esp_tracedata_hdr_t *)ptr)->wr_sz = 0;
return ptr + sizeof(esp_tracedata_hdr_t);
}

View File

@@ -62,13 +62,21 @@ esp_err_t esp_apptrace_lock_take(esp_apptrace_lock_t *lock, esp_apptrace_tmo_t *
while (1) {
//Todo: Replace the current locking mechanism and int_state with portTRY_ENTER_CRITICAL() instead.
// do not overwrite lock->int_state before we actually acquired the mux
#if CONFIG_FREERTOS_SMP
unsigned int_state = portDISABLE_INTERRUPTS();
#else
unsigned int_state = portSET_INTERRUPT_MASK_FROM_ISR();
#endif
bool success = spinlock_acquire(&lock->mux, 0);
if (success) {
lock->int_state = int_state;
return ESP_OK;
}
#if CONFIG_FREERTOS_SMP
portRESTORE_INTERRUPTS(int_state);
#else
portCLEAR_INTERRUPT_MASK_FROM_ISR(int_state);
#endif
// we can be preempted from this place till the next call (above) to portSET_INTERRUPT_MASK_FROM_ISR()
res = esp_apptrace_tmo_check(tmo);
if (res != ESP_OK) {
@@ -85,7 +93,11 @@ esp_err_t esp_apptrace_lock_give(esp_apptrace_lock_t *lock)
// after call to the following func we can not be sure that lock->int_state
// is not overwritten by other CPU who has acquired the mux just after we released it. See esp_apptrace_lock_take().
spinlock_release(&lock->mux);
#if CONFIG_FREERTOS_SMP
portRESTORE_INTERRUPTS(int_state);
#else
portCLEAR_INTERRUPT_MASK_FROM_ISR(int_state);
#endif
return ESP_OK;
}

View File

@@ -4,6 +4,10 @@ entries:
app_trace (noflash)
port_uart (noflash)
app_trace_util (noflash)
if APPTRACE_MEMBUFS_APPTRACE_PROTO_ENABLE:
app_trace_membufs_proto (noflash)
if APPTRACE_DEST_JTAG = y:
port (noflash)
if APPTRACE_SV_ENABLE = y:
SEGGER_SYSVIEW (noflash)
SEGGER_RTT_esp (noflash)

View File

@@ -6,6 +6,7 @@
#include "soc/soc.h"
#include "esp_log.h"
#include "esp_cpu.h"
#include "esp_app_trace_port.h"
#include "driver/uart.h"
@@ -105,7 +106,7 @@ static esp_err_t esp_apptrace_uart_unlock(esp_apptrace_uart_data_t *hw_data)
static inline void esp_apptrace_uart_hw_init(void)
{
ESP_APPTRACE_LOGI("Initialized UART on CPU%d", cpu_hal_get_core_id());
ESP_APPTRACE_LOGI("Initialized UART on CPU%d", esp_cpu_get_core_id());
}
@@ -199,7 +200,7 @@ static const int APP_TRACE_UART_RX_BUF_SIZE = 4024;
static esp_err_t esp_apptrace_uart_init(esp_apptrace_uart_data_t *hw_data)
{
int core_id = cpu_hal_get_core_id();
int core_id = esp_cpu_get_core_id();
if (core_id == 0) {
hw_data->tx_data_buff = (uint8_t *)heap_caps_malloc(APP_TRACE_MAX_TX_BUFF_UART, MALLOC_CAP_INTERNAL|MALLOC_CAP_8BIT);
if (hw_data->tx_data_buff == NULL){

View File

@@ -4,6 +4,7 @@
* SPDX-License-Identifier: Apache-2.0
*/
#include "esp_cpu.h"
#include "esp_log.h"
#include "esp_app_trace_membufs_proto.h"
#include "esp_app_trace_port.h"
@@ -36,7 +37,7 @@ typedef struct {
#define ESP_APPTRACE_RISCV_HOST_DATA (1 << 22)
#define ESP_APPTRACE_RISCV_HOST_CONNECT (1 << 23)
#define ESP_APPTRACE_RISCV_INITED(_hw_) ((_hw_)->inited & (1 << 0/*cpu_hal_get_core_id()*/))
#define ESP_APPTRACE_RISCV_INITED(_hw_) ((_hw_)->inited & (1 << 0/*esp_cpu_get_core_id()*/))
static esp_err_t esp_apptrace_riscv_init(esp_apptrace_riscv_data_t *hw_data);
static esp_err_t esp_apptrace_riscv_flush(esp_apptrace_riscv_data_t *hw_data, esp_apptrace_tmo_t *tmo);
@@ -94,7 +95,7 @@ esp_apptrace_hw_t *esp_apptrace_jtag_hw_get(void **data)
e.g. OpenOCD flasher stub use own implementation of it. */
__attribute__((weak)) int esp_apptrace_advertise_ctrl_block(void *ctrl_block_addr)
{
if (!esp_cpu_in_ocd_debug_mode()) {
if (!esp_cpu_dbgr_is_attached()) {
return 0;
}
return (int) semihosting_call_noerrno(ESP_SEMIHOSTING_SYS_APPTRACE_INIT, (long*)ctrl_block_addr);
@@ -139,7 +140,7 @@ static esp_err_t esp_apptrace_riscv_unlock(esp_apptrace_riscv_data_t *hw_data)
static esp_err_t esp_apptrace_riscv_init(esp_apptrace_riscv_data_t *hw_data)
{
int core_id = cpu_hal_get_core_id();
int core_id = esp_cpu_get_core_id();
if (hw_data->inited == 0) {
esp_apptrace_mem_block_t mem_blocks_cfg[2];
@@ -253,7 +254,7 @@ static bool esp_apptrace_riscv_host_is_connected(esp_apptrace_riscv_data_t *hw_d
if (!ESP_APPTRACE_RISCV_INITED(hw_data)) {
return false;
}
return s_tracing_ctrl[cpu_hal_get_core_id()].ctrl & ESP_APPTRACE_RISCV_HOST_CONNECT ? true : false;
return s_tracing_ctrl[esp_cpu_get_core_id()].ctrl & ESP_APPTRACE_RISCV_HOST_CONNECT ? true : false;
}
static esp_err_t esp_apptrace_riscv_flush_nolock(esp_apptrace_riscv_data_t *hw_data, uint32_t min_sz, esp_apptrace_tmo_t *tmo)
@@ -297,13 +298,13 @@ static inline void esp_apptrace_riscv_buffer_swap_lock(void)
// HACK: in this case host will set breakpoint just after ESP_APPTRACE_RISCV_CTRL_REG update,
// here we set address to set bp at
// enter ERI update critical section
s_tracing_ctrl[cpu_hal_get_core_id()].stat = (uint32_t)&__esp_apptrace_riscv_updated;
s_tracing_ctrl[esp_cpu_get_core_id()].stat = (uint32_t)&__esp_apptrace_riscv_updated;
}
static __attribute__((noinline)) void esp_apptrace_riscv_buffer_swap_unlock(void)
{
// exit ERI update critical section
s_tracing_ctrl[cpu_hal_get_core_id()].stat = 0;
s_tracing_ctrl[esp_cpu_get_core_id()].stat = 0;
// TODO: currently host sets breakpoint, use break instruction to stop;
// it will allow to use ESP_APPTRACE_RISCV_STAT_REG for other purposes
asm volatile (
@@ -317,13 +318,13 @@ static esp_err_t esp_apptrace_riscv_buffer_swap_start(uint32_t curr_block_id)
esp_apptrace_riscv_buffer_swap_lock();
uint32_t ctrl_reg = s_tracing_ctrl[cpu_hal_get_core_id()].ctrl;
uint32_t ctrl_reg = s_tracing_ctrl[esp_cpu_get_core_id()].ctrl;
uint32_t host_connected = ESP_APPTRACE_RISCV_HOST_CONNECT & ctrl_reg;
if (host_connected) {
uint32_t acked_block = ESP_APPTRACE_RISCV_BLOCK_ID_GET(ctrl_reg);
uint32_t host_to_read = ESP_APPTRACE_RISCV_BLOCK_LEN_GET(ctrl_reg);
if (host_to_read != 0 || acked_block != (curr_block_id & ESP_APPTRACE_RISCV_BLOCK_ID_MSK)) {
ESP_APPTRACE_LOGD("[%d]: Can not switch %x %d %x %x/%lx", cpu_hal_get_core_id(), ctrl_reg, host_to_read, acked_block,
ESP_APPTRACE_LOGD("[%d]: Can not switch %x %d %x %x/%lx", esp_cpu_get_core_id(), ctrl_reg, host_to_read, acked_block,
curr_block_id & ESP_APPTRACE_RISCV_BLOCK_ID_MSK, curr_block_id);
res = ESP_ERR_NO_MEM;
goto _on_err;
@@ -337,9 +338,9 @@ _on_err:
static esp_err_t esp_apptrace_riscv_buffer_swap_end(uint32_t new_block_id, uint32_t prev_block_len)
{
uint32_t ctrl_reg = s_tracing_ctrl[cpu_hal_get_core_id()].ctrl;
uint32_t ctrl_reg = s_tracing_ctrl[esp_cpu_get_core_id()].ctrl;
uint32_t host_connected = ESP_APPTRACE_RISCV_HOST_CONNECT & ctrl_reg;
s_tracing_ctrl[cpu_hal_get_core_id()].ctrl = ESP_APPTRACE_RISCV_BLOCK_ID(new_block_id) |
s_tracing_ctrl[esp_cpu_get_core_id()].ctrl = ESP_APPTRACE_RISCV_BLOCK_ID(new_block_id) |
host_connected | ESP_APPTRACE_RISCV_BLOCK_LEN(prev_block_len);
esp_apptrace_riscv_buffer_swap_unlock();
return ESP_OK;
@@ -353,7 +354,7 @@ static esp_err_t esp_apptrace_riscv_buffer_swap(uint32_t new_block_id)
static bool esp_apptrace_riscv_host_data_pending(void)
{
uint32_t ctrl_reg = s_tracing_ctrl[cpu_hal_get_core_id()].ctrl;
uint32_t ctrl_reg = s_tracing_ctrl[esp_cpu_get_core_id()].ctrl;
// ESP_APPTRACE_LOGV("%s() 0x%x", __func__, ctrl_reg);
return (ctrl_reg & ESP_APPTRACE_RISCV_HOST_DATA) ? true : false;
}

View File

@@ -148,7 +148,6 @@
// time exceeds specified timeout value operation is canceled and ESP_ERR_TIMEOUT code is returned.
#include "sdkconfig.h"
#include "soc/soc.h"
#include "soc/dport_access.h"
#include "soc/dport_reg.h"
#include "soc/tracemem_config.h"
#if CONFIG_IDF_TARGET_ESP32S2 || CONFIG_IDF_TARGET_ESP32S3
@@ -156,6 +155,7 @@
#endif
#include "eri.h"
#include "esp_private/trax.h"
#include "esp_cpu.h"
#include "esp_log.h"
#include "esp_app_trace_membufs_proto.h"
#include "esp_app_trace_port.h"
@@ -174,7 +174,7 @@
#define ESP_APPTRACE_TRAX_HOST_DATA (1 << 22)
#define ESP_APPTRACE_TRAX_HOST_CONNECT (1 << 23)
#define ESP_APPTRACE_TRAX_INITED(_hw_) ((_hw_)->inited & (1 << cpu_hal_get_core_id()))
#define ESP_APPTRACE_TRAX_INITED(_hw_) ((_hw_)->inited & (1 << esp_cpu_get_core_id()))
#define ESP_APPTRACE_TRAX_BLOCK_SIZE (0x4000UL)
@@ -272,7 +272,7 @@ static inline void esp_apptrace_trax_hw_init(void)
// must be read by host before any transfer using TRAX
eri_write(ESP_APPTRACE_TRAX_STAT_REG, 0);
ESP_APPTRACE_LOGI("Initialized TRAX on CPU%d", cpu_hal_get_core_id());
ESP_APPTRACE_LOGI("Initialized TRAX on CPU%d", esp_cpu_get_core_id());
}
static inline void esp_apptrace_trax_select_memory_block(int block_num)
@@ -311,7 +311,7 @@ static inline void esp_apptrace_trax_memory_enable(void)
static esp_err_t esp_apptrace_trax_init(esp_apptrace_trax_data_t *hw_data)
{
int core_id = cpu_hal_get_core_id();
int core_id = esp_cpu_get_core_id();
// 'esp_apptrace_trax_init()' is called on every core, so ensure to do main initialization only once
if (core_id == 0) {
@@ -498,7 +498,7 @@ 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 %x %d %x %x/%lx", cpu_hal_get_core_id(), ctrl_reg, host_to_read, acked_block,
ESP_APPTRACE_LOGD("HC[%d]: Can not switch %x %d %x %x/%lx", 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;

View File

@@ -342,12 +342,12 @@ define away all of the tracing macros.
#define traceTASK_SWITCHED_IN() if(prvGetTCBFromHandle(NULL) == xTaskGetIdleTaskHandle()) { \
SEGGER_SYSVIEW_OnIdle(); \
} else { \
SEGGER_SYSVIEW_OnTaskStartExec((U32)pxCurrentTCB[cpu_hal_get_core_id()]); \
SEGGER_SYSVIEW_OnTaskStartExec((U32)pxCurrentTCB[esp_cpu_get_core_id()]); \
}
#else
#define traceTASK_SWITCHED_IN() { \
if (memcmp(pxCurrentTCB[cpu_hal_get_core_id()]->pcTaskName, "IDLE", 5) != 0) { \
SEGGER_SYSVIEW_OnTaskStartExec((U32)pxCurrentTCB[cpu_hal_get_core_id()]); \
if (memcmp(pxCurrentTCB[esp_cpu_get_core_id()]->pcTaskName, "IDLE", 5) != 0) { \
SEGGER_SYSVIEW_OnTaskStartExec((U32)pxCurrentTCB[esp_cpu_get_core_id()]); \
} else { \
SEGGER_SYSVIEW_OnIdle(); \
} \
@@ -357,8 +357,8 @@ define away all of the tracing macros.
#define traceMOVED_TASK_TO_READY_STATE(pxTCB) SEGGER_SYSVIEW_OnTaskStartReady((U32)pxTCB)
#define traceREADDED_TASK_TO_READY_STATE(pxTCB)
#define traceMOVED_TASK_TO_DELAYED_LIST() SEGGER_SYSVIEW_OnTaskStopReady((U32)pxCurrentTCB[cpu_hal_get_core_id()], (1u << 2))
#define traceMOVED_TASK_TO_OVERFLOW_DELAYED_LIST() SEGGER_SYSVIEW_OnTaskStopReady((U32)pxCurrentTCB[cpu_hal_get_core_id()], (1u << 2))
#define traceMOVED_TASK_TO_DELAYED_LIST() SEGGER_SYSVIEW_OnTaskStopReady((U32)pxCurrentTCB[esp_cpu_get_core_id()], (1u << 2))
#define traceMOVED_TASK_TO_OVERFLOW_DELAYED_LIST() SEGGER_SYSVIEW_OnTaskStopReady((U32)pxCurrentTCB[esp_cpu_get_core_id()], (1u << 2))
#define traceMOVED_TASK_TO_SUSPENDED_LIST(pxTCB) SEGGER_SYSVIEW_OnTaskStopReady((U32)pxTCB, ((3u << 3) | 3))
#define traceISR_EXIT_TO_SCHEDULER() SEGGER_SYSVIEW_RecordExitISRToScheduler()

View File

@@ -12,6 +12,8 @@
#include "esp_app_trace.h"
#include "esp_log.h"
#include "esp_cpu.h"
#include "esp_private/startup_internal.h"
const static char *TAG = "segger_rtt";
@@ -157,7 +159,7 @@ unsigned SEGGER_RTT_WriteSkipNoLock(unsigned BufferIndex, const void* pBuffer, u
uint8_t event_id = *pbuf;
#if CONFIG_APPTRACE_SV_DEST_UART
if (
(APPTRACE_SV_DEST_CPU != cpu_hal_get_core_id()) &&
(APPTRACE_SV_DEST_CPU != esp_cpu_get_core_id()) &&
(
(event_id == SYSVIEW_EVTID_ISR_ENTER) ||
(event_id == SYSVIEW_EVTID_ISR_EXIT) ||
@@ -188,7 +190,7 @@ unsigned SEGGER_RTT_WriteSkipNoLock(unsigned BufferIndex, const void* pBuffer, u
return 0;
}
#if CONFIG_APPTRACE_SV_DEST_JTAG
if (cpu_hal_get_core_id()) { // dual core specific code
if (esp_cpu_get_core_id()) { // dual core specific code
// use the highest - 1 bit of event ID to indicate core ID
// the highest bit can not be used due to event ID encoding method
// this reduces supported ID range to [0..63] (for 1 byte IDs) plus [128..16383] (for 2 bytes IDs)
@@ -288,4 +290,17 @@ int SEGGER_RTT_ConfigDownBuffer(unsigned BufferIndex, const char* sName, void* p
return 0;
}
/*************************** Init hook ****************************
*
* This init function is placed here because this port file will be
* linked whenever SystemView is used.
*/
ESP_SYSTEM_INIT_FN(sysview_init, BIT(0), 120)
{
SEGGER_SYSVIEW_Conf();
return ESP_OK;
}
/*************************** End of file ****************************/

View File

@@ -1,3 +1,4 @@
idf_component_register(SRC_DIRS "."
PRIV_INCLUDE_DIRS "."
PRIV_REQUIRES cmock driver)
target_compile_options(${COMPONENT_LIB} PRIVATE "-Wno-format")

View File

@@ -12,6 +12,7 @@
#include "driver/gptimer.h"
#include "esp_intr_alloc.h"
#include "esp_rom_sys.h"
#include "esp_cpu.h"
#include "freertos/FreeRTOS.h"
#include "freertos/semphr.h"
#include "freertos/task.h"
@@ -179,7 +180,7 @@ static void esp_apptrace_dummy_task(void *p)
int i = 0;
while (!arg->stop) {
ESP_APPTRACE_TEST_LOGD("%x: dummy task work %d.%d", xTaskGetCurrentTaskHandle(), cpu_hal_get_core_id(), i++);
ESP_APPTRACE_TEST_LOGD("%x: dummy task work %d.%d", xTaskGetCurrentTaskHandle(), esp_cpu_get_core_id(), i++);
if (tmo_ticks) {
vTaskDelay(tmo_ticks);
}
@@ -210,7 +211,7 @@ static void esp_apptrace_test_task(void *p)
.resolution_hz = 1000000,
};
TEST_ESP_OK(gptimer_new_timer(&timer_config, &arg->timers[i].gptimer));
*(uint32_t *)arg->timers[i].data.buf = ((uint32_t)arg->timers[i].gptimer) | (1 << 31) | (cpu_hal_get_core_id() ? 0x1 : 0);
*(uint32_t *)arg->timers[i].data.buf = ((uint32_t)arg->timers[i].gptimer) | (1 << 31) | (esp_cpu_get_core_id() ? 0x1 : 0);
ESP_APPTRACE_TEST_LOGI("%x: start timer %x period %u us", xTaskGetCurrentTaskHandle(), arg->timers[i].gptimer, arg->timers[i].data.period);
gptimer_alarm_config_t alarm_config = {
.reload_count = 0,
@@ -226,7 +227,7 @@ static void esp_apptrace_test_task(void *p)
TEST_ESP_OK(gptimer_start(arg->timers[i].gptimer));
}
*(uint32_t *)arg->data.buf = (uint32_t)xTaskGetCurrentTaskHandle() | (cpu_hal_get_core_id() ? 0x1 : 0);
*(uint32_t *)arg->data.buf = (uint32_t)xTaskGetCurrentTaskHandle() | (esp_cpu_get_core_id() ? 0x1 : 0);
arg->data.wr_cnt = 0;
arg->data.wr_err = 0;
while (!arg->stop) {
@@ -652,7 +653,7 @@ static void esp_logtrace_task(void *p)
ESP_LOGI(TAG, "%p: sample print 4 %c", xTaskGetCurrentTaskHandle(), ((i & 0xFF) % 95) + 32);
ESP_LOGI(TAG, "%p: sample print 5 %f", xTaskGetCurrentTaskHandle(), 1.0);
ESP_LOGI(TAG, "%p: sample print 6 %f", xTaskGetCurrentTaskHandle(), 3.45);
ESP_LOGI(TAG, "%p: logtrace task work %d.%d", xTaskGetCurrentTaskHandle(), cpu_hal_get_core_id(), i);
ESP_LOGI(TAG, "%p: logtrace task work %d.%d", xTaskGetCurrentTaskHandle(), esp_cpu_get_core_id(), i);
if (++i == 10000) {
break;
}

View File

@@ -48,34 +48,37 @@ if(NOT BOOTLOADER_BUILD)
add_dependencies(flash blank_ota_data)
add_dependencies(encrypted-flash blank_ota_data)
set(otatool_py ${python} ${COMPONENT_DIR}/otatool.py)
set(otatool_py "${python}" "${COMPONENT_DIR}/otatool.py")
set(esptool_args --esptool-args before=${CONFIG_ESPTOOLPY_BEFORE} after=${CONFIG_ESPTOOLPY_AFTER})
set(otatool_args --partition-table-file ${PARTITION_CSV_PATH})
list(APPEND otatool_args --partition-table-offset ${PARTITION_TABLE_OFFSET})
set(esptool_args "--esptool-args;before=${CONFIG_ESPTOOLPY_BEFORE};after=${CONFIG_ESPTOOLPY_AFTER}")
set(otatool_args "--partition-table-file;${PARTITION_CSV_PATH}"
"--partition-table-offset;${PARTITION_TABLE_OFFSET}")
idf_component_get_property(esptool_py_dir esptool_py COMPONENT_DIR)
add_custom_target(read-otadata DEPENDS "${PARTITION_CSV_PATH}"
COMMAND ${CMAKE_COMMAND}
-D IDF_PATH="${idf_path}"
-D SERIAL_TOOL="${otatool_py}"
-D SERIAL_TOOL_ARGS="${esptool_args};${otatool_args};read_otadata"
-D WORKING_DIRECTORY="${build_dir}"
-D "IDF_PATH=${idf_path}"
-D "SERIAL_TOOL=${otatool_py}"
-D "SERIAL_TOOL_ARGS=${esptool_args};${otatool_args};read_otadata"
-D "WORKING_DIRECTORY=${build_dir}"
-P ${esptool_py_dir}/run_serial_tool.cmake
WORKING_DIRECTORY ${CMAKE_CURRENT_LIST_DIR}
WORKING_DIRECTORY "${build_dir}"
USES_TERMINAL
VERBATIM
)
add_deprecated_target_alias(read_otadata read-otadata)
add_custom_target(erase-otadata DEPENDS "${PARTITION_CSV_PATH}"
COMMAND ${CMAKE_COMMAND}
-D IDF_PATH="${idf_path}"
-D SERIAL_TOOL="${otatool_py}"
-D SERIAL_TOOL_ARGS="${esptool_args};${otatool_args};erase_otadata"
-D WORKING_DIRECTORY="${build_dir}"
-D "IDF_PATH=${idf_path}"
-D "SERIAL_TOOL=${otatool_py}"
-D "SERIAL_TOOL_ARGS=${esptool_args};${otatool_args};erase_otadata"
-D "WORKING_DIRECTORY=${build_dir}"
-P ${esptool_py_dir}/run_serial_tool.cmake
WORKING_DIRECTORY ${CMAKE_CURRENT_LIST_DIR}
WORKING_DIRECTORY "${build_dir}"
USES_TERMINAL
VERBATIM
)
add_deprecated_target_alias(erase_otadata erase-otadata)

View File

@@ -14,11 +14,10 @@
#include "esp_err.h"
#include "esp_partition.h"
#include "esp_spi_flash.h"
#include "spi_flash_mmap.h"
#include "esp_image_format.h"
#include "esp_secure_boot.h"
#include "esp_flash_encrypt.h"
#include "esp_spi_flash.h"
#include "sdkconfig.h"
#include "esp_ota_ops.h"
@@ -31,6 +30,20 @@
#include "esp_efuse.h"
#include "esp_attr.h"
#if CONFIG_IDF_TARGET_ESP32
#include "esp32/rom/secure_boot.h"
#elif CONFIG_IDF_TARGET_ESP32S2
#include "esp32s2/rom/secure_boot.h"
#elif CONFIG_IDF_TARGET_ESP32C3
#include "esp32c3/rom/secure_boot.h"
#elif CONFIG_IDF_TARGET_ESP32S3
#include "esp32s3/rom/secure_boot.h"
#elif CONFIG_IDF_TARGET_ESP32H2
#include "esp32h2/rom/secure_boot.h"
#elif CONFIG_IDF_TARGET_ESP32C2
#include "esp32c2/rom/secure_boot.h"
#endif
#define SUB_TYPE_ID(i) (i & 0x0F)
/* Partial_data is word aligned so no reallocation is necessary for encrypted flash write */
@@ -899,7 +912,7 @@ esp_err_t esp_ota_revoke_secure_boot_public_key(esp_ota_secure_boot_public_key_i
}
esp_err_t ret;
ets_secure_boot_key_digests_t trusted_keys;
esp_secure_boot_key_digests_t trusted_keys;
ret = esp_secure_boot_read_key_digests(&trusted_keys);
if (ret != ESP_OK) {
ESP_LOGE(TAG, "Could not read the secure boot key digests from efuse. Aborting..");

View File

@@ -2,3 +2,4 @@ idf_component_register(SRC_DIRS "."
PRIV_INCLUDE_DIRS "."
PRIV_REQUIRES cmock test_utils app_update bootloader_support nvs_flash driver
)
target_compile_options(${COMPONENT_LIB} PRIVATE "-Wno-format")

View File

@@ -32,9 +32,13 @@
#include "driver/gpio.h"
#include "esp_sleep.h"
#include "test_utils.h"
#if !TEMPORARY_DISABLED_FOR_TARGETS(ESP32C2)
//IDF-5131
RTC_DATA_ATTR static int boot_count = 0;
static const char *TAG = "ota_test";
/* @brief Copies a current app to next partition using handle.
@@ -821,6 +825,7 @@ static void test_flow6(void)
// 3 Stage: run OTA0 -> check it -> erase OTA_DATA for next tests -> PASS
TEST_CASE_MULTIPLE_STAGES("Switching between factory, OTA0 using esp_ota_write_with_offset", "[app_update][timeout=90][reset=DEEPSLEEP_RESET, DEEPSLEEP_RESET]", start_test, test_flow6, test_flow6);
//IDF-5145
TEST_CASE("Test bootloader_common_get_sha256_of_partition returns ESP_ERR_IMAGE_INVALID when image is ivalid", "[partitions]")
{
const esp_partition_t *cur_app = esp_ota_get_running_partition();
@@ -842,3 +847,4 @@ 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");
}
#endif //!TEMPORARY_DISABLED_FOR_TARGETS(ESP32C2)

View File

@@ -1,44 +0,0 @@
if(NOT CONFIG_LWIP_IPV6 AND NOT CMAKE_BUILD_EARLY_EXPANSION)
# note: the component is still included in the build so it can become visible again in config
# without needing to re-run CMake. However no source or header files are built.
message(STATUS "IPV6 support is disabled so the asio component will not be built")
idf_component_register()
return()
endif()
set(asio_sources "asio/asio/src/asio.cpp")
if(CONFIG_ASIO_SSL_SUPPORT)
if(CONFIG_ASIO_USE_ESP_OPENSSL)
list(APPEND asio_sources
"port/src/asio_ssl_impl.cpp"
"port/mbedtls/src/mbedtls_context.cpp"
"port/mbedtls/src/mbedtls_engine.cpp")
set(asio_priv_includes "port/mbedtls/include")
endif()
if(CONFIG_ASIO_USE_ESP_WOLFSSL)
list(APPEND asio_sources
"asio/asio/src/asio_ssl.cpp")
endif()
endif()
idf_component_register(SRCS ${asio_sources}
INCLUDE_DIRS "asio/asio/include" "port/include"
PRIV_INCLUDE_DIRS ${asio_priv_includes}
REQUIRES lwip)
if(CONFIG_ASIO_SSL_SUPPORT)
if(CONFIG_ASIO_USE_ESP_WOLFSSL)
idf_component_get_property(wolflib esp-wolfssl COMPONENT_LIB)
idf_component_get_property(wolfdir esp-wolfssl COMPONENT_DIR)
target_link_libraries(${COMPONENT_LIB} PUBLIC ${wolflib})
target_include_directories(${COMPONENT_LIB} PUBLIC ${wolfdir}/wolfssl/wolfssl)
endif()
if(CONFIG_ASIO_USE_ESP_OPENSSL)
idf_component_get_property(mbedtls mbedtls COMPONENT_LIB)
target_link_libraries(${COMPONENT_LIB} PUBLIC ${mbedtls})
endif()
endif()

View File

@@ -1,36 +0,0 @@
menu "ESP-ASIO"
visible if LWIP_IPV6
config ASIO_SSL_SUPPORT
bool "Enable SSL/TLS support of ASIO"
default n
help
Enable support for basic SSL/TLS features, available for mbedTLS/OpenSSL
as well as wolfSSL TLS library.
choice ASIO_SSL_LIBRARY_CHOICE
prompt "Choose SSL/TLS library for ESP-TLS (See help for more Info)"
default ASIO_USE_ESP_OPENSSL
depends on ASIO_SSL_SUPPORT
help
The ASIO support multiple backend TLS libraries. Currently the mbedTLS with a thin ESP-OpenSSL
port layer (default choice) and WolfSSL are supported.
Different TLS libraries may support different features and have different resource
usage. Consult the ESP-TLS documentation in ESP-IDF Programming guide for more details.
config ASIO_USE_ESP_OPENSSL
bool "esp-openssl"
config ASIO_USE_ESP_WOLFSSL
depends on TLS_STACK_WOLFSSL
bool "wolfSSL (License info in wolfSSL directory README)"
endchoice
config ASIO_SSL_BIO_SIZE
int "Size of BIO object"
default 1024
depends on ASIO_SSL_SUPPORT
help
Size in bytes of SSL-BIO implementation.
Reducing the BIO size saves more RAM, but may slow down input output operations due to
fragmentation.
endmenu

View File

@@ -1,45 +0,0 @@
/*
* SPDX-FileCopyrightText: 2018-2021 Espressif Systems (Shanghai) CO LTD
*
* SPDX-License-Identifier: Apache-2.0
*/
#ifndef _ESP_ASIO_CONFIG_H_
#define _ESP_ASIO_CONFIG_H_
//
// Enabling exceptions only when they are enabled in menuconfig
//
# include <sdkconfig.h>
# ifndef CONFIG_COMPILER_CXX_EXCEPTIONS
# define ASIO_NO_EXCEPTIONS
# endif // CONFIG_COMPILER_CXX_EXCEPTIONS
# ifndef CONFIG_COMPILER_RTTI
# define ASIO_NO_TYPEID
# endif // CONFIG_COMPILER_RTTI
//
// LWIP compatibility inet and address macros/functions
//
# define LWIP_COMPAT_SOCKET_INET 1
# define LWIP_COMPAT_SOCKET_ADDR 1
//
// Specific ASIO feature flags
//
# define ASIO_DISABLE_SERIAL_PORT
# define ASIO_SEPARATE_COMPILATION
# define ASIO_STANDALONE
# define ASIO_HAS_PTHREADS
# ifdef CONFIG_ASIO_USE_ESP_OPENSSL
# define ASIO_USE_ESP_OPENSSL
# define OPENSSL_NO_ENGINE
# define ASIO_SSL_DETAIL_OPENSSL_TYPES_HPP
# include "openssl_stub.hpp"
# elif CONFIG_ASIO_USE_ESP_WOLFSSL
# define ASIO_USE_WOLFSSL
# endif // CONFIG_ASIO_USE_ESP_OPENSSL
#endif // _ESP_ASIO_CONFIG_H_

View File

@@ -1,30 +0,0 @@
/*
* SPDX-FileCopyrightText: 2018-2021 Espressif Systems (Shanghai) CO LTD
*
* SPDX-License-Identifier: Apache-2.0
*/
#ifndef _ESP_EXCEPTION_H_
#define _ESP_EXCEPTION_H_
//
// This exception stub is enabled only if exceptions are disabled in menuconfig
//
#if !defined(CONFIG_COMPILER_CXX_EXCEPTIONS) && defined (ASIO_NO_EXCEPTIONS)
#include "esp_log.h"
//
// asio exception stub
//
namespace asio {
namespace detail {
template <typename Exception>
void throw_exception(const Exception& e)
{
ESP_LOGE("esp32_asio_exception", "Caught exception: %s!", e.what());
abort();
}
}}
#endif // CONFIG_COMPILER_CXX_EXCEPTIONS==1 && defined (ASIO_NO_EXCEPTIONS)
#endif // _ESP_EXCEPTION_H_

View File

@@ -1,46 +0,0 @@
//
// SPDX-FileCopyrightText: 2021 Espressif Systems (Shanghai) CO LTD
//
// SPDX-License-Identifier: BSL-1.0
//
#pragma once
//
// Supply OpenSSL macros and flags for asio-ssl header files
//
#define OPENSSL_VERSION_NUMBER 0x10100001L
#define SSL_R_SHORT_READ 219
#define SSL_OP_ALL 0
#define SSL_OP_SINGLE_DH_USE 0
#define SSL_OP_NO_COMPRESSION 0
#define SSL_OP_NO_SSLv2 0x01000000L
#define SSL_OP_NO_SSLv3 0x02000000L
#define SSL_OP_NO_TLSv1 0x04000000L
#define SSL_VERIFY_NONE 0x00
#define SSL_VERIFY_PEER 0x01
#define SSL_VERIFY_FAIL_IF_NO_PEER_CERT 0x02
#define SSL_VERIFY_CLIENT_ONCE 0x04
//
// Implement asio-ssl layer with these three classes in asio::ssl::mbedtls
//
namespace asio {
namespace ssl {
namespace mbedtls {
class engine;
class bio;
class shared_ctx;
} } } // namespace asio::ssl::mbedtls
//
// Supply OpenSSL types as aliases to mbedtls classes
//
using X509_STORE_CTX=void;
using BIO=asio::ssl::mbedtls::bio;
using SSL_CTX=asio::ssl::mbedtls::shared_ctx;
using SSL=asio::ssl::mbedtls::engine;

View File

@@ -1,113 +0,0 @@
//
// SPDX-FileCopyrightText: 2021 Espressif Systems (Shanghai) CO LTD
//
// SPDX-License-Identifier: BSL-1.0
//
#pragma once
#include "asio/ssl/context_base.hpp"
#include "asio/ssl/context.hpp"
#include "sdkconfig.h"
namespace asio {
namespace ssl {
namespace mbedtls {
class bio {
static constexpr int BIO_SIZE = CONFIG_ASIO_SSL_BIO_SIZE;
static constexpr int BIO_FLAGS_READ = 1;
static constexpr int BIO_FLAGS_WRITE = 2;
public:
int write(const void *buf, int len)
{
if (buf == nullptr || len <= 0) {
// not an error, just empty operation (as in openssl/bio)
return 0;
}
int remaining = size_ - offset_;
if (remaining <= 0) {
flags_ |= BIO_FLAGS_WRITE;
return -1;
}
int len_to_write = len > remaining ? remaining : len;
std::memcpy(&data_[offset_], buf, len_to_write);
offset_ += len_to_write;
dlen_ = offset_;
if (len_to_write == len) {
flags_ &= ~BIO_FLAGS_WRITE;
}
return len_to_write;
}
int read(void *buf, int len)
{
if (buf == nullptr || len <= 0) {
// not an error, just empty operation (as in openssl/bio)
return 0;
}
int remaining = peer_->dlen_ - peer_->roffset_;
if (remaining <= 0) {
flags_ |= BIO_FLAGS_READ;
return -1;
}
int len_to_read = remaining > len ? len : remaining;
std::memcpy(buf, &peer_->data_[peer_->roffset_], len_to_read);
peer_->roffset_ += len_to_read;
if (len_to_read == len) {
flags_ &= ~BIO_FLAGS_READ;
}
if (peer_->offset_) {
// shift data back to the beginning of the buffer
std::memmove(&peer_->data_[0], &peer_->data_[peer_->roffset_], peer_->offset_ - peer_->roffset_);
peer_->offset_ -= peer_->roffset_;
peer_->roffset_ = 0;
peer_->dlen_ = peer_->offset_;
}
return len_to_read;
}
size_t wpending() const
{
return dlen_ - roffset_;
}
size_t ctrl_pending()
{
return peer_->dlen_ - peer_->roffset_;
}
bool should_write() const
{
return flags_ & BIO_FLAGS_WRITE;
}
bool should_read() const
{
return flags_ & BIO_FLAGS_READ;
}
static std::pair<std::shared_ptr<bio>, std::shared_ptr<bio>> new_pair(const char* error_location)
{
auto b1 = std::shared_ptr<bio>(new (std::nothrow) bio);
auto b2 = std::shared_ptr<bio>(new (std::nothrow) bio);
if (b1 == nullptr || b2 == nullptr) {
throw_alloc_failure(error_location);
} else {
b1->peer_ = b2;
b2->peer_ = b1;
}
return std::make_pair(b1, b2);
}
private:
std::array<uint8_t, BIO_SIZE> data_ {};
size_t size_ {BIO_SIZE};
std::shared_ptr<bio> peer_ {nullptr};
int dlen_ {0};
size_t offset_ {0};
size_t roffset_ {0};
size_t flags_ {0};
};
} } } // namespace asio::ssl::mbedtls

View File

@@ -1,105 +0,0 @@
//
// SPDX-FileCopyrightText: 2021 Espressif Systems (Shanghai) CO LTD
//
// SPDX-License-Identifier: BSL-1.0
//
#pragma once
#include "asio/ssl/context_base.hpp"
#include "asio/ssl/context.hpp"
namespace asio {
namespace error {
const asio::error_category& get_mbedtls_category();
} // namespace error
namespace ssl {
namespace mbedtls {
void throw_alloc_failure(const char* location);
const char *error_message(int error_code);
enum class container {
CERT, CA_CERT, PRIVKEY
};
template <typename T, typename... Args>
inline T* create(const char * location, Args &&... args)
{
T* t = new (std::nothrow) T(std::forward<Args>(args)...);
if (t == nullptr)
{
throw_alloc_failure(location);
}
return t;
}
class context {
public:
explicit context(context_base::method m): method_(m), options_(0) {}
const unsigned char *data(container c) const
{
switch (c) {
case container::CERT:
return static_cast<const unsigned char *>(cert_chain_.data());
case container::CA_CERT:
return static_cast<const unsigned char *>(ca_cert_.data());
case container::PRIVKEY:
return static_cast<const unsigned char *>(private_key_.data());
}
return nullptr;
}
std::size_t size(container c) const
{
switch (c) {
case container::CERT:
return cert_chain_.size();
case container::CA_CERT:
return ca_cert_.size();
case container::PRIVKEY:
return private_key_.size();
}
return 0;
}
context_base::method method_;
asio::ssl::context::options options_;
const_buffer cert_chain_;
const_buffer private_key_;
const_buffer ca_cert_;
};
/**
* @brief Wrapper class around SSL_CTX so we can easily create
* a shared pointer to the context without throwing the default exception.
* This is useful, as we can use asio::detail::throw_error for allocation errors.
*/
class shared_ctx {
public:
static SSL_CTX *create(const char* location, context_base::method m)
{
auto wrapped = asio::ssl::mbedtls::create<shared_ctx>(location, m);
if (wrapped->ctx_ == nullptr)
{
throw_alloc_failure(location);
}
return wrapped;
}
std::shared_ptr<mbedtls::context> get() const
{
return ctx_;
}
explicit shared_ctx(context_base::method m)
:ctx_(std::shared_ptr<context>(new (std::nothrow) context(m))) { }
private:
std::shared_ptr<mbedtls::context> ctx_;
};
} } } // namespace asio::ssl::mbedtls

View File

@@ -1,293 +0,0 @@
//
// SPDX-FileCopyrightText: 2021-2022 Espressif Systems (Shanghai) CO LTD
//
// SPDX-License-Identifier: BSL-1.0
//
#pragma once
#include "mbedtls/ssl.h"
#include "mbedtls/entropy.h"
#include "mbedtls/ctr_drbg.h"
#include "mbedtls/error.h"
#include "mbedtls/esp_debug.h"
#include "esp_log.h"
namespace asio {
namespace ssl {
namespace mbedtls {
const char *error_message(int error_code)
{
static char error_buf[100];
mbedtls_strerror(error_code, error_buf, sizeof(error_buf));
return error_buf;
}
void throw_alloc_failure(const char* location)
{
asio::error_code ec( MBEDTLS_ERR_SSL_ALLOC_FAILED, asio::error::get_mbedtls_category());
asio::detail::throw_error(ec, location);
}
namespace error_codes {
bool is_error(int ret)
{
return ret < 0 && ret != MBEDTLS_ERR_SSL_WANT_READ && ret != MBEDTLS_ERR_SSL_WANT_WRITE;
}
static bool want_write(int ret)
{
return ret == MBEDTLS_ERR_SSL_WANT_WRITE;
}
static bool want_read(int ret)
{
return ret == MBEDTLS_ERR_SSL_WANT_READ;
}
} // namespace error_codes
enum rw_state {
IDLE, READING, WRITING, CLOSED
};
class engine {
public:
explicit engine(std::shared_ptr<context> ctx): ctx_(std::move(ctx)),
bio_(bio::new_pair("mbedtls-engine")), state_(IDLE), verify_mode_(0) {}
void set_verify_mode(asio::ssl::verify_mode mode)
{
verify_mode_ = mode;
}
bio* ext_bio() const
{
return bio_.second.get();
}
rw_state get_state() const
{
return state_;
}
int shutdown()
{
int ret = mbedtls_ssl_close_notify(&impl_.ssl_);
if (ret) {
impl::print_error("mbedtls_ssl_close_notify", ret);
}
state_ = CLOSED;
return ret;
}
int connect()
{
return handshake(true);
}
int accept()
{
return handshake(false);
}
int write(const void *buffer, int len)
{
int ret = impl_.write(buffer, len);
state_ = ret == len ? IDLE: WRITING;
return ret;
}
int read(void *buffer, int len)
{
int ret = impl_.read(buffer, len);
state_ = ret == len ? IDLE: READING;
return ret;
}
private:
int handshake(bool is_client_not_server)
{
if (impl_.before_handshake()) {
impl_.configure(ctx_.get(), is_client_not_server, impl_verify_mode(is_client_not_server));
}
return do_handshake();
}
static int bio_read(void *ctx, unsigned char *buf, size_t len)
{
auto bio = static_cast<BIO*>(ctx);
int read = bio->read(buf, len);
if (read <= 0 && bio->should_read()) {
return MBEDTLS_ERR_SSL_WANT_READ;
}
return read;
}
static int bio_write(void *ctx, const unsigned char *buf, size_t len)
{
auto bio = static_cast<BIO*>(ctx);
int written = bio->write(buf, len);
if (written <= 0 && bio->should_write()) {
return MBEDTLS_ERR_SSL_WANT_WRITE;
}
return written;
}
int do_handshake()
{
int ret = 0;
mbedtls_ssl_set_bio(&impl_.ssl_, bio_.first.get(), bio_write, bio_read, nullptr);
while (impl_.ssl_.MBEDTLS_PRIVATE(state) != MBEDTLS_SSL_HANDSHAKE_OVER) {
ret = mbedtls_ssl_handshake_step(&impl_.ssl_);
if (ret != 0) {
if (ret != MBEDTLS_ERR_SSL_WANT_READ && ret != MBEDTLS_ERR_SSL_WANT_WRITE) {
impl::print_error("mbedtls_ssl_handshake_step", ret);
}
if (ret == MBEDTLS_ERR_SSL_WANT_READ) {
state_ = READING;
} else if (ret == MBEDTLS_ERR_SSL_WANT_WRITE) {
state_ = WRITING;
}
break;
}
}
return ret;
}
// Converts OpenSSL verification mode to mbedtls enum
int impl_verify_mode(bool is_client_not_server) const
{
int mode = MBEDTLS_SSL_VERIFY_UNSET;
if (is_client_not_server) {
if (verify_mode_ & SSL_VERIFY_PEER)
mode = MBEDTLS_SSL_VERIFY_REQUIRED;
else if (verify_mode_ == SSL_VERIFY_NONE)
mode = MBEDTLS_SSL_VERIFY_NONE;
} else {
if (verify_mode_ & SSL_VERIFY_FAIL_IF_NO_PEER_CERT)
mode = MBEDTLS_SSL_VERIFY_REQUIRED;
else if (verify_mode_ & SSL_VERIFY_PEER)
mode = MBEDTLS_SSL_VERIFY_OPTIONAL;
else if (verify_mode_ == SSL_VERIFY_NONE)
mode = MBEDTLS_SSL_VERIFY_NONE;
}
return mode;
}
struct impl {
static void print_error(const char* function, int error_code)
{
constexpr const char *TAG="mbedtls-engine-impl";
ESP_LOGE(TAG, "%s() returned -0x%04X", function, -error_code);
ESP_LOGI(TAG, "-0x%04X: %s", -error_code, error_message(error_code));
}
bool before_handshake() const
{
return ssl_.MBEDTLS_PRIVATE(state) == 0;
}
int write(const void *buffer, int len)
{
int ret = mbedtls_ssl_write(&ssl_, static_cast<const unsigned char *>(buffer), len);
if (ret < 0 && ret != MBEDTLS_ERR_SSL_WANT_WRITE) {
print_error("mbedtls_ssl_write", ret);
}
return ret;
}
int read(void *buffer, int len)
{
int ret = mbedtls_ssl_read(&ssl_, static_cast<unsigned char *>(buffer), len);
if (ret < 0 && ret != MBEDTLS_ERR_SSL_WANT_READ) {
print_error("mbedtls_ssl_read", ret);
}
return ret;
}
impl()
{
const unsigned char pers[] = "asio ssl";
mbedtls_ssl_init(&ssl_);
mbedtls_ssl_config_init(&conf_);
mbedtls_ctr_drbg_init(&ctr_drbg_);
#ifdef CONFIG_MBEDTLS_DEBUG
mbedtls_esp_enable_debug_log(&conf_, CONFIG_MBEDTLS_DEBUG_LEVEL);
#endif
mbedtls_entropy_init(&entropy_);
mbedtls_ctr_drbg_seed(&ctr_drbg_, mbedtls_entropy_func, &entropy_, pers, sizeof(pers));
mbedtls_x509_crt_init(&public_cert_);
mbedtls_pk_init(&pk_key_);
mbedtls_x509_crt_init(&ca_cert_);
}
bool configure(context *ctx, bool is_client_not_server, int mbedtls_verify_mode)
{
mbedtls_x509_crt_init(&public_cert_);
mbedtls_pk_init(&pk_key_);
mbedtls_x509_crt_init(&ca_cert_);
int ret = mbedtls_ssl_config_defaults(&conf_, is_client_not_server ? MBEDTLS_SSL_IS_CLIENT: MBEDTLS_SSL_IS_SERVER,
MBEDTLS_SSL_TRANSPORT_STREAM, MBEDTLS_SSL_PRESET_DEFAULT);
if (ret) {
print_error("mbedtls_ssl_config_defaults", ret);
return false;
}
mbedtls_ssl_conf_rng(&conf_, mbedtls_ctr_drbg_random, &ctr_drbg_);
mbedtls_ssl_conf_authmode(&conf_, mbedtls_verify_mode);
if (ctx->cert_chain_.size() > 0 && ctx->private_key_.size() > 0) {
ret = mbedtls_x509_crt_parse(&public_cert_, ctx->data(container::CERT), ctx->size(container::CERT));
if (ret < 0) {
print_error("mbedtls_x509_crt_parse", ret);
return false;
}
ret = mbedtls_pk_parse_key(&pk_key_, ctx->data(container::PRIVKEY), ctx->size(container::PRIVKEY),
nullptr, 0, mbedtls_ctr_drbg_random, &ctr_drbg_);
if (ret < 0) {
print_error("mbedtls_pk_parse_keyfile", ret);
return false;
}
ret = mbedtls_ssl_conf_own_cert(&conf_, &public_cert_, &pk_key_);
if (ret) {
print_error("mbedtls_ssl_conf_own_cert", ret);
return false;
}
}
if (ctx->ca_cert_.size() > 0) {
ret = mbedtls_x509_crt_parse(&ca_cert_, ctx->data(container::CA_CERT), ctx->size(container::CA_CERT));
if (ret < 0) {
print_error("mbedtls_x509_crt_parse", ret);
return false;
}
mbedtls_ssl_conf_ca_chain(&conf_, &ca_cert_, nullptr);
} else {
mbedtls_ssl_conf_ca_chain(&conf_, nullptr, nullptr);
}
ret = mbedtls_ssl_setup(&ssl_, &conf_);
if (ret) {
print_error("mbedtls_ssl_setup", ret);
return false;
}
return true;
}
mbedtls_ssl_context ssl_{};
mbedtls_entropy_context entropy_{};
mbedtls_ctr_drbg_context ctr_drbg_{};
mbedtls_ssl_config conf_{};
mbedtls_x509_crt public_cert_{};
mbedtls_pk_context pk_key_{};
mbedtls_x509_crt ca_cert_{};
};
impl impl_{};
std::shared_ptr<context> ctx_;
std::pair<std::shared_ptr<bio>, std::shared_ptr<bio>> bio_;
enum rw_state state_;
asio::ssl::verify_mode verify_mode_;
};
} } } // namespace asio::ssl::mbedtls

View File

@@ -1,55 +0,0 @@
//
// SPDX-FileCopyrightText: 2021 Espressif Systems (Shanghai) CO LTD
//
// SPDX-License-Identifier: BSL-1.0
//
#pragma once
#include "asio/detail/config.hpp"
#include "asio/ssl/error.hpp"
#include "asio/ssl/detail/openssl_init.hpp"
#include "mbedtls_context.hpp"
namespace asio {
namespace error {
namespace detail {
class mbedtls_category : public asio::error_category
{
public:
const char* name() const ASIO_ERROR_CATEGORY_NOEXCEPT
{
return "asio.ssl";
}
std::string message(int value) const
{
const char* s = asio::ssl::mbedtls::error_message(value);
return s ? s : "asio.mbedtls error";
}
};
} // namespace detail
const asio::error_category& get_mbedtls_category()
{
static detail::mbedtls_category instance;
return instance;
}
const asio::error_category& get_ssl_category()
{
return asio::error::get_mbedtls_category();
}
} // namespace error
namespace ssl {
namespace error {
const asio::error_category& get_stream_category()
{
return asio::error::get_mbedtls_category();
}
} } } // namespace asio::ssl::error

View File

@@ -1,6 +0,0 @@
//
// SPDX-FileCopyrightText: 2021 Espressif Systems (Shanghai) CO LTD
//
// SPDX-License-Identifier: BSL-1.0
//
#pragma once

View File

@@ -1,6 +0,0 @@
//
// SPDX-FileCopyrightText: 2021 Espressif Systems (Shanghai) CO LTD
//
// SPDX-License-Identifier: BSL-1.0
//
#pragma once

View File

@@ -1,6 +0,0 @@
//
// SPDX-FileCopyrightText: 2021 Espressif Systems (Shanghai) CO LTD
//
// SPDX-License-Identifier: BSL-1.0
//
#pragma once

View File

@@ -1,6 +0,0 @@
//
// SPDX-FileCopyrightText: 2021 Espressif Systems (Shanghai) CO LTD
//
// SPDX-License-Identifier: BSL-1.0
//
#pragma once

View File

@@ -1,8 +0,0 @@
//
// SPDX-FileCopyrightText: 2021 Espressif Systems (Shanghai) CO LTD
//
// SPDX-License-Identifier: BSL-1.0
//
#pragma once
#include "openssl_stub.hpp"

View File

@@ -1,6 +0,0 @@
//
// SPDX-FileCopyrightText: 2021 Espressif Systems (Shanghai) CO LTD
//
// SPDX-License-Identifier: BSL-1.0
//
#pragma once

View File

@@ -1,115 +0,0 @@
//
// SPDX-FileCopyrightText: 2005 Voipster / Indrek dot Juhani at voipster dot com
// SPDX-FileCopyrightText: 2005-2019 Christopher M. Kohlhoff (chris at kohlhoff dot com)
//
// SPDX-License-Identifier: BSL-1.0
//
// SPDX-FileContributor: 2021 Espressif Systems (Shanghai) CO LTD
//
#include "asio/detail/config.hpp"
#include "openssl_stub.hpp"
#include <cstring>
#include "asio/detail/throw_error.hpp"
#include "asio/error.hpp"
#include "asio/ssl/context.hpp"
#include "asio/ssl/error.hpp"
#include "mbedtls_context.hpp"
namespace asio {
namespace ssl {
context::context(context::method m)
: handle_(0)
{
handle_ = mbedtls::shared_ctx::create("mbedtls-context", m);
set_options(no_compression);
}
context::context(context&& other)
{
handle_ = other.handle_;
other.handle_ = 0;
}
context& context::operator=(context&& other)
{
context tmp(ASIO_MOVE_CAST(context)(*this));
handle_ = other.handle_;
other.handle_ = 0;
return *this;
}
context::~context()
{
delete handle_;
}
context::native_handle_type context::native_handle()
{
return handle_;
}
void context::set_options(context::options o)
{
asio::error_code ec;
set_options(o, ec);
asio::detail::throw_error(ec, "set_options");
}
ASIO_SYNC_OP_VOID context::set_options(
context::options o, asio::error_code& ec)
{
handle_->get()->options_ = o;
ec = asio::error_code();
ASIO_SYNC_OP_VOID_RETURN(ec);
}
void context::add_certificate_authority(const const_buffer& ca)
{
asio::error_code ec;
add_certificate_authority(ca, ec);
asio::detail::throw_error(ec, "add_certificate_authority");
}
ASIO_SYNC_OP_VOID context::add_certificate_authority(
const const_buffer& ca, asio::error_code& ec)
{
handle_->get()->ca_cert_ = ca;
ASIO_SYNC_OP_VOID_RETURN(asio::error_code());
}
void context::use_certificate_chain(const const_buffer& chain)
{
asio::error_code ec;
use_certificate_chain(chain, ec);
asio::detail::throw_error(ec, "use_certificate_chain");
}
ASIO_SYNC_OP_VOID context::use_certificate_chain(
const const_buffer& chain, asio::error_code& ec)
{
handle_->get()->cert_chain_ = chain;
ASIO_SYNC_OP_VOID_RETURN(asio::error_code());
}
void context::use_private_key(
const const_buffer& private_key, context::file_format format)
{
asio::error_code ec;
use_private_key(private_key, format, ec);
asio::detail::throw_error(ec, "use_private_key");
}
ASIO_SYNC_OP_VOID context::use_private_key(
const const_buffer& private_key, context::file_format format,
asio::error_code& ec)
{
handle_->get()->private_key_ = private_key;
ASIO_SYNC_OP_VOID_RETURN(asio::error_code());
}
} // namespace ssl
} // namespace asio

View File

@@ -1,208 +0,0 @@
//
// SPDX-FileCopyrightText: 2003-2019 Christopher M. Kohlhoff (chris at kohlhoff dot com)
//
// SPDX-License-Identifier: BSL-1.0
//
// SPDX-FileContributor: 2021 Espressif Systems (Shanghai) CO LTD
//
#include "asio/detail/config.hpp"
#include "openssl_stub.hpp"
#include "asio/detail/throw_error.hpp"
#include "asio/error.hpp"
#include "asio/ssl/detail/engine.hpp"
#include "asio/ssl/error.hpp"
#include "asio/ssl/verify_context.hpp"
#include "mbedtls_context.hpp"
#include "mbedtls_bio.hpp"
#include "mbedtls_error.hpp"
#include "mbedtls_engine.hpp"
namespace asio {
namespace ssl {
namespace detail {
engine::engine(SSL_CTX* context)
: ssl_(nullptr)
{
ssl_ = mbedtls::create<mbedtls::engine>("mbedtls-engine", context->get());
}
engine::~engine()
{
delete ssl_;
}
SSL* engine::native_handle()
{
return ssl_;
}
asio::error_code engine::set_verify_mode(
verify_mode v, asio::error_code& ec)
{
ssl_->set_verify_mode(v);
return {};
}
engine::want engine::handshake(
stream_base::handshake_type type, asio::error_code& ec)
{
return perform((type == asio::ssl::stream_base::client)
? &engine::do_connect : &engine::do_accept, 0, 0, ec, 0);
}
engine::want engine::shutdown(asio::error_code& ec)
{
return perform(&engine::do_shutdown, 0, 0, ec, 0);
}
engine::want engine::write(const asio::const_buffer& data,
asio::error_code& ec, std::size_t& bytes_transferred)
{
if (data.size() == 0)
{
ec = asio::error_code();
return engine::want_nothing;
}
return perform(&engine::do_write,
const_cast<void*>(data.data()),
data.size(), ec, &bytes_transferred);
}
engine::want engine::read(const asio::mutable_buffer& data,
asio::error_code& ec, std::size_t& bytes_transferred)
{
if (data.size() == 0)
{
ec = asio::error_code();
return engine::want_nothing;
}
return perform(&engine::do_read, data.data(),
data.size(), ec, &bytes_transferred);
}
asio::mutable_buffer engine::get_output(
const asio::mutable_buffer& data)
{
int length = ssl_->ext_bio()->read(data.data(), static_cast<int>(data.size()));
return asio::buffer(data,
length > 0 ? static_cast<std::size_t>(length) : 0);
}
asio::const_buffer engine::put_input(
const asio::const_buffer& data)
{
int length = ssl_->ext_bio()->write(data.data(), static_cast<int>(data.size()));
return asio::buffer(data +
(length > 0 ? static_cast<std::size_t>(length) : 0));
}
const asio::error_code& engine::map_error_code(
asio::error_code& ec) const
{
// We only want to map the error::eof code.
if (ec != asio::error::eof)
return ec;
// If there's data yet to be read, it's an error.
if (ssl_->ext_bio()->wpending())
{
ec = asio::ssl::error::stream_truncated;
return ec;
}
// Otherwise, the peer should have negotiated a proper shutdown.
if (ssl_->shutdown() != 0)
{
ec = asio::ssl::error::stream_truncated;
}
return ec;
}
// This is a simplified implementation of a generic ssl io operation
// original implementation using openssl's SSL object is in asio/include/asio/ssl/detail/impl/engine.ipp
engine::want engine::perform(int (engine::* op)(void*, std::size_t),
void* data, std::size_t length, asio::error_code& ec,
std::size_t* bytes_transferred)
{
std::size_t pending_output_before = ssl_->ext_bio()->ctrl_pending();
int result = (this->*op)(data, length);
std::size_t pending_output_after = ssl_->ext_bio()->ctrl_pending();
if (mbedtls::error_codes::is_error(result))
{
ec = asio::error_code(result, asio::error::get_mbedtls_category());
return pending_output_after > pending_output_before ? want_output : want_nothing;
}
if (result == 0)
{
return pending_output_after > pending_output_before
? want_output : want_nothing;
}
if (result > 0 && bytes_transferred)
*bytes_transferred = static_cast<std::size_t>(result);
if (mbedtls::error_codes::want_write(result))
{
ec = asio::error_code();
return want_output_and_retry;
}
else if (pending_output_after > pending_output_before)
{
ec = asio::error_code();
return result > 0 ? want_output : want_output_and_retry;
}
else if (mbedtls::error_codes::want_read(result))
{
ec = asio::error_code();
return want_input_and_retry;
}
else if (ssl_->get_state() == mbedtls::CLOSED)
{
ec = asio::error::eof;
return want_nothing;
}
ec = asio::error_code();
return want_nothing;
}
int engine::do_accept(void*, std::size_t)
{
return ssl_->accept();
}
int engine::do_connect(void*, std::size_t)
{
return ssl_->connect();
}
int engine::do_shutdown(void*, std::size_t)
{
return ssl_->shutdown();
}
int engine::do_read(void* data, std::size_t length)
{
return ssl_->read(data, length < INT_MAX ? static_cast<int>(length) : INT_MAX);
}
int engine::do_write(void* data, std::size_t length)
{
return ssl_->write(data, length < INT_MAX ? static_cast<int>(length) : INT_MAX);
}
} // namespace detail
} // namespace ssl
} // namespace asio

View File

@@ -1,20 +0,0 @@
//
// SPDX-FileCopyrightText: 2021 Espressif Systems (Shanghai) CO LTD
//
// SPDX-License-Identifier: Apache-2.0
//
#include "asio/detail/config.hpp"
#include "asio/ssl/detail/openssl_init.hpp"
namespace asio {
namespace ssl {
namespace detail {
// No OpenSSL in this implementation, instance is nullptr
asio::detail::shared_ptr<openssl_init_base::do_init> openssl_init_base::instance()
{
return nullptr;
}
} } } // namespace asio::ssl::detail

View File

@@ -323,7 +323,7 @@ menu "Bootloader config"
# options, allowing to turn on "allow insecure options" and have secure boot with
# "skip validation when existing deep sleep". Keeping this to avoid a breaking change,
# but - as noted in help - it invalidates the integrity of Secure Boot checks
depends on (SECURE_BOOT && SECURE_BOOT_INSECURE) || !SECURE_BOOT
depends on SOC_RTC_FAST_MEM_SUPPORTED && ((SECURE_BOOT && SECURE_BOOT_INSECURE) || !SECURE_BOOT)
default n
help
This option disables the normal validation of an image coming out of
@@ -379,6 +379,7 @@ menu "Bootloader config"
config BOOTLOADER_RESERVE_RTC_SIZE
hex
depends on SOC_RTC_FAST_MEM_SUPPORTED
default 0x10 if BOOTLOADER_SKIP_VALIDATE_IN_DEEP_SLEEP || BOOTLOADER_CUSTOM_RESERVE_RTC
default 0
help
@@ -390,6 +391,7 @@ menu "Bootloader config"
config BOOTLOADER_CUSTOM_RESERVE_RTC
bool "Reserve RTC FAST memory for custom purposes"
depends on SOC_RTC_FAST_MEM_SUPPORTED
default n
help
This option allows the customer to place data in the RTC FAST memory,
@@ -474,6 +476,11 @@ menu "Security features"
bool
default y if SECURE_BOOT_V2_ENABLED && SECURE_BOOT_V2_RSA_SUPPORTED
config SECURE_BOOT_FLASH_ENC_KEYS_BURN_TOGETHER
bool
default y if SOC_EFUSE_CONSISTS_OF_ONE_KEY_BLOCK && SECURE_BOOT && SECURE_FLASH_ENC_ENABLED
# ESP32-C2 has one key block for SB and FE keys. These keys must be burned at the same time.
config SECURE_SIGNED_APPS_NO_SECURE_BOOT
bool "Require signed app images"
depends on !SECURE_BOOT
@@ -767,21 +774,29 @@ menu "Security features"
choice SECURE_FLASH_ENCRYPTION_KEYSIZE
bool "Size of generated AES-XTS key"
default SECURE_FLASH_ENCRYPTION_AES128
depends on SOC_FLASH_ENCRYPTION_XTS_AES_256 && SECURE_FLASH_ENC_ENABLED
depends on SOC_FLASH_ENCRYPTION_XTS_AES_OPTIONS && SECURE_FLASH_ENC_ENABLED
help
Size of generated AES-XTS key.
AES-128 uses a 256-bit key (32 bytes) which occupies one Efuse key block.
AES-256 uses a 512-bit key (64 bytes) which occupies two Efuse key blocks.
- AES-128 uses a 256-bit key (32 bytes) derived from 128 bits (16 bytes) burned in half Efuse key block.
Internally, it calculates SHA256(128 bits)
- AES-128 uses a 256-bit key (32 bytes) which occupies one Efuse key block.
- AES-256 uses a 512-bit key (64 bytes) which occupies two Efuse key blocks.
This setting is ignored if either type of key is already burned to Efuse before the first boot.
In this case, the pre-burned key is used and no new key is generated.
config SECURE_FLASH_ENCRYPTION_AES128_DERIVED
bool "AES-128 key derived from 128 bits (SHA256(128 bits))"
depends on SOC_FLASH_ENCRYPTION_XTS_AES_128_DERIVED
config SECURE_FLASH_ENCRYPTION_AES128
bool "AES-128 (256-bit key)"
depends on SOC_FLASH_ENCRYPTION_XTS_AES_128 && !(IDF_TARGET_ESP32C2 && SECURE_BOOT)
config SECURE_FLASH_ENCRYPTION_AES256
bool "AES-256 (512-bit key)"
depends on SOC_FLASH_ENCRYPTION_XTS_AES_256
endchoice
choice SECURE_FLASH_ENCRYPTION_MODE
@@ -805,12 +820,12 @@ menu "Security features"
config SECURE_FLASH_ENCRYPTION_MODE_RELEASE
bool "Release"
select PARTITION_TABLE_MD5 if !ESP32_COMPATIBLE_PRE_V3_1_BOOTLOADERS
select PARTITION_TABLE_MD5 if !APP_COMPATIBLE_PRE_V3_1_BOOTLOADERS
endchoice
menu "Potentially insecure options"
visible if SECURE_FLASH_ENCRYPTION_MODE_DEVELOPMENT || SECURE_BOOT_INSECURE
visible if SECURE_FLASH_ENCRYPTION_MODE_DEVELOPMENT || SECURE_BOOT_INSECURE || SECURE_SIGNED_ON_UPDATE_NO_SECURE_BOOT # NOERROR
# NOTE: Options in this menu NEED to have SECURE_BOOT_INSECURE
# and/or SECURE_FLASH_ENCRYPTION_MODE_DEVELOPMENT in "depends on", as the menu
@@ -847,7 +862,7 @@ menu "Security features"
config SECURE_BOOT_ALLOW_SHORT_APP_PARTITION
bool "Allow app partition length not 64KB aligned"
depends on SECURE_BOOT_INSECURE
depends on SECURE_BOOT_INSECURE || SECURE_SIGNED_ON_UPDATE_NO_SECURE_BOOT
help
If not set (default), app partition size must be a multiple of 64KB. App images are padded to 64KB
length, and the bootloader checks any trailing bytes after the signature (before the next 64KB

View File

@@ -1,4 +1,4 @@
cmake_minimum_required(VERSION 3.5)
cmake_minimum_required(VERSION 3.16)
if(NOT SDKCONFIG)
message(FATAL_ERROR "Bootloader subproject expects the SDKCONFIG variable to be passed "

View File

@@ -5,6 +5,7 @@
*/
#include <stdbool.h>
#include "esp_log.h"
#include "esp_rom_sys.h"
#include "bootloader_init.h"
#include "bootloader_utility.h"
#include "bootloader_common.h"
@@ -79,7 +80,7 @@ static int selected_boot_partition(const bootloader_state_t *bs)
if (boot_index == INVALID_INDEX) {
return boot_index; // Unrecoverable failure (not due to corrupt ota data or bad partition contents)
}
if (bootloader_common_get_reset_reason(0) != DEEPSLEEP_RESET) {
if (esp_rom_get_reset_reason(0) != RESET_REASON_CORE_DEEP_SLEEP) {
// Factory firmware.
#ifdef CONFIG_BOOTLOADER_FACTORY_RESET
bool reset_level = false;

View File

@@ -119,8 +119,6 @@ SECTIONS
*(.sdata)
*(.sdata.*)
*(.gnu.linkonce.s.*)
*(.sdata2)
*(.sdata2.*)
*(.gnu.linkonce.s2.*)
*(.jcr)
_data_end = ABSOLUTE(.);
@@ -133,6 +131,7 @@ SECTIONS
*(.rodata.*)
*(.gnu.linkonce.r.*)
*(.rodata1)
*(.sdata2 .sdata2.*)
__XT_EXCEPTION_TABLE_ = ABSOLUTE(.);
*(.xt_except_table)
*(.gcc_except_table)
@@ -191,4 +190,23 @@ SECTIONS
_etext = .;
} > iram_seg
/** This section will be used by the debugger and disassembler to get more information
* about raw data present in the code.
* Indeed, it may be required to add some padding at some points in the code
* in order to align a branch/jump destination on a particular bound.
* Padding these instructions will generate null bytes that shall be
* interpreted as data, and not code by the debugger or disassembler.
* This section will only be present in the ELF file, not in the final binary
* For more details, check GCC-212
*/
.xt.prop 0 :
{
KEEP (*(.xt.prop .gnu.linkonce.prop.*))
}
.xt.lit 0 :
{
KEEP (*(.xt.lit .gnu.linkonce.p.*))
}
}

View File

@@ -5,15 +5,41 @@
*/
/** Simplified memory map for the bootloader.
* Make sure the bootloader can load into main memory without overwriting itself.
* We put 2nd bootloader in the high address space (before ROM stack/data/bss).
* See memory usage for ROM bootloader at the end of this file.
*
* ESP32-C2 ROM static data usage is as follows:
* - 0x3fccb264 - 0x3fcdcb70: Shared buffers, used in UART/USB/SPI download mode only
* - 0x3fcdcb70 - 0x3fcdeb70: PRO CPU stack, can be reclaimed as heap after RTOS startup
* - 0x3fcdeb70 - 0x3fce0000: ROM .bss and .data (not easily reclaimable)
*
* The 2nd stage bootloader can take space up to the end of ROM shared
* buffers area (0x3fcdcb70).
*/
/* The offset between Dbus and Ibus. Used to convert between 0x403xxxxx and 0x3fcxxxxx addresses. */
iram_dram_offset = 0x6e0000;
/* We consider 0x3fcdcb70 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 = 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 = 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;
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 + iram_dram_offset;
bootloader_iram_seg_start = bootloader_iram_loader_seg_start - bootloader_iram_seg_len;
MEMORY
{
iram_seg (RWX) : org = 0x403AE000, len = 0x2000
iram_loader_seg (RWX) : org = 0x403B0000, len = 0x6000
dram_seg (RW) : org = 0x3FCD6000, len = 0x4000
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
}
/* Default entry point: */
@@ -107,8 +133,6 @@ SECTIONS
*(.sdata)
*(.sdata.*)
*(.gnu.linkonce.s.*)
*(.sdata2)
*(.sdata2.*)
*(.gnu.linkonce.s2.*)
*(.jcr)
_data_end = ABSOLUTE(.);
@@ -121,6 +145,7 @@ SECTIONS
*(.rodata.*)
*(.gnu.linkonce.r.*)
*(.rodata1)
*(.sdata2 .sdata2.* .srodata .srodata.*)
__XT_EXCEPTION_TABLE_ = ABSOLUTE(.);
*(.xt_except_table)
*(.gcc_except_table)
@@ -184,17 +209,34 @@ SECTIONS
/**
* Appendix: Memory Usage of ROM bootloader
*
* +--------+--------------+------+ 0x3FCC_B0B0
* | ^ |
* | | |
* | | data/bss |
* | | |
* | v |
* +------------------------------+ 0x3FCD_C9C0
* | ^ |
* | | |
* | | stack |
* | | |
* | v |
* +------------------------------+ 0x3FCD_E9C0
* 0x3fccb264 ------------------> _dram0_0_start
* | |
* | |
* | | 1. Large buffers that are only used in certain boot modes, see shared_buffers.h
* | |
* | |
* 0x3fcdcb70 ------------------> __stack_sentry
* | |
* | | 2. Startup pro cpu stack (freed when IDF app is running)
* | |
* 0x3fcdeb70 ------------------> __stack (pro cpu)
* | |
* | |
* | | 3. Shared memory only used in startup code or nonos/early boot*
* | | (can be freed when IDF runs)
* | |
* | |
* 0x3fcdf4bc ------------------> _dram0_rtos_reserved_start
* | |
* | |
* | | 4. Shared memory used in startup code and when IDF runs
* | |
* | |
* 0x3fcdfa70 ------------------> _dram0_rtos_reserved_end
* | |
* 0x3fcdfa74 ------------------> _data_start_interface
* | |
* | | 5. End of DRAM is the 'interface' data with constant addresses (ECO compatible)
* | |
* 0x3fce0000 ------------------> _data_end_interface
*/

View File

@@ -5,15 +5,41 @@
*/
/** Simplified memory map for the bootloader.
* Make sure the bootloader can load into main memory without overwriting itself.
* We put 2nd bootloader in the high address space (before ROM stack/data/bss).
* See memory usage for ROM bootloader at the end of this file.
*
* ESP32-C3 ROM static data usage is as follows:
* - 0x3fccae00 - 0x3fcdc710: Shared buffers, used in UART/USB/SPI download mode only
* - 0x3fcdc710 - 0x3fcde710: PRO CPU stack, can be reclaimed as heap after RTOS startup
* - 0x3fcde710 - 0x3fce0000: ROM .bss and .data (not easily reclaimable)
*
* The 2nd stage bootloader can take space up to the end of ROM shared
* buffers area (0x3fcdc710).
*/
/* The offset between Dbus and Ibus. Used to convert between 0x403xxxxx and 0x3fcxxxxx addresses. */
iram_dram_offset = 0x700000;
/* 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 = 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 = 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;
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 + iram_dram_offset;
bootloader_iram_seg_start = bootloader_iram_loader_seg_start - bootloader_iram_seg_len;
MEMORY
{
iram_seg (RWX) : org = 0x403CE000, len = 0x1600
iram_loader_seg (RWX) : org = 0x403CF600, len = 0x6A00
dram_seg (RW) : org = 0x3FCD6000, len = 0x4000
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
}
/* Default entry point: */
@@ -107,8 +133,6 @@ SECTIONS
*(.sdata)
*(.sdata.*)
*(.gnu.linkonce.s.*)
*(.sdata2)
*(.sdata2.*)
*(.gnu.linkonce.s2.*)
*(.jcr)
_data_end = ABSOLUTE(.);
@@ -121,6 +145,7 @@ SECTIONS
*(.rodata.*)
*(.gnu.linkonce.r.*)
*(.rodata1)
*(.sdata2 .sdata2.* .srodata .srodata.*)
__XT_EXCEPTION_TABLE_ = ABSOLUTE(.);
*(.xt_except_table)
*(.gcc_except_table)
@@ -185,17 +210,34 @@ SECTIONS
/**
* Appendix: Memory Usage of ROM bootloader
*
* +--------+--------------+------+ 0x3FCC_AE00
* | ^ |
* | | |
* | | data/bss |
* | | |
* | v |
* +------------------------------+ 0x3FCD_C710
* | ^ |
* | | |
* | | stack |
* | | |
* | v |
* +------------------------------+ 0x3FCD_E710
* 0x3fccae00 ------------------> _dram0_0_start
* | |
* | |
* | | 1. Large buffers that are only used in certain boot modes, see shared_buffers.h
* | |
* | |
* 0x3fcdc710 ------------------> __stack_sentry
* | |
* | | 2. Startup pro cpu stack (freed when IDF app is running)
* | |
* 0x3fcde710 ------------------> __stack (pro cpu)
* | |
* | |
* | | 3. Shared memory only used in startup code or nonos/early boot*
* | | (can be freed when IDF runs)
* | |
* | |
* 0x3fcdf060 ------------------> _dram0_rtos_reserved_start
* | |
* | |
* | | 4. Shared memory used in startup code and when IDF runs
* | |
* | |
* 0x3fcdf664 ------------------> _dram0_rtos_reserved_end
* | |
* 0x3fcdf830 ------------------> _data_start_interface
* | |
* | | 5. End of DRAM is the 'interface' data with constant addresses (ECO compatible)
* | |
* 0x3fce0000 ------------------> _data_end_interface
*/

View File

@@ -5,15 +5,41 @@
*/
/** Simplified memory map for the bootloader.
* Make sure the bootloader can load into main memory without overwriting itself.
* We put 2nd bootloader in the high address space (before ROM stack/data/bss).
* See memory usage for ROM bootloader at the end of this file.
*
* ESP32-H2 ROM static data usage is as follows:
* - 0x3fccb900 - 0x3fcdd210: Shared buffers, used in UART/USB/SPI download mode only
* - 0x3fcdd210 - 0x3fcdf210: PRO CPU stack, can be reclaimed as heap after RTOS startup
* - 0x3fcdf210 - 0x3fce0000: ROM .bss and .data (not easily reclaimable)
*
* The 2nd stage bootloader can take space up to the end of ROM shared
* buffers area (0x3fce9704). For alignment purpose we shall use value (0x3fce9700).
*/
/* The offset between Dbus and Ibus. Used to convert between 0x403xxxxx and 0x3fcxxxxx addresses. */
iram_dram_offset = 0x700000;
/* We consider 0x3fce9700 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 = 0x3fcdd120;
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 = 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;
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 + iram_dram_offset;
bootloader_iram_seg_start = bootloader_iram_loader_seg_start - bootloader_iram_seg_len;
MEMORY
{
iram_seg (RWX) : org = 0x403CE000, len = 0x2000
iram_loader_seg (RWX) : org = 0x403D0000, len = 0x6000
dram_seg (RW) : org = 0x3FCD6000, len = 0x4000
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
}
/* Default entry point: */
@@ -105,8 +131,6 @@ SECTIONS
*(.sdata)
*(.sdata.*)
*(.gnu.linkonce.s.*)
*(.sdata2)
*(.sdata2.*)
*(.gnu.linkonce.s2.*)
*(.jcr)
_data_end = ABSOLUTE(.);
@@ -119,6 +143,7 @@ SECTIONS
*(.rodata.*)
*(.gnu.linkonce.r.*)
*(.rodata1)
*(.sdata2 .sdata2.* .srodata .srodata.*)
__XT_EXCEPTION_TABLE_ = ABSOLUTE(.);
*(.xt_except_table)
*(.gcc_except_table)
@@ -182,17 +207,34 @@ SECTIONS
/**
* Appendix: Memory Usage of ROM bootloader
*
* +--------+--------------+------+ 0x3FCC_B900
* | ^ |
* | | |
* | | data/bss |
* | | |
* | v |
* +------------------------------+ 0x3FCD_D210
* | ^ |
* | | |
* | | stack |
* | | |
* | v |
* +------------------------------+ 0x3FCD_F210
* 0x3fccb81c ------------------> _dram0_0_start
* | |
* | |
* | | 1. Large buffers that are only used in certain boot modes, see shared_buffers.h
* | |
* | |
* 0x3fcdd120 ------------------> __stack_sentry
* | |
* | | 2. Startup pro cpu stack (freed when IDF app is running)
* | |
* 0x3fcdf120 ------------------> __stack (pro cpu)
* | |
* | |
* | | 3. Shared memory only used in startup code or nonos/early boot*
* | | (can be freed when IDF runs)
* | |
* | |
* 0x3fcdfa6c ------------------> _dram0_rtos_reserved_start
* | |
* | |
* | | 4. Shared memory used in startup code and when IDF runs
* | |
* | |
* 0x3fcdfe40 ------------------> _dram0_rtos_reserved_end
* | |
* 0x3fcdfe4c ------------------> _data_start_interface
* | |
* | | 5. End of DRAM is the 'interface' data with constant addresses (ECO compatible)
* | |
* 0x3fce0000 ------------------> _data_end_interface
*/

View File

@@ -108,8 +108,6 @@ SECTIONS
*(.sdata)
*(.sdata.*)
*(.gnu.linkonce.s.*)
*(.sdata2)
*(.sdata2.*)
*(.gnu.linkonce.s2.*)
*(.jcr)
_data_end = ABSOLUTE(.);
@@ -122,6 +120,7 @@ SECTIONS
*(.rodata.*)
*(.gnu.linkonce.r.*)
*(.rodata1)
*(.sdata2 .sdata2.*)
__XT_EXCEPTION_TABLE_ = ABSOLUTE(.);
*(.xt_except_table)
*(.gcc_except_table)
@@ -180,4 +179,23 @@ SECTIONS
_etext = .;
} > iram_seg
/** This section will be used by the debugger and disassembler to get more information
* about raw data present in the code.
* Indeed, it may be required to add some padding at some points in the code
* in order to align a branch/jump destination on a particular bound.
* Padding these instructions will generate null bytes that shall be
* interpreted as data, and not code by the debugger or disassembler.
* This section will only be present in the ELF file, not in the final binary
* For more details, check GCC-212
*/
.xt.prop 0 :
{
KEEP (*(.xt.prop .gnu.linkonce.prop.*))
}
.xt.lit 0 :
{
KEEP (*(.xt.lit .gnu.linkonce.p.*))
}
}

View File

@@ -5,17 +5,52 @@
*/
/** Simplified memory map for the bootloader.
* Make sure the bootloader can load into main memory without overwriting itself.
* We put 2nd bootloader in the high address space (before ROM stack/data/bss).
* See memory usage for ROM bootloader at the end of this file.
*
* ESP32-S3 ROM static data usage is as follows:
* - 0x3fcd7e00 - 0x3fce9704: Shared buffers, used in UART/USB/SPI download mode only
* - 0x3fce9710 - 0x3fceb710: PRO CPU stack, can be reclaimed as heap after RTOS startup
* - 0x3fceb710 - 0x3fced710: APP CPU stack, can be reclaimed as heap after RTOS startup
* - 0x3fced710 - 0x3fcf0000: ROM .bss and .data (not easily reclaimable)
*
* The 2nd stage bootloader can take space up to the end of ROM shared
* buffers area (0x3fce9704). For alignment purpose we shall use value (0x3fce9700).
*/
/* The offset between Dbus and Ibus. Used to convert between 0x403xxxxx and 0x3fcxxxxx addresses. */
iram_dram_offset = 0x6f0000;
/* We consider 0x3fce9700 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 = 0x3fce9700;
bootloader_stack_overhead = 0x2000; /* For safety margin between bootloader data section and startup stacks */
bootloader_dram_seg_len = 0x4000;
bootloader_iram_loader_seg_len = 0x7000;
bootloader_iram_seg_len = 0x3000;
/* 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 + iram_dram_offset;
bootloader_iram_seg_start = bootloader_iram_loader_seg_start - bootloader_iram_seg_len;
MEMORY
{
iram_seg (RWX) : org = 0x403B6000, len = 0x3000
iram_loader_seg (RWX) : org = 0x403B9000, len = 0x7000
dram_seg (RW) : org = 0x3FCD0000, len = 0x4000
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_IRAM_END in components/esp_system/ld/esp32s3/memory.ld.in to the same value.
*/
ASSERT(bootloader_iram_loader_seg_start == 0x403cc700, "bootloader_iram_loader_seg_start inconsistent with SRAM_IRAM_END");
/* Default entry point: */
ENTRY(call_start_cpu0);
@@ -107,8 +142,6 @@ SECTIONS
*(.sdata)
*(.sdata.*)
*(.gnu.linkonce.s.*)
*(.sdata2)
*(.sdata2.*)
*(.gnu.linkonce.s2.*)
*(.jcr)
_data_end = ABSOLUTE(.);
@@ -121,6 +154,7 @@ SECTIONS
*(.rodata.*)
*(.gnu.linkonce.r.*)
*(.rodata1)
*(.sdata2 .sdata2.*)
__XT_EXCEPTION_TABLE_ = ABSOLUTE(.);
*(.xt_except_table)
*(.gcc_except_table)
@@ -179,29 +213,62 @@ SECTIONS
_etext = .;
} > iram_seg
}
/** This section will be used by the debugger and disassembler to get more information
* about raw data present in the code.
* Indeed, it may be required to add some padding at some points in the code
* in order to align a branch/jump destination on a particular bound.
* Padding these instructions will generate null bytes that shall be
* interpreted as data, and not code by the debugger or disassembler.
* This section will only be present in the ELF file, not in the final binary
* For more details, check GCC-212
*/
.xt.prop 0 :
{
KEEP (*(.xt.prop .gnu.linkonce.prop.*))
}
.xt.lit 0 :
{
KEEP (*(.xt.lit .gnu.linkonce.p.*))
}
}
/**
* Appendix: Memory Usage of ROM bootloader
*
* +--------+--------------+------+ 0x3FCD_8000
* | ^ |
* | | |
* | | data/bss |
* | | |
* | v |
* +------------------------------+ 0x3FCE_9910
* | ^ |
* | | |
* | | stack (pro) |
* | | |
* | v |
* +------------------------------+ 0x3FCE_B910
* | ^ |
* | | |
* | | stack (app) |
* | | |
* | v |
* +--------+--------------+------+ 0x3FCE_D910
* 0x3fcd7e00 ------------------> _dram0_0_start
* | |
* | |
* | | 1. Large buffers that are only used in certain boot modes, see shared_buffers.h
* | |
* | |
* 0x3fce9710 ------------------> __stack_sentry
* | |
* | | 2. Startup pro cpu stack (freed when IDF app is running)
* | |
* 0x3fceb710 ------------------> __stack (pro cpu)
* | |
* | | Startup app cpu stack
* | |
* 0x3fced710 ------------------> __stack_app (app cpu)
* | |
* | |
* | | 3. Shared memory only used in startup code or nonos/early boot*
* | | (can be freed when IDF runs)
* | |
* | |
* 0x3fceee34 ------------------> _dram0_rtos_reserved_start
* | |
* | |
* | | 4. Shared memory used in startup code and when IDF runs
* | |
* | |
* 0x3fcef770 ------------------> _dram0_rtos_reserved_end
* | |
* 0x3fcef81c ------------------> _data_start_interface
* | |
* | | 5. End of DRAM is the 'interface' data with constant addresses (ECO compatible)
* | |
* 0x3fcf0000 ------------------> _data_end_interface
*/

View File

@@ -18,7 +18,7 @@ set(srcs
if(BOOTLOADER_BUILD)
set(include_dirs "include" "bootloader_flash/include"
"include_bootloader")
"private_include")
set(priv_requires micro-ecc spi_flash efuse)
list(APPEND srcs
"src/bootloader_init.c"
@@ -35,7 +35,7 @@ else()
list(APPEND srcs
"src/idf/bootloader_sha.c")
set(include_dirs "include" "bootloader_flash/include")
set(priv_include_dirs "include_bootloader")
set(priv_include_dirs "private_include")
# heap is required for `heap_memory_layout.h` header
set(priv_requires spi_flash mbedtls efuse app_update heap)
endif()
@@ -148,3 +148,5 @@ endif()
if(BOOTLOADER_BUILD)
target_link_libraries(${COMPONENT_LIB} INTERFACE "-u abort")
endif()
target_compile_options(${COMPONENT_LIB} PRIVATE "-Wno-format")

View File

@@ -7,7 +7,8 @@
#include <stdint.h>
#include <esp_err.h>
#include <esp_spi_flash.h> /* including in bootloader for error values */
#include "spi_flash_mmap.h" /* including in bootloader for error values */
#include "esp_private/spi_flash_os.h"
#include "sdkconfig.h"
#include "soc/soc_caps.h"
#include "bootloader_flash_override.h"
@@ -49,6 +50,12 @@ esp_err_t bootloader_flash_xmc_startup(void);
*/
esp_err_t __attribute__((weak)) bootloader_flash_unlock(void);
/**
* @brief Reset the flash chip (66H + 99H).
*
* @return ESP_OK if success, otherwise ESP_FAIL.
*/
esp_err_t bootloader_flash_reset_chip(void);
#ifdef __cplusplus
}

View File

@@ -10,7 +10,7 @@
#include <stdbool.h>
#include <stdint.h>
#include <esp_err.h>
#include <esp_spi_flash.h> /* including in bootloader for error values */
#include <spi_flash_mmap.h> /* including in bootloader for error values */
#include "sdkconfig.h"
#include "bootloader_flash.h"
@@ -21,20 +21,18 @@ extern "C" {
#define FLASH_SECTOR_SIZE 0x1000
#define FLASH_BLOCK_SIZE 0x10000
#define MMAP_ALIGNED_MASK 0x0000FFFF
#define MMU_FLASH_MASK (~(SPI_FLASH_MMU_PAGE_SIZE - 1))
//This will be replaced with a kconfig, TODO: IDF-3821
#define MMU_PAGE_SIZE 0x10000
#define MMU_FLASH_MASK (~(MMU_PAGE_SIZE - 1))
/**
* MMU mapping must always be in the unit of a MMU_PAGE_SIZE
* MMU mapping must always be in the unit of a SPI_FLASH_MMU_PAGE_SIZE
* This macro is a helper for you to get needed page nums to be mapped. e.g.:
* Let's say MMU_PAGE_SIZE is 64KB.
* Let's say SPI_FLASH_MMU_PAGE_SIZE is 64KB.
* - v_start = 0x4200_0004
* - size = 4 * 64KB
*
* You should map from 0x4200_0000, then map 5 pages.
*/
#define GET_REQUIRED_MMU_PAGES(size, v_start) ((size + (v_start - (v_start & MMU_FLASH_MASK)) + MMU_PAGE_SIZE - 1) / MMU_PAGE_SIZE)
#define GET_REQUIRED_MMU_PAGES(size, v_start) ((size + (v_start - (v_start & MMU_FLASH_MASK)) + SPI_FLASH_MMU_PAGE_SIZE - 1) / SPI_FLASH_MMU_PAGE_SIZE)
/* SPI commands (actual on-wire commands not SPI controller bitmasks)
Suitable for use with the bootloader_execute_flash_command static function.
@@ -44,6 +42,7 @@ extern "C" {
#define CMD_WRSR2 0x31 /* Not all SPI flash uses this command */
#define CMD_WRSR3 0x11 /* Not all SPI flash uses this command */
#define CMD_WREN 0x06
#define CMD_WRENVSR 0x50 /* Flash write enable for volatile SR bits */
#define CMD_WRDI 0x04
#define CMD_RDSR 0x05
#define CMD_RDSR2 0x35 /* Not all SPI flash uses this command */
@@ -52,6 +51,8 @@ extern "C" {
#define CMD_RDSFDP 0x5A /* Read the SFDP of the flash */
#define CMD_WRAP 0x77 /* Set burst with wrap command */
#define CMD_RESUME 0x7A /* Resume command to clear flash suspend bit */
#define CMD_RESETEN 0x66
#define CMD_RESET 0x99
/* Provide a Flash API for bootloader_support code,
@@ -174,6 +175,14 @@ uint32_t bootloader_flash_read_sfdp(uint32_t sfdp_addr, unsigned int miso_byte_n
*/
void bootloader_enable_wp(void);
/**
* @brief Once this function is called,
* any on-going internal operations will be terminated and the device will return to its default power-on
* state and lose all the current volatile settings, such as Volatile Status Register bits, Write Enable Latch
* (WEL) status, Program/Erase Suspend status, etc.
*/
void bootloader_spi_flash_reset(void);
#ifdef __cplusplus
}
#endif

View File

@@ -23,6 +23,9 @@
# define SPIFLASH SPIMEM1
#endif
// This dependency will be removed in the future. IDF-5025
#include "esp_flash.h"
#include "esp_rom_spiflash.h"
#ifdef CONFIG_EFUSE_VIRTUAL_KEEP_IN_FLASH
@@ -43,7 +46,7 @@
#define ESP_BOOTLOADER_SPIFLASH_QE_SR1_2BYTE BIT9 // QE position when you write 16 bits at one time.
#ifndef BOOTLOADER_BUILD
/* Normal app version maps to esp_spi_flash.h operations...
/* Normal app version maps to spi_flash_mmap.h operations...
*/
static const char *TAG = "bootloader_mmap";
@@ -82,33 +85,31 @@ void bootloader_munmap(const void *mapping)
esp_err_t bootloader_flash_read(size_t src, void *dest, size_t size, bool allow_decrypt)
{
if (allow_decrypt && esp_flash_encryption_enabled()) {
return spi_flash_read_encrypted(src, dest, size);
return esp_flash_read_encrypted(NULL, src, dest, size);
} else {
return spi_flash_read(src, dest, size);
return esp_flash_read(NULL, dest, src, size);
}
}
esp_err_t bootloader_flash_write(size_t dest_addr, void *src, size_t size, bool write_encrypted)
{
if (write_encrypted && !ENCRYPTION_IS_VIRTUAL) {
#if CONFIG_IDF_TARGET_ESP32
return spi_flash_write_encrypted(dest_addr, src, size);
#else
return esp_rom_spiflash_write_encrypted(dest_addr, src, size);
#endif
return esp_flash_write_encrypted(NULL, dest_addr, src, size);
} else {
return spi_flash_write(dest_addr, src, size);
return esp_flash_write(NULL, src, dest_addr, size);
}
}
esp_err_t bootloader_flash_erase_sector(size_t sector)
{
return spi_flash_erase_sector(sector);
// Will de-dependency IDF-5025
return esp_flash_erase_region(NULL, sector * SPI_FLASH_SEC_SIZE, SPI_FLASH_SEC_SIZE);
}
esp_err_t bootloader_flash_erase_range(uint32_t start_addr, uint32_t size)
{
return spi_flash_erase_range(start_addr, size);
// Will de-dependency IDF-5025
return esp_flash_erase_region(NULL, start_addr, size);
}
#else //BOOTLOADER_BUILD
@@ -137,7 +138,11 @@ static const char *TAG = "bootloader_flash";
63th block for bootloader_flash_read
*/
#define MMU_BLOCK0_VADDR SOC_DROM_LOW
#define MMU_SIZE (0x3f0000)
#ifdef SOC_MMU_PAGE_SIZE_CONFIGURABLE
#define MMU_SIZE (DRAM0_CACHE_ADDRESS_HIGH(SPI_FLASH_MMU_PAGE_SIZE) - DRAM0_CACHE_ADDRESS_LOW - SPI_FLASH_MMU_PAGE_SIZE) // This mmu size means that the mmu size to be mapped
#else
#define MMU_SIZE (DRAM0_CACHE_ADDRESS_HIGH - DRAM0_CACHE_ADDRESS_LOW - SPI_FLASH_MMU_PAGE_SIZE) // This mmu size means that the mmu size to be mapped
#endif
#define MMU_BLOCK63_VADDR (MMU_BLOCK0_VADDR + MMU_SIZE)
#define FLASH_READ_VADDR MMU_BLOCK63_VADDR
#endif
@@ -196,7 +201,7 @@ const void *bootloader_mmap(uint32_t src_paddr, uint32_t size)
#if CONFIG_IDF_TARGET_ESP32
uint32_t count = GET_REQUIRED_MMU_PAGES(size, src_paddr);
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%08x and vaddr=0x%08x, 0x%x bytes are mapped", src_paddr_aligned, MMU_BLOCK0_VADDR, count * MMU_PAGE_SIZE);
ESP_EARLY_LOGV(TAG, "after mapping, starting from paddr=0x%08x and vaddr=0x%08x, 0x%x bytes are mapped", src_paddr_aligned, MMU_BLOCK0_VADDR, count * SPI_FLASH_MMU_PAGE_SIZE);
if (e != 0) {
ESP_EARLY_LOGE(TAG, "cache_flash_mmu_set failed: %d\n", e);
Cache_Read_Enable(0);
@@ -303,12 +308,12 @@ static esp_err_t bootloader_flash_read_allow_decrypt(size_t src_addr, void *dest
//---------------Do mapping------------------------
ESP_EARLY_LOGD(TAG, "mmu set block paddr=0x%08x (was 0x%08x)", map_at, current_read_mapping);
#if CONFIG_IDF_TARGET_ESP32
//Should never fail if we only map a MMU_PAGE_SIZE to the vaddr starting from FLASH_READ_VADDR
//Should never fail if we only map a SPI_FLASH_MMU_PAGE_SIZE to the vaddr starting from FLASH_READ_VADDR
int e = cache_flash_mmu_set(0, 0, FLASH_READ_VADDR, map_at, 64, 1);
assert(e == 0);
#else
uint32_t actual_mapped_len = 0;
mmu_hal_map_region(0, MMU_TARGET_FLASH0, FLASH_READ_VADDR, map_at, MMU_PAGE_SIZE - 1, &actual_mapped_len);
mmu_hal_map_region(0, MMU_TARGET_FLASH0, FLASH_READ_VADDR, map_at, SPI_FLASH_MMU_PAGE_SIZE - 1, &actual_mapped_len);
#endif
current_read_mapping = map_at;
@@ -598,6 +603,12 @@ uint32_t IRAM_ATTR bootloader_read_flash_id(void)
return id;
}
void bootloader_spi_flash_reset(void)
{
bootloader_execute_flash_command(CMD_RESETEN, 0, 0, 0);
bootloader_execute_flash_command(CMD_RESET, 0, 0, 0);
}
#if SOC_CACHE_SUPPORT_WRAP
esp_err_t bootloader_flash_wrap_set(spi_flash_wrap_mode_t mode)
{
@@ -730,3 +741,44 @@ esp_err_t IRAM_ATTR bootloader_flash_xmc_startup(void)
}
#endif //XMC_SUPPORT
FORCE_INLINE_ATTR void bootloader_mspi_reset(void)
{
#if CONFIG_IDF_TARGET_ESP32
SPI1.slave.sync_reset = 0;
SPI0.slave.sync_reset = 0;
SPI1.slave.sync_reset = 1;
SPI0.slave.sync_reset = 1;
SPI1.slave.sync_reset = 0;
SPI0.slave.sync_reset = 0;
#else
SPIMEM1.ctrl2.sync_reset = 0;
SPIMEM0.ctrl2.sync_reset = 0;
SPIMEM1.ctrl2.sync_reset = 1;
SPIMEM0.ctrl2.sync_reset = 1;
SPIMEM1.ctrl2.sync_reset = 0;
SPIMEM0.ctrl2.sync_reset = 0;
#endif
}
esp_err_t IRAM_ATTR bootloader_flash_reset_chip(void)
{
bootloader_mspi_reset();
// Seems that sync_reset cannot make host totally idle.'
// Sending an extra(useless) command to make the host idle in order to send reset command.
bootloader_execute_flash_command(0x05, 0, 0, 0);
#if CONFIG_IDF_TARGET_ESP32
if (SPI1.ext2.st != 0)
#elif CONFIG_IDF_TARGET_ESP32S2 || CONFIG_IDF_TARGET_ESP32S3
if (SPIMEM1.fsm.st != 0)
#else
if (SPIMEM1.fsm.spi0_mst_st != 0)
#endif
{
return ESP_FAIL;
}
bootloader_execute_flash_command(0x66, 0, 0, 0);
bootloader_execute_flash_command(0x99, 0, 0, 0);
return ESP_OK;
}

View File

@@ -17,6 +17,7 @@
#include "soc/spi_reg.h"
#include "soc/soc_caps.h"
#include "soc/soc_pins.h"
#include "hal/efuse_hal.h"
#include "hal/gpio_hal.h"
#include "flash_qio_mode.h"
#include "bootloader_common.h"
@@ -175,7 +176,7 @@ int bootloader_flash_get_wp_pin(void)
return ESP32_D2WD_WP_GPIO;
case EFUSE_RD_CHIP_VER_PKG_ESP32PICOD4:
/* Same package IDs are used for ESP32-PICO-V3 and ESP32-PICO-D4, silicon version differentiates */
chip_ver = bootloader_common_get_chip_revision();
chip_ver = efuse_hal_get_major_chip_version();
return (chip_ver < 3) ? ESP32_D2WD_WP_GPIO : ESP32_PICO_V3_GPIO;
case EFUSE_RD_CHIP_VER_PKG_ESP32PICOV302:
return ESP32_PICO_V3_GPIO;

View File

@@ -8,27 +8,12 @@
#include "esp_flash_partitions.h"
#include "esp_image_format.h"
#include "esp_app_format.h"
// [refactor-todo]: we shouldn't expose ROM header files in a public API header, remove them in v5.0
// Tracked in IDF-1968
#if CONFIG_IDF_TARGET_ESP32
#include "esp32/rom/rtc.h"
#elif CONFIG_IDF_TARGET_ESP32S2
#include "esp32s2/rom/rtc.h"
#elif CONFIG_IDF_TARGET_ESP32S3
#include "esp32s3/rom/rtc.h"
#elif CONFIG_IDF_TARGET_ESP32C3
#include "esp32c3/rom/rtc.h"
#elif CONFIG_IDF_TARGET_ESP32H2
#include "esp32h2/rom/rtc.h"
#elif CONFIG_IDF_TARGET_ESP32C2
#include "esp32c2/rom/rtc.h"
#endif
#ifdef __cplusplus
extern "C" {
#endif
/// Type of hold a GPIO in low state
// Type of hold a GPIO in low state
typedef enum {
GPIO_LONG_HOLD = 1, /*!< The long hold GPIO */
GPIO_SHORT_HOLD = -1, /*!< The short hold GPIO */
@@ -121,15 +106,6 @@ bool bootloader_common_label_search(const char *list, char *label);
*/
void bootloader_configure_spi_pins(int drv);
/**
* @brief Get flash CS IO
*
* Can be determined by eFuse values, or the default value
*
* @return Flash CS IO
*/
uint8_t bootloader_flash_get_cs_io(void);
/**
* @brief Calculates a sha-256 for a given partition or returns a appended digest.
*
@@ -189,13 +165,6 @@ int bootloader_common_select_otadata(const esp_ota_select_entry_t *two_otadata,
*/
esp_err_t bootloader_common_get_partition_description(const esp_partition_pos_t *partition, esp_app_desc_t *app_desc);
/**
* @brief Get chip revision
*
* @return Chip revision number
*/
uint8_t bootloader_common_get_chip_revision(void);
/**
* @brief Get chip package
*
@@ -203,14 +172,6 @@ uint8_t bootloader_common_get_chip_revision(void);
*/
uint32_t bootloader_common_get_chip_ver_pkg(void);
/**
* @brief Query reset reason
*
* @param cpu_no CPU number
* @return reset reason enumeration
*/
RESET_REASON bootloader_common_get_reset_reason(int cpu_no);
/**
* @brief Check if the image (bootloader and application) has valid chip ID and revision
*

View File

@@ -6,7 +6,9 @@
#pragma once
#include <stddef.h>
#include <stdbool.h>
#include <stdint.h>
#include <assert.h>
#ifdef __cplusplus
extern "C" {
@@ -22,11 +24,11 @@ extern "C" {
* @return true iff [start1; end1) overlaps [start2; end2)
*/
static inline bool bootloader_util_regions_overlap(
const intptr_t start1, const intptr_t end1,
const intptr_t start2, const intptr_t end2)
const intptr_t start1, const intptr_t end1,
const intptr_t start2, const intptr_t end2)
{
assert(end1>start1);
assert(end2>start2);
assert(end1 > start1);
assert(end2 > start2);
return (end1 > start2 && end2 > start1);
}

View File

@@ -9,7 +9,7 @@
#include "esp_attr.h"
#include "esp_err.h"
#ifndef BOOTLOADER_BUILD
#include "esp_spi_flash.h"
#include "spi_flash_mmap.h"
#endif
#include "hal/efuse_ll.h"
#include "sdkconfig.h"
@@ -85,6 +85,49 @@ bool esp_flash_encryption_enabled(void);
*/
esp_err_t esp_flash_encrypt_check_and_update(void);
/** @brief Returns the Flash Encryption state and prints it
*
* @return True - Flash Encryption is enabled
* False - Flash Encryption is not enabled
*/
bool esp_flash_encrypt_state(void);
/** @brief Checks if the first initialization was done
*
* If the first initialization was done then FLASH_CRYPT_CNT != 0
*
* @return true - the first initialization was done
* false - the first initialization was NOT done
*/
bool esp_flash_encrypt_initialized_once(void);
/** @brief The first initialization of Flash Encryption key and related eFuses
*
* @return ESP_OK if all operations succeeded
*/
esp_err_t esp_flash_encrypt_init(void);
/** @brief Encrypts flash content
*
* @return ESP_OK if all operations succeeded
*/
esp_err_t esp_flash_encrypt_contents(void);
/** @brief Activates Flash encryption on the chip
*
* It burns FLASH_CRYPT_CNT eFuse based on the CONFIG_SECURE_FLASH_ENCRYPTION_MODE_RELEASE option.
*
* @return ESP_OK if all operations succeeded
*/
esp_err_t esp_flash_encrypt_enable(void);
/** @brief Returns True if the write protection of FLASH_CRYPT_CNT is set
*
* @param print_error Print error if it is write protected
*
* @return true - if FLASH_CRYPT_CNT is write protected
*/
bool esp_flash_encrypt_is_write_protected(bool print_error);
/** @brief Encrypt-in-place a block of flash sectors
*

View File

@@ -8,32 +8,13 @@
#include <stdbool.h>
#include <esp_err.h>
#include "soc/efuse_periph.h"
#include "soc/soc_caps.h"
#include "esp_image_format.h"
#include "esp_rom_efuse.h"
#include "sdkconfig.h"
#include "esp_rom_crc.h"
#include "hal/efuse_ll.h"
#if CONFIG_IDF_TARGET_ESP32
#include "esp32/rom/efuse.h"
#include "esp32/rom/secure_boot.h"
#elif CONFIG_IDF_TARGET_ESP32S2
#include "esp32s2/rom/efuse.h"
#include "esp32s2/rom/secure_boot.h"
#elif CONFIG_IDF_TARGET_ESP32C3
#include "esp32c3/rom/efuse.h"
#include "esp32c3/rom/secure_boot.h"
#elif CONFIG_IDF_TARGET_ESP32S3
#include "esp32s3/rom/efuse.h"
#include "esp32s3/rom/secure_boot.h"
#elif CONFIG_IDF_TARGET_ESP32H2
#include "esp32h2/rom/efuse.h"
#include "esp32h2/rom/secure_boot.h"
#elif CONFIG_IDF_TARGET_ESP32C2
#include "esp32c2/rom/efuse.h"
#include "esp32c2/rom/secure_boot.h"
#endif
#ifdef CONFIG_SECURE_BOOT_V1_ENABLED
#if !defined(CONFIG_SECURE_SIGNED_ON_BOOT) || !defined(CONFIG_SECURE_SIGNED_ON_UPDATE) || !defined(CONFIG_SECURE_SIGNED_APPS)
#error "internal sdkconfig error, secure boot should always enable all signature options"
@@ -217,34 +198,10 @@ esp_err_t esp_secure_boot_verify_ecdsa_signature_block(const esp_secure_boot_sig
* Each image can have one or more signature blocks (up to SECURE_BOOT_NUM_BLOCKS). Each signature block includes a public key.
*/
typedef struct {
uint8_t key_digests[SECURE_BOOT_NUM_BLOCKS][ESP_SECURE_BOOT_DIGEST_LEN]; /* SHA of the public key components in the signature block */
uint8_t key_digests[SOC_EFUSE_SECURE_BOOT_KEY_DIGESTS][ESP_SECURE_BOOT_DIGEST_LEN]; /* SHA of the public key components in the signature block */
unsigned num_digests; /* Number of valid digests, starting at index 0 */
} esp_image_sig_public_key_digests_t;
/** @brief Verify the secure boot signature block for Secure Boot V2.
*
* Performs RSA-PSS or ECDSA verification of the SHA-256 image based on the public key
* in the signature block, compared against the public key digest stored in efuse.
*
* Similar to esp_secure_boot_verify_signature(), but can be used when the digest is precalculated.
* @param sig_block Pointer to signature block data
* @param image_digest Pointer to 32 byte buffer holding SHA-256 hash.
* @param verified_digest Pointer to 32 byte buffer that will receive verified digest if verification completes. (Used during bootloader implementation only, result is invalid otherwise.)
*
*/
esp_err_t esp_secure_boot_verify_sbv2_signature_block(const ets_secure_boot_signature_t *sig_block, const uint8_t *image_digest, uint8_t *verified_digest);
/** @brief Legacy function to verify RSA secure boot signature block for Secure Boot V2.
*
* @note This is kept for backward compatibility. It internally calls esp_secure_boot_verify_sbv2_signature_block.
*
* @param sig_block Pointer to RSA signature block data
* @param image_digest Pointer to 32 byte buffer holding SHA-256 hash.
* @param verified_digest Pointer to 32 byte buffer that will receive verified digest if verification completes. (Used during bootloader implementation only, result is invalid otherwise.)
*
*/
esp_err_t esp_secure_boot_verify_rsa_signature_block(const ets_secure_boot_signature_t *sig_block, const uint8_t *image_digest, uint8_t *verified_digest);
#endif // !CONFIG_IDF_TARGET_ESP32 || CONFIG_ESP32_REV_MIN_3
/** @brief Legacy ECDSA verification function

View File

@@ -0,0 +1,52 @@
/*
* SPDX-FileCopyrightText: 2022 Espressif Systems (Shanghai) CO LTD
*
* SPDX-License-Identifier: Apache-2.0
*/
#pragma once
#include "sdkconfig.h"
#include <esp_err.h>
#include <stdint.h>
#if CONFIG_IDF_TARGET_ESP32
#include "esp32/rom/secure_boot.h"
#elif CONFIG_IDF_TARGET_ESP32S2
#include "esp32s2/rom/secure_boot.h"
#elif CONFIG_IDF_TARGET_ESP32C3
#include "esp32c3/rom/secure_boot.h"
#elif CONFIG_IDF_TARGET_ESP32S3
#include "esp32s3/rom/secure_boot.h"
#elif CONFIG_IDF_TARGET_ESP32H2
#include "esp32h2/rom/secure_boot.h"
#elif CONFIG_IDF_TARGET_ESP32C2
#include "esp32c2/rom/secure_boot.h"
#endif
#if !CONFIG_IDF_TARGET_ESP32 || CONFIG_ESP32_REV_MIN_3
/** @brief Verify the secure boot signature block for Secure Boot V2.
*
* Performs RSA-PSS or ECDSA verification of the SHA-256 image based on the public key
* in the signature block, compared against the public key digest stored in efuse.
*
* Similar to esp_secure_boot_verify_signature(), but can be used when the digest is precalculated.
* @param sig_block Pointer to signature block data
* @param image_digest Pointer to 32 byte buffer holding SHA-256 hash.
* @param verified_digest Pointer to 32 byte buffer that will receive verified digest if verification completes. (Used during bootloader implementation only, result is invalid otherwise.)
*
*/
esp_err_t esp_secure_boot_verify_sbv2_signature_block(const ets_secure_boot_signature_t *sig_block, const uint8_t *image_digest, uint8_t *verified_digest);
/** @brief Legacy function to verify RSA secure boot signature block for Secure Boot V2.
*
* @note This is kept for backward compatibility. It internally calls esp_secure_boot_verify_sbv2_signature_block.
*
* @param sig_block Pointer to RSA signature block data
* @param image_digest Pointer to 32 byte buffer holding SHA-256 hash.
* @param verified_digest Pointer to 32 byte buffer that will receive verified digest if verification completes. (Used during bootloader implementation only, result is invalid otherwise.)
*
*/
esp_err_t esp_secure_boot_verify_rsa_signature_block(const ets_secure_boot_signature_t *sig_block, const uint8_t *image_digest, uint8_t *verified_digest);
#endif

View File

@@ -9,7 +9,7 @@
#include "hal/efuse_hal.h"
#include "soc/rtc_cntl_reg.h"
#if CONFIG_IDF_TARGET_ESP32
#include "soc/dport_reg.h"
#include "hal/clk_tree_ll.h"
#endif
#include "esp_rom_sys.h"
#include "esp_rom_uart.h"
@@ -32,23 +32,32 @@ __attribute__((weak)) void bootloader_clock_configure(void)
* document). For rev. 0, switch to 240 instead if it has been enabled
* previously.
*/
if (efuse_hal_get_chip_revision() == 0 &&
DPORT_REG_GET_FIELD(DPORT_CPU_PER_CONF_REG, DPORT_CPUPERIOD_SEL) == DPORT_CPUPERIOD_SEL_240) {
if (efuse_hal_get_major_chip_version() == 0 &&
clk_ll_cpu_get_freq_mhz_from_pll() == CLK_LL_PLL_240M_FREQ_MHZ) {
cpu_freq_mhz = 240;
}
#elif CONFIG_IDF_TARGET_ESP32H2
cpu_freq_mhz = 64;
#endif
if (rtc_clk_apb_freq_get() < APB_CLK_FREQ || esp_rom_get_reset_reason(0) != RESET_REASON_CPU0_SW) {
if (esp_rom_get_reset_reason(0) != RESET_REASON_CPU0_SW || rtc_clk_apb_freq_get() < APB_CLK_FREQ) {
rtc_clk_config_t clk_cfg = RTC_CLK_CONFIG_DEFAULT();
#if CONFIG_IDF_TARGET_ESP32
clk_cfg.xtal_freq = CONFIG_ESP32_XTAL_FREQ;
#endif
/* ESP32-S2 doesn't have XTAL_FREQ choice, always 40MHz */
#if CONFIG_IDF_TARGET_ESP32C2
clk_cfg.xtal_freq = CONFIG_ESP32C2_XTAL_FREQ;
#endif
/* For other chips, there is no XTAL_FREQ choice */
clk_cfg.cpu_freq_mhz = cpu_freq_mhz;
clk_cfg.slow_freq = rtc_clk_slow_freq_get();
clk_cfg.fast_freq = rtc_clk_fast_freq_get();
clk_cfg.slow_clk_src = rtc_clk_slow_src_get();
if (clk_cfg.slow_clk_src == SOC_RTC_SLOW_CLK_SRC_INVALID) {
clk_cfg.slow_clk_src = SOC_RTC_SLOW_CLK_SRC_RC_SLOW;
}
clk_cfg.fast_clk_src = rtc_clk_fast_src_get();
if (clk_cfg.fast_clk_src == SOC_RTC_FAST_CLK_SRC_INVALID) {
clk_cfg.fast_clk_src = SOC_RTC_FAST_CLK_SRC_XTAL_DIV;
}
rtc_clk_init(clk_cfg);
}

View File

@@ -1,5 +1,5 @@
/*
* SPDX-FileCopyrightText: 2018-2021 Espressif Systems (Shanghai) CO LTD
* SPDX-FileCopyrightText: 2018-2022 Espressif Systems (Shanghai) CO LTD
*
* SPDX-License-Identifier: Apache-2.0
*/
@@ -13,7 +13,6 @@
#include "esp_rom_crc.h"
#include "esp_rom_gpio.h"
#include "esp_rom_sys.h"
#include "esp_rom_efuse.h"
#include "esp_flash_partitions.h"
#include "bootloader_flash_priv.h"
#include "bootloader_common.h"
@@ -187,20 +186,3 @@ void bootloader_common_vddsdio_configure(void)
}
#endif // CONFIG_BOOTLOADER_VDDSDIO_BOOST
}
RESET_REASON bootloader_common_get_reset_reason(int cpu_no)
{
return (RESET_REASON)esp_rom_get_reset_reason(cpu_no);
}
uint8_t bootloader_flash_get_cs_io(void)
{
uint8_t cs_io;
const uint32_t spiconfig = esp_rom_efuse_get_flash_gpio_info();
if (spiconfig == ESP_ROM_EFUSE_FLASH_DEFAULT_SPI) {
cs_io = SPI_CS0_GPIO_NUM;
} else {
cs_io = (spiconfig >> 18) & 0x3f;
}
return cs_io;
}

View File

@@ -17,6 +17,7 @@
#include "soc/gpio_periph.h"
#include "soc/rtc.h"
#include "soc/efuse_reg.h"
#include "hal/efuse_hal.h"
#include "hal/gpio_ll.h"
#include "esp_image_format.h"
#include "bootloader_sha.h"
@@ -63,7 +64,13 @@ esp_err_t bootloader_common_check_chip_validity(const esp_image_header_t* img_hd
}
#ifndef CONFIG_IDF_ENV_FPGA
uint8_t revision = bootloader_common_get_chip_revision();
#if defined(CONFIG_IDF_TARGET_ESP32) || defined(CONFIG_IDF_TARGET_ESP32S2) || defined(CONFIG_IDF_TARGET_ESP32C2) || defined(CONFIG_IDF_TARGET_ESP32H2)
uint8_t revision = efuse_hal_get_major_chip_version();
// min_chip_rev keeps the MAJOR wafer version for these chips
#else
uint8_t revision = efuse_hal_get_minor_chip_version();
// min_chip_rev keeps the MINOR wafer version for these chips
#endif
if (revision < img_hdr->min_chip_rev) {
/* To fix this error, please update mininum supported chip revision from configuration,
* located in TARGET (e.g. ESP32) specific options under "Component config" menu */
@@ -157,7 +164,11 @@ static void update_rtc_retain_mem_crc(void)
void bootloader_common_reset_rtc_retain_mem(void)
{
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wstringop-overflow"
#pragma GCC diagnostic ignored "-Warray-bounds"
memset(rtc_retain_mem, 0, sizeof(rtc_retain_mem_t));
#pragma GCC diagnostic pop
}
uint16_t bootloader_common_get_rtc_retain_mem_reboot_counter(void)

View File

@@ -90,7 +90,7 @@ void bootloader_console_init(void)
// Set configured UART console baud rate
uint32_t clock_hz = rtc_clk_apb_freq_get();
#if ESP_ROM_UART_CLK_IS_XTAL
clock_hz = UART_CLK_FREQ_ROM; // From esp32-s3 on, UART clock source is selected to XTAL in ROM
clock_hz = (uint32_t)rtc_clk_xtal_freq_get() * MHZ; // From esp32-s3 on, UART clk source is selected to XTAL in ROM
#endif
esp_rom_uart_set_clock_baudrate(uart_num, clock_hz, CONFIG_ESP_CONSOLE_UART_BAUDRATE);
}

View File

@@ -9,13 +9,9 @@
#include "bootloader_common.h"
#include "hal/efuse_ll.h"
#include "hal/efuse_hal.h"
#include "esp_attr.h"
uint8_t bootloader_common_get_chip_revision(void)
{
return efuse_hal_get_chip_revision();
}
uint32_t bootloader_common_get_chip_ver_pkg(void)
IRAM_ATTR uint32_t bootloader_common_get_chip_ver_pkg(void)
{
return efuse_ll_get_chip_ver_pkg();
}

View File

@@ -18,6 +18,7 @@
#include "esp_cpu.h"
#include "soc/rtc.h"
#include "hal/wdt_hal.h"
#include "hal/efuse_hal.h"
static const char *TAG = "boot";
@@ -40,9 +41,7 @@ esp_err_t bootloader_read_bootloader_header(void)
esp_err_t bootloader_check_bootloader_validity(void)
{
/* read chip revision from efuse */
uint8_t revision = bootloader_common_get_chip_revision();
ESP_LOGI(TAG, "chip revision: %d", revision);
ESP_LOGI(TAG, "chip revision: V%03d", efuse_hal_chip_revision());
/* compare with the one set in bootloader image header */
if (bootloader_common_check_chip_validity(&bootloader_image_hdr, ESP_IMAGE_BOOTLOADER) != ESP_OK) {
return ESP_FAIL;

View File

@@ -6,7 +6,6 @@
#include <stdbool.h>
#include "hal/cpu_hal.h"
#include "hal/mpu_hal.h"
#include "hal/mpu_types.h"
#include "soc/soc_caps.h"
@@ -15,8 +14,6 @@
void bootloader_init_mem(void)
{
cpu_hal_init_hwloop();
#ifdef CONFIG_BOOTLOADER_REGION_PROTECTION_ENABLE
// protect memory region
esp_cpu_configure_region_protection();

View File

@@ -4,9 +4,9 @@
* SPDX-License-Identifier: Apache-2.0
*/
#include "esp_cpu.h"
#include "esp_log.h"
#include "bootloader_common.h"
#include "hal/cpu_hal.h"
#include "esp_rom_sys.h"
@@ -22,8 +22,8 @@ void abort(void)
#if !CONFIG_ESP_SYSTEM_PANIC_SILENT_REBOOT
esp_rom_printf("abort() was called at PC 0x%08x\r\n", (intptr_t)__builtin_return_address(0) - 3);
#endif
if (cpu_hal_is_debugger_attached()) {
cpu_hal_break();
if (esp_cpu_dbgr_is_attached()) {
esp_cpu_dbgr_break();
}
while (1) {
}

View File

@@ -5,7 +5,7 @@
*/
#include "sdkconfig.h"
#include "bootloader_random.h"
#include "hal/cpu_hal.h"
#include "esp_cpu.h"
#include "soc/wdev_reg.h"
#ifndef BOOTLOADER_BUILD
@@ -43,10 +43,10 @@
values.
*/
random = REG_READ(WDEV_RND_REG);
start = cpu_hal_get_cycle_count();
start = esp_cpu_get_cycle_count();
do {
random ^= REG_READ(WDEV_RND_REG);
now = cpu_hal_get_cycle_count();
now = esp_cpu_get_cycle_count();
} while (now - start < RNG_CPU_WAIT_CYCLE_NUM);
}
buffer_bytes[i] = random >> ((i % 4) * 8);

View File

@@ -11,13 +11,57 @@
#include "soc/apb_saradc_reg.h"
#include "soc/system_reg.h"
#include "esp_private/regi2c_ctrl.h"
#include "soc/regi2c_saradc.h"
void bootloader_random_enable(void)
{
// TODO: IDF-4021
/* RNG module is always clock enabled */
REG_SET_FIELD(RTC_CNTL_SENSOR_CTRL_REG, RTC_CNTL_FORCE_XPD_SAR, 0x3);
SET_PERI_REG_MASK(RTC_CNTL_ANA_CONF_REG, RTC_CNTL_SAR_I2C_PU_M);
// Bridging sar2 internal reference voltage
REGI2C_WRITE_MASK(I2C_SAR_ADC, ADC_SARADC2_ENCAL_REF_ADDR, 1);
REGI2C_WRITE_MASK(I2C_SAR_ADC, ADC_SARADC_DTEST_RTC_ADDR, 0);
REGI2C_WRITE_MASK(I2C_SAR_ADC, ADC_SARADC_ENT_RTC_ADDR, 0);
REGI2C_WRITE_MASK(I2C_SAR_ADC, ADC_SARADC_ENT_TSENS_ADDR, 0);
// Enable SAR ADC2 internal channel to read adc2 ref voltage for additional entropy
SET_PERI_REG_MASK(SYSTEM_PERIP_CLK_EN0_REG, SYSTEM_APB_SARADC_CLK_EN_M);
CLEAR_PERI_REG_MASK(SYSTEM_PERIP_RST_EN0_REG, SYSTEM_APB_SARADC_RST_M);
REG_SET_FIELD(APB_SARADC_APB_ADC_CLKM_CONF_REG, APB_SARADC_REG_CLK_SEL, 0x2);
SET_PERI_REG_MASK(APB_SARADC_APB_ADC_CLKM_CONF_REG, APB_SARADC_CLK_EN_M);
SET_PERI_REG_MASK(APB_SARADC_CTRL_REG, APB_SARADC_SAR_CLK_GATED_M);
REG_SET_FIELD(APB_SARADC_CTRL_REG, APB_SARADC_XPD_SAR_FORCE, 0x3);
REG_SET_FIELD(APB_SARADC_CTRL_REG, APB_SARADC_SAR_CLK_DIV, 1);
REG_SET_FIELD(APB_SARADC_FSM_WAIT_REG, APB_SARADC_RSTB_WAIT, 8);
REG_SET_FIELD(APB_SARADC_FSM_WAIT_REG, APB_SARADC_XPD_WAIT, 5);
REG_SET_FIELD(APB_SARADC_FSM_WAIT_REG, APB_SARADC_STANDBY_WAIT, 100);
SET_PERI_REG_MASK(APB_SARADC_CTRL_REG, APB_SARADC_SAR_PATT_P_CLEAR_M);
CLEAR_PERI_REG_MASK(APB_SARADC_CTRL_REG, APB_SARADC_SAR_PATT_P_CLEAR_M);
REG_SET_FIELD(APB_SARADC_CTRL_REG, APB_SARADC_SAR_PATT_LEN, 0);
REG_SET_FIELD(APB_SARADC_SAR_PATT_TAB1_REG, APB_SARADC_SAR_PATT_TAB1, 0x9cffff);// Set adc2 internal channel & atten
REG_SET_FIELD(APB_SARADC_SAR_PATT_TAB2_REG, APB_SARADC_SAR_PATT_TAB2, 0xffffff);
// Set ADC sampling frequency
REG_SET_FIELD(APB_SARADC_CTRL2_REG, APB_SARADC_TIMER_TARGET, 100);
REG_SET_FIELD(APB_SARADC_APB_ADC_CLKM_CONF_REG, APB_SARADC_REG_CLKM_DIV_NUM, 15);
CLEAR_PERI_REG_MASK(APB_SARADC_CTRL2_REG, APB_SARADC_MEAS_NUM_LIMIT);
SET_PERI_REG_MASK(APB_SARADC_DMA_CONF_REG, APB_SARADC_APB_ADC_TRANS_M);
SET_PERI_REG_MASK(APB_SARADC_CTRL2_REG, APB_SARADC_TIMER_EN);
}
void bootloader_random_disable(void)
{
// TODO: IDF-4021
/* Restore internal I2C bus state */
REGI2C_WRITE_MASK(I2C_SAR_ADC, ADC_SARADC2_ENCAL_REF_ADDR, 0);
/* Restore SARADC to default mode */
CLEAR_PERI_REG_MASK(APB_SARADC_CTRL2_REG, APB_SARADC_TIMER_EN);
CLEAR_PERI_REG_MASK(APB_SARADC_DMA_CONF_REG, APB_SARADC_APB_ADC_TRANS_M);
REG_SET_FIELD(APB_SARADC_SAR_PATT_TAB1_REG, APB_SARADC_SAR_PATT_TAB1, 0xffffff);
REG_SET_FIELD(APB_SARADC_SAR_PATT_TAB2_REG, APB_SARADC_SAR_PATT_TAB2, 0xffffff);
CLEAR_PERI_REG_MASK(APB_SARADC_APB_ADC_CLKM_CONF_REG, APB_SARADC_CLK_EN_M);
REG_SET_FIELD(APB_SARADC_CTRL_REG, APB_SARADC_XPD_SAR_FORCE, 0);
REG_SET_FIELD(RTC_CNTL_SENSOR_CTRL_REG, RTC_CNTL_FORCE_XPD_SAR, 0);
}

View File

@@ -11,7 +11,7 @@
#include "soc/apb_saradc_reg.h"
#include "soc/system_reg.h"
#include "esp_private/regi2c_ctrl.h"
#include "regi2c_saradc.h"
#include "soc/regi2c_saradc.h"
void bootloader_random_enable(void)
{

View File

@@ -11,8 +11,8 @@
#include "soc/apb_saradc_reg.h"
#include "soc/rtc_cntl_reg.h"
#include "soc/sens_reg.h"
#include "esp_private/regi2c_ctrl.h"
#include "regi2c_saradc.h"
#include "hal/regi2c_ctrl.h"
#include "soc/regi2c_saradc.h"
void bootloader_random_enable(void)
{
@@ -83,8 +83,6 @@ void bootloader_random_disable(void)
REGI2C_WRITE_MASK(I2C_SAR_ADC, ADC_SARADC_ENT_RTC_ADDR, 0);
REGI2C_WRITE_MASK(I2C_SAR_ADC, ADC_SARADC_DTEST_RTC_ADDR, 0);
//Stop SAR ADC clock
CLEAR_PERI_REG_MASK(SENS_SAR_PERI_CLK_GATE_CONF_REG, SENS_SARADC_CLK_EN);
//Power off SAR ADC
REG_SET_FIELD(SENS_SAR_POWER_XPD_SAR_REG, SENS_FORCE_XPD_SAR, 0);
//return to ADC RTC controller

View File

@@ -478,7 +478,7 @@ void bootloader_utility_load_boot_image(const bootloader_state_t *bs, int start_
{
int index = start_index;
esp_partition_pos_t part;
esp_image_metadata_t image_data;
esp_image_metadata_t image_data = {0};
if (start_index == TEST_APP_INDEX) {
if (check_anti_rollback(&bs->test) && try_load_partition(&bs->test, &image_data)) {
@@ -577,6 +577,17 @@ static void load_image(const esp_image_metadata_t *image_data)
esp_err_t err;
#endif
#ifdef CONFIG_SECURE_BOOT_FLASH_ENC_KEYS_BURN_TOGETHER
if (esp_secure_boot_enabled() ^ esp_flash_encrypt_initialized_once()) {
ESP_LOGE(TAG, "Secure Boot and Flash Encryption cannot be enabled separately, only together (their keys go into one eFuse key block)");
return;
}
if (!esp_secure_boot_enabled() || !esp_flash_encryption_enabled()) {
esp_efuse_batch_write_begin();
}
#endif // CONFIG_SECURE_BOOT_FLASH_ENC_KEYS_BURN_TOGETHER
#ifdef CONFIG_SECURE_BOOT_V2_ENABLED
err = esp_secure_boot_v2_permanently_enable(image_data);
if (err != ESP_OK) {
@@ -604,13 +615,50 @@ static void load_image(const esp_image_metadata_t *image_data)
* 5) Burn EFUSE to enable flash encryption
*/
ESP_LOGI(TAG, "Checking flash encryption...");
bool flash_encryption_enabled = esp_flash_encryption_enabled();
err = esp_flash_encrypt_check_and_update();
if (err != ESP_OK) {
ESP_LOGE(TAG, "Flash encryption check failed (%d).", err);
bool flash_encryption_enabled = esp_flash_encrypt_state();
if (!flash_encryption_enabled) {
#ifdef CONFIG_SECURE_FLASH_REQUIRE_ALREADY_ENABLED
ESP_LOGE(TAG, "flash encryption is not enabled, and SECURE_FLASH_REQUIRE_ALREADY_ENABLED is set, refusing to boot.");
return;
#endif // CONFIG_SECURE_FLASH_REQUIRE_ALREADY_ENABLED
if (esp_flash_encrypt_is_write_protected(true)) {
return;
}
err = esp_flash_encrypt_init();
if (err != ESP_OK) {
ESP_LOGE(TAG, "Initialization of Flash Encryption key failed (%d)", err);
return;
}
}
#endif
#ifdef CONFIG_SECURE_BOOT_FLASH_ENC_KEYS_BURN_TOGETHER
if (!esp_secure_boot_enabled() || !flash_encryption_enabled) {
err = esp_efuse_batch_write_commit();
if (err != ESP_OK) {
ESP_LOGE(TAG, "Error programming eFuses (err=0x%x).", err);
return;
}
assert(esp_secure_boot_enabled());
ESP_LOGI(TAG, "Secure boot permanently enabled");
}
#endif // CONFIG_SECURE_BOOT_FLASH_ENC_KEYS_BURN_TOGETHER
if (!flash_encryption_enabled) {
err = esp_flash_encrypt_contents();
if (err != ESP_OK) {
ESP_LOGE(TAG, "Encryption flash contents failed (%d)", err);
return;
}
err = esp_flash_encrypt_enable();
if (err != ESP_OK) {
ESP_LOGE(TAG, "Enabling of Flash encryption failed (%d)", err);
return;
}
}
#endif // CONFIG_SECURE_FLASH_ENC_ENABLED
#ifdef CONFIG_SECURE_BOOT_V1_ENABLED
/* Step 6 (see above for full description):
@@ -724,12 +772,12 @@ static void set_cache_and_start_app(
//The addr is aligned, so we add the mask off length to the size, to make sure the corresponding buses are enabled.
drom_size = (drom_load_addr - drom_load_addr_aligned) + drom_size;
#if CONFIG_IDF_TARGET_ESP32
uint32_t drom_page_count = (drom_size + MMU_PAGE_SIZE - 1) / MMU_PAGE_SIZE;
uint32_t drom_page_count = (drom_size + SPI_FLASH_MMU_PAGE_SIZE - 1) / SPI_FLASH_MMU_PAGE_SIZE;
rc = cache_flash_mmu_set(0, 0, drom_load_addr_aligned, drom_addr_aligned, 64, drom_page_count);
ESP_EARLY_LOGV(TAG, "rc=%d", rc);
rc = cache_flash_mmu_set(1, 0, drom_load_addr_aligned, drom_addr_aligned, 64, drom_page_count);
ESP_EARLY_LOGV(TAG, "rc=%d", rc);
ESP_EARLY_LOGV(TAG, "after mapping rodata, starting from paddr=0x%08x and vaddr=0x%08x, 0x%x bytes are mapped", drom_addr_aligned, drom_load_addr_aligned, drom_page_count * MMU_PAGE_SIZE);
ESP_EARLY_LOGV(TAG, "after mapping rodata, starting from paddr=0x%08x and vaddr=0x%08x, 0x%x bytes are mapped", drom_addr_aligned, drom_load_addr_aligned, drom_page_count * SPI_FLASH_MMU_PAGE_SIZE);
#else
uint32_t actual_mapped_len = 0;
mmu_hal_map_region(0, MMU_TARGET_FLASH0, drom_load_addr_aligned, drom_addr_aligned, drom_size, &actual_mapped_len);
@@ -743,12 +791,12 @@ static void set_cache_and_start_app(
//The addr is aligned, so we add the mask off length to the size, to make sure the corresponding buses are enabled.
irom_size = (irom_load_addr - irom_load_addr_aligned) + irom_size;
#if CONFIG_IDF_TARGET_ESP32
uint32_t irom_page_count = (irom_size + MMU_PAGE_SIZE - 1) / MMU_PAGE_SIZE;
uint32_t irom_page_count = (irom_size + SPI_FLASH_MMU_PAGE_SIZE - 1) / SPI_FLASH_MMU_PAGE_SIZE;
rc = cache_flash_mmu_set(0, 0, irom_load_addr_aligned, irom_addr_aligned, 64, irom_page_count);
ESP_EARLY_LOGV(TAG, "rc=%d", rc);
rc = cache_flash_mmu_set(1, 0, irom_load_addr_aligned, irom_addr_aligned, 64, irom_page_count);
ESP_LOGV(TAG, "rc=%d", rc);
ESP_EARLY_LOGV(TAG, "after mapping text, starting from paddr=0x%08x and vaddr=0x%08x, 0x%x bytes are mapped", irom_addr_aligned, irom_load_addr_aligned, irom_page_count * MMU_PAGE_SIZE);
ESP_EARLY_LOGV(TAG, "after mapping text, starting from paddr=0x%08x and vaddr=0x%08x, 0x%x bytes are mapped", irom_addr_aligned, irom_load_addr_aligned, irom_page_count * SPI_FLASH_MMU_PAGE_SIZE);
#else
mmu_hal_map_region(0, MMU_TARGET_FLASH0, irom_load_addr_aligned, irom_addr_aligned, irom_size, &actual_mapped_len);
ESP_EARLY_LOGV(TAG, "after mapping text, starting from paddr=0x%08x and vaddr=0x%08x, 0x%x bytes are mapped", irom_addr_aligned, irom_load_addr_aligned, actual_mapped_len);

View File

@@ -27,6 +27,8 @@
#include "soc/rtc.h"
#include "soc/spi_periph.h"
#include "hal/gpio_hal.h"
#include "xtensa/config/core.h"
#include "xt_instr_macros.h"
#include "esp32/rom/cache.h"
#include "esp_rom_gpio.h"
@@ -350,6 +352,11 @@ esp_err_t bootloader_init(void)
{
esp_err_t ret = ESP_OK;
#if XCHAL_ERRATUM_572
uint32_t memctl = XCHAL_CACHE_MEMCTL_DEFAULT;
WSR(MEMCTL, memctl);
#endif // XCHAL_ERRATUM_572
bootloader_init_mem();
// check that static RAM is after the stack

View File

@@ -263,6 +263,8 @@ esp_err_t bootloader_init(void)
cache_hal_init();
//reset mmu
mmu_hal_init();
// config mmu page size
mmu_ll_set_page_size(0, SPI_FLASH_MMU_PAGE_SIZE);
// config clock
bootloader_clock_configure();
// initialize console, from now on, we can use esp_log

View File

@@ -23,7 +23,12 @@ esp_err_t esp_flash_encryption_enable_secure_features(void)
ESP_LOGW(TAG, "Not disabling UART bootloader encryption");
#endif
#ifndef CONFIG_SECURE_FLASH_UART_BOOTLOADER_ALLOW_CACHE
ESP_LOGI(TAG, "Disable UART bootloader cache...");
esp_efuse_write_field_bit(ESP_EFUSE_DIS_DOWNLOAD_ICACHE);
#else
ESP_LOGW(TAG, "Not disabling UART bootloader cache - SECURITY COMPROMISED");
#endif
#ifndef CONFIG_SECURE_BOOT_ALLOW_JTAG
ESP_LOGI(TAG, "Disable JTAG...");

View File

@@ -20,6 +20,7 @@
#include "soc/assist_debug_reg.h"
#include "esp_cpu.h"
#include "soc/rtc.h"
#include "soc/rtc_cntl_reg.h"
#include "soc/spi_periph.h"
#include "soc/extmem_reg.h"
#include "soc/io_mux_reg.h"
@@ -32,14 +33,15 @@
#include "bootloader_flash_config.h"
#include "bootloader_mem.h"
#include "esp_private/regi2c_ctrl.h"
#include "regi2c_lp_bias.h"
#include "regi2c_bias.h"
#include "soc/regi2c_lp_bias.h"
#include "soc/regi2c_bias.h"
#include "bootloader_console.h"
#include "bootloader_flash_priv.h"
#include "bootloader_soc.h"
#include "esp_efuse.h"
#include "hal/mmu_hal.h"
#include "hal/cache_hal.h"
#include "hal/efuse_hal.h"
static const char *TAG = "boot.esp32c3";
@@ -250,7 +252,7 @@ static inline void bootloader_hardware_init(void)
{
// This check is always included in the bootloader so it can
// print the minimum revision error message later in the boot
if (bootloader_common_get_chip_revision() < 3) {
if (efuse_hal_get_minor_chip_version() < 3) {
REGI2C_WRITE_MASK(I2C_ULP, I2C_ULP_IR_FORCE_XPD_IPH, 1);
REGI2C_WRITE_MASK(I2C_BIAS, I2C_BIAS_DREG_1P1_PVT, 12);
}
@@ -263,7 +265,7 @@ static inline void bootloader_ana_reset_config(void)
For ECO2: fix brownout reset bug, support swt & brownout reset;
For ECO3: fix clock glitch reset bug, support all reset, include: swt & brownout & clock glitch reset.
*/
uint8_t chip_version = bootloader_common_get_chip_revision();
uint8_t chip_version = efuse_hal_get_minor_chip_version();
switch (chip_version) {
case 0:
case 1:

Some files were not shown because too many files have changed in this diff Show More