Compare commits

...

4026 Commits

Author SHA1 Message Date
5ef1b39002 Merge branch 'fix/prov_ble_read_offset_v4.1' into 'release/v4.1'
BLE provisioning: Add check for valid ble read offset (v4.1)

See merge request espressif/esp-idf!9745
2020-08-13 07:54:36 +08:00
bd72a9ab2b Merge branch 'bugfix/can_multiple_fixes_backport_v4.1' into 'release/v4.1'
CAN multiple bug fixes (backport v4.1)

See merge request espressif/esp-idf!9886
2020-08-03 13:04:51 +08:00
f1b651af7e CAN: Remove asserts used for program logic
This commit fixes the bug where CAN driver program logic was being
called in assert(), thus leading to the logic being omitted in
release builds.
2020-07-31 00:19:53 +08:00
550ed39ea3 CAN: Fix size of RX msg count field on the esp32
This commit fixes the size of the RX message count register field
on the esp32.
2020-07-30 23:59:42 +08:00
95083233c5 Merge branch 'bugfix/prov_retry_failures_v4.1' into 'release/v4.1'
ci: Add retries for all provisioning methods, some refactors (v4.1)

See merge request espressif/esp-idf!9388
2020-07-23 13:19:30 +08:00
ceeee9036c Merge branch 'ci/fix_uart_read_write_priorities_v4.1' into 'release/v4.1'
driver test: Ensure uart write task can't overflow buffer of read task (v4.1)

See merge request espressif/esp-idf!9570
2020-07-23 13:15:27 +08:00
be13513378 BLE provisioning: Add check for valid ble read offset 2020-07-22 19:40:49 +05:30
36edd91060 Merge branch 'bugfix/rs485_test_temp_disable_v41' into 'release/v4.1'
Bugfix/rs485 test temp disable v41 (backport v4.1)

See merge request espressif/esp-idf!9524
2020-07-22 17:20:00 +08:00
b3b7fcf51c Merge branch 'ci/workaround_multiple_ci_failures_v4.1' into 'release/v4.1'
CI: workaround multiple ci failures (v4.1)

See merge request espressif/esp-idf!9685
2020-07-22 11:54:04 +08:00
103503ba56 CI: do not run cases likely to fail 2020-07-19 14:58:06 +08:00
50b5b3184e CI: disable cases with test env SSC_T5_1 2020-07-19 14:58:05 +08:00
69ce0cea68 CI: temp allow mesh job to fail as runner is not stable 2020-07-19 14:58:03 +08:00
77fd8095e0 CI: remove incorrect MTU related cases 2020-07-19 14:58:02 +08:00
839893cfce Merge branch 'bugfix/buff_semaphore_not_free_v4.1' into 'release/v4.1'
component/bt: Fixed ble memory leak issue, buff_semaphore was not released..(backport 4.1)

See merge request espressif/esp-idf!9508
2020-07-10 16:49:35 +08:00
5cf858bee3 driver test: Ensure uart write task can't overflow buffer of read task
Previously both tasks had equal priority, possible for write task and another
internal task to be scheduled at the same time - starving read task and
causing data loss.

Related to IDFCI-59
2020-07-10 16:00:39 +10:00
f5a7c9635f Merge branch 'feature/msys2_env_update_v4.1' into 'release/v4.1'
windows: Update MSYS2 pre-compiled legacy build environment (v4.1)

See merge request espressif/esp-idf!9143
2020-07-08 17:34:33 +08:00
1ecd5ab91d ci: temporarily disable RS485 related tests 2020-07-08 06:44:07 +02:00
9c9b64ee17 component/bt: Fixed ble memory leak issue, buff_semaphore was not released. 2020-07-07 21:02:49 +08:00
0116d5d096 Merge branch 'bugfix/esp32_encrypted_flash_write_v4.1' into 'release/v4.1'
spi_flash: esp32: fix regression in encrypted flash write (v4.1)

See merge request espressif/esp-idf!9378
2020-07-06 08:18:23 +08:00
6db66c96d6 Merge branch 'bugfix/ci_fixes_v4.1' into 'release/v4.1'
ci: multiple minor fixes (backport v4.1)

See merge request espressif/esp-idf!8226
2020-07-06 07:23:46 +08:00
8d54933e10 Merge branch 'mesh/bugfix_coexist_warning_4.1' into 'release/v4.1'
mesh: remove coexist warnings in ESP_WIFI_MESH (backport 4.1)

See merge request espressif/esp-idf!9414
2020-07-03 20:10:09 +08:00
b1e907ccf1 ci: consider sdkconfig.defaults.TARGET_NAME in examples and test apps 2020-07-03 09:45:03 +00:00
370aa39045 efuse: don't include esp_efuse_utility_debug_dump_blocks in bootloader 2020-07-03 09:45:03 +00:00
9b19b21073 ci: generate separate log files for each example config
Otherwise the build log gets overwritten, and warnings in earlier
builds may be masked.
2020-07-03 09:45:03 +00:00
88baff4cbb ci: do fetch submodules in test_build_system_cmake_macos
Also install Python packages required by the CI scripts, and install
build tools (CMake, ninja).
2020-07-03 09:45:03 +00:00
4ea2935b1a ci provisioning: Add some experiments to check the runner's STA state
Not clear why sometimes it associates without negotiating a new DHCP lease.
2020-07-03 09:02:04 +00:00
a1cd7d0ef5 esp_prov: Extend the timeout for HTTP connection to SoftAP 2020-07-03 09:02:04 +00:00
113721f8fc ci wifi_tools: Log the wpa_supplicant interface state when trying to connect
Trigger reconnection if wpa_supplicant seems to have dropped the connection.
2020-07-03 09:02:04 +00:00
5cc9ef901e legacy provisioning: Always try to reconnect when disconnected
Some APs may fail authentication temporarily if they have too many
associated stations, for example.
2020-07-03 09:02:04 +00:00
ea8fae9ded esp_prov: Refactor to use new 'wait_wifi_connected' function
Means all provisioning examples will have the same retry behaviour.
2020-07-03 09:02:04 +00:00
9d38b0ab9b ci provisioning: Use strings instead of "magic numbers" for connection state 2020-07-03 09:02:04 +00:00
faaf08c441 ci: Wait up to 60 seconds for client to connect to DUT in provisioning test 2020-07-03 09:02:04 +00:00
f9e22b627e mesh: remove coexist warnings in ESP_WIFI_MESH
1. remove warning log when mesh is started:
Error! Should use default passive scan time parameter for WiFi scan when Bluetooth is enabled!!!!!!
2. remove abort when mesh is started:
Error! Should enable WiFi modem sleep when both WiFi and Bluetooth are enabled!!!!!!
2020-07-03 14:54:20 +08:00
b6e2163e5e Merge branch 'bugfix/beacon_security_downgrade_v4.1' into 'release/v4.1'
Avoid parsing RSN/WPA IE's after connection (Backport v4.1)

See merge request espressif/esp-idf!9284
2020-07-03 14:33:18 +08:00
aceb46efc2 esp_wifi: Update wifi lib
1. Avoid parsing RSN/WPA IE's after connection
2. Remove AUTH_CHANGED reason code logic
2020-07-01 11:49:02 +00:00
56accfe4c4 spi_flash: esp32: fix regression in encrypted flash write
In commit 309376f51a, it seems like regression
was added to use ROM level API for disabling flash write protection. This
started random firmware crashes (on specific modules) with exception
`IllegalInstruction` during encrypted flash writes.

Fix here removes relevant ROM API call, since disabling flash write protection
is already ensured by caller of this API.

Closes https://github.com/espressif/esp-idf/issues/5467
2020-06-29 14:51:58 +05:30
7ab2ffb45f spi_flash: Use per-chip flash_ops files for legacy API
Looks like when ESP32-S2 Beta support was merged, the separate files
were dropped by accident.
2020-06-29 14:49:28 +05:30
6cbc7dc2cd Merge branch 'bugfix/fix_adc_io_init_bug_for_idfv4.1' into 'release/v4.1'
driver(adc): fix adc io init bug for idfv4.1 (backport v4.1)

See merge request espressif/esp-idf!8714
2020-06-29 15:00:22 +08:00
c735e7edf5 Merge branch 'bugfix/export_path_checks_v4.1' into 'release/v4.1'
tools: export.sh: better detection and checking of IDF_PATH (backport v4.1)

See merge request espressif/esp-idf!8747
2020-06-26 21:24:11 +08:00
f31a804c1e Merge branch 'ci/http_client_remove_httpbin_redirect_v4.1' into 'release/v4.1'
ci: Temporarily remove the esp_http_client httpbin redirect tests (v4.1)

See merge request espressif/esp-idf!9341
2020-06-26 21:23:04 +08:00
d168611bbf ci: Temporarily remove the esp_http_client httpbin redirect tests
Need to host httpbin ourselves or wait for
postmanlabs/httpbin/issues/617 to be resolved
2020-06-25 09:35:20 +00:00
b85f877817 tools: export.sh: fix compatibility with dash shell
* fix constructs invalid in dash
* clean shellcheck warnings and disable false positive ones

Closes https://github.com/espressif/esp-idf/issues/5366
2020-06-25 09:19:58 +00:00
6ae54e7fd2 tools: export.sh: better detection and checking of IDF_PATH
1. detect IDF_PATH in zsh, if it is not set
2. if IDF_PATH is set, check that it is valid
3. make sure IDF_PATH is exported, not just set

Related to https://github.com/espressif/esp-idf/issues/3793
Closes https://github.com/espressif/esp-idf/pull/4418
Closes https://github.com/espressif/esp-idf/issues/4770
Closes https://github.com/espressif/esp-idf/issues/5288
2020-06-25 09:19:58 +00:00
dd99fc77cb Merge branch 'bugfix/python_lint_v4.1' into 'release/v4.1'
tools: fix python lint (4.1)

See merge request espressif/esp-idf!9294
2020-06-25 12:35:07 +08:00
4daa605bd3 gh_action: fix python lint 2020-06-24 13:17:29 +08:00
97f10f6509 Merge branch 'bugfix/wpa3_ble_coex_issue_v4.1' into 'release/v4.1'
Fix WPA3 Auth timeout during BLE coex (Backport 4.1)

See merge request espressif/esp-idf!9208
2020-06-18 14:44:38 +08:00
ee70736a03 esp_wifi: Update wifi lib
1. Fix WPA3 Auth timeout during BLE coex by increasing CNX timeout
2. Extend Coex phase for SAE Handshake
3. Define and utilize WPA3 Mixed Authmode, update esp_wifi_types.h
2020-06-18 05:19:26 +00:00
9e55345c43 Merge branch 'bugfix/efuse_logs_v4.1' into 'release/v4.1'
esp32: Reduce using ESP_EARLY_LOGx and move some code after the stdout initialization in startup code (v4.1)

See merge request espressif/esp-idf!9206
2020-06-18 07:11:42 +08:00
6b66850dc1 Merge branch 'bugfix/ble_conn_fail_v4.1' into 'release/v4.1'
Fix bugs from coex test v4.1

See merge request espressif/esp-idf!9136
2020-06-17 18:17:15 +08:00
e0e391dce3 esp32s2: Move some code after the stdout initialization 2020-06-17 15:53:45 +08:00
0a1919abff esp32: Reduce using ESP_EARLY_LOGx and move some code after the stdout initialization
After setting _GLOBAL_REENT, ESP_LOGIx can be used instead of ESP_EARLY_LOGx.

Closes: https://github.com/espressif/esp-idf/issues/5343
2020-06-17 15:53:45 +08:00
c5bbe87425 Merge branch 'bugfix/airkiss_find_hidden_ap_fail_v4.1' into 'release/v4.1'
fix the bug that airkiss find hidden AP fail (backport v4.1)

See merge request espressif/esp-idf!9176
2020-06-17 12:26:56 +08:00
5e52e5f6f5 Merge branch 'bugfix/blufi_buffer_overflow_report_v4.1' into 'release/v4.1'
Bugfix/blufi buffer overflow report v4.1

See merge request espressif/esp-idf!9178
2020-06-16 15:59:49 +08:00
f82010fa6a Merge branch 'bugfix/att_buffer_count_fixed_v4.1' into 'release/v4.1'
Bugfix/att buffer count fixed v4.1

See merge request espressif/esp-idf!9160
2020-06-16 15:59:34 +08:00
08e7bce4ea esp_wifi:
1. fix the bug that airkiss find hidden AP fail
2. addba fix and send bar in first ampdu
2020-06-16 10:48:48 +08:00
a945ae8a9d Merge branch 'bugfix/add_return_task_awoken_for_timer_callback_v4.1' into 'release/v4.1'
timer: add return task awoken for timer callback (backport v4.1)

See merge request espressif/esp-idf!9148
2020-06-16 10:38:43 +08:00
b33828e254 Merge branch 'bugfix/authmode_degrade_fix_v4.1' into 'release/v4.1'
esp_wifi: Remove auth_changed event and fix wpa2_ent authmode threshold (backport v4.1)

See merge request espressif/esp-idf!8804
2020-06-15 23:18:55 +08:00
ae64d9e738 blufi: When the format of the received data packet is wrong, reply with an error response 2020-06-15 19:37:38 +08:00
6861f7d5d8 components/bt: Add a detailed description for the user to distinguish the function of the query buffer api. 2020-06-15 19:19:14 +08:00
c5a6fc9c7e Update the limited of function esp_ble_get_sendable_packets_num. 2020-06-15 19:17:27 +08:00
3b8b057894 components/bt: Consider link_xmit_data_q in congest events to prevent excessive memory usage 2020-06-13 15:07:28 +08:00
e69ee31e1a components/bt: Fixed the problem of incomplete data packets caused by disordered acl data packets 2020-06-13 15:06:28 +08:00
846a2f95f4 components/bt: Add api to query the number of available buffers for the current connection 2020-06-13 15:06:14 +08:00
74623ac9d5 timer: add return task awoken for timer callback 2020-06-12 14:33:21 +08:00
37c155c359 msys2: Remove python version consideration in pacman commands 2020-06-12 10:22:10 +10:00
194a3b09dc windows: Update MSYS2 pre-compiled legacy build environment
* Bundled with esp2020r2 toolchain
* Built with Python 3 & latest MSYS2 packages
2020-06-12 10:22:10 +10:00
1b8905e544 components/bt: Fix ble disconnect due to instant of channel map update is too small 2020-06-11 16:55:36 +08:00
d0093c7675 Set AFH in time(075dd35)
Send LMP_channelClassification immediately
Fix first LMP_set_AFH not using host value
2020-06-11 16:55:26 +08:00
de6f21936f components/coex: Fix ble connecting fail in coexist 2020-06-11 16:55:12 +08:00
46486a863c esp_wifi: Remove auth_changed event and fix wpa2-ent authmode threshold
Added following as part of this change
1. Removed auth_changed event
2. Updated doc regarding usage of  WPA/WEP secuiry modes
3. Fixed WPA2 enterprise authmode threshold.
2020-06-11 13:40:58 +05:30
29bc65e719 Merge branch 'feature/toolchain_2020r2_v4.1' into 'release/v4.1'
Update toolchain to esp-2020r2  (backport v4.1)

See merge request espressif/esp-idf!9000
2020-06-11 15:44:47 +08:00
7de0c391ac Merge branch 'bugfix/fix_some_wifi_bugs_0522_v4.1' into 'release/v4.1'
bugfix: fix some wifi bugs (backport v4.1)

See merge request espressif/esp-idf!8880
2020-06-11 15:41:06 +08:00
326b42560d Merge branch 'bugfix/collection_of_confirmed_fixes_from_baidu_project_4.1' into 'release/v4.1'
Backport MR for baidu project for release/v4.1

See merge request espressif/esp-idf!8987
2020-06-11 14:46:22 +08:00
6f768b74e4 Merge branch 'bugfix/parttool_get_info_wo_info_option_v4.1' into 'release/v4.1'
partition_table: Fix parttool.py crashes when retrieving partition info (v4.1)

See merge request espressif/esp-idf!9063
2020-06-10 16:02:03 +08:00
aa6481837f Merge branch 'bugfix/bootloader_header_align_v4.1' into 'release/v4.1'
bootloader: Force bootloader_image_hdr to be word aligned (v4.1)

See merge request espressif/esp-idf!9068
2020-06-05 07:28:35 +08:00
bd3caffdcd bootloader_support: force alignment of flash_read argument 2020-06-04 21:01:56 +10:00
a5b4fda207 bootloader: Force bootloader_image_hdr to be word aligned
Possible due to linker order for this file to be placed unaligned,
causing failure from bootloader_flash_read() function.
2020-06-04 20:53:46 +10:00
7070fea6e4 partition_table: Fix parttool.py crashes when retrieving partition info
Closes: IDFGH-3279
Closes: https://github.com/espressif/esp-idf/issues/5271
2020-06-04 16:31:05 +08:00
d35226c656 Merge branch 'bugfix/wpa_supplicant_no_hw_mpi_v4.1' into 'release/v4.1'
wpa_supplicant: Allow building with mbedTLS integration but no hardware MPI (v4.1)

See merge request espressif/esp-idf!9013
2020-06-04 16:22:14 +08:00
7cdc2f2b81 Backport MR for baidu proj 2020-06-04 11:07:30 +08:00
50319bb03c wpa_supplicant: Allow building with mbedTLS integration but no hardware MPI
Also disable the relevant function in bignum.h based on config, so fails at
compile not link time.

Closes https://github.com/espressif/esp-idf/issues/5321
2020-06-03 15:11:21 +10:00
0ea6d39686 Merge branch 'bugfix/secure_boot_v2_fixes_v4.1' into 'release/v4.1'
Small secure boot v2 fixes (v4.1)

See merge request espressif/esp-idf!9019
2020-06-03 12:34:55 +08:00
298f23c958 Update toolchain to esp-2020r2
Fixes PSRAM issues, volatile loads with -O2, std::locale, C++ exception crashs, FDE sorting switchable;

Includes a 64-bit toolchain for Windows (win64);

Closes https://github.com/espressif/esp-idf/issues/5090
Closes https://github.com/espressif/esp-idf/issues/5112
Closes https://github.com/espressif/esp-idf/issues/5150
2020-06-02 13:19:00 +07:00
1e12199832 esp32: use ccomp_timer in SHA test 2020-06-02 13:15:14 +07:00
36a66a7243 newlib: use --specs=nano.specs to enable "nano" version of C library
esp2020r1 toolchain includes a nano.specs file, which instructs GCC to
substitute libc.a with libc_nano.a.

In the build system, this simplifies handling of the nano formatting
option, eliminating LIBC and LIBM global variables.
2020-06-02 13:15:08 +07:00
4eec4fbc99 Add fixes for gcc8 psram fix improvement 2020-06-02 13:14:29 +07:00
b00f38f91c secure boot v2: Add anti-FI check that secure boot not enabled yet
Prevent a fault from causing bootloader to trust the provided signature incorrectly.
2020-06-02 16:14:01 +10:00
3c6b1b4c0a secure boot v2: Don't check efuse BLK2 if only boot-time signature verification is enabled 2020-06-02 16:14:01 +10:00
2c531d5bb3 secure boot v2: Don't log warnings when BLK2 is empty as expected
If BLK2 is empty then it's OK to continue with a warning (otherwise it may spook users into thinking
something this is wrong, but this is the expected workflow.)

If BLK2 is not empty and doesn't match then we need to fail because it won't be possible to
trust the signature.
2020-06-02 16:14:01 +10:00
69895387ee Merge branch 'bugfix/kconfig_hex_values_v4.1' into 'release/v4.1'
kconfig: Fix two cases of hex values being handled incorrectly (v4.1)

See merge request espressif/esp-idf!8787
2020-06-01 14:48:37 +08:00
7708bf6158 Merge branch 'bugfix/ci_push_to_github_on_label_v4.1' into 'release/v4.1'
ci: Don't push to Github or deploy docs on customized pipelines (v4.1)

See merge request espressif/esp-idf!8937
2020-05-29 12:43:11 +08:00
10f3d92f6c Merge branch 'bugfix/add_so_linger_to_menuconfig_for_4.1' into 'release/v4.1'
lw-ip:add LINGER to menuconfig for 4.1(backport4.1)

See merge request espressif/esp-idf!8758
2020-05-29 11:13:52 +08:00
5fb93a14ae Merge branch 'bufix/fix_v4.1_bluedroid_bugs_mr' into 'release/v4.1'
component/bt: fix notify malloc failed , fix no BLE_AUTH_CMPL_EVT and fix bluedroid btc deinit crash(backport 4.1)

See merge request espressif/esp-idf!8756
2020-05-29 11:13:20 +08:00
63592b667c Merge branch 'nimble/config_option_sdkconfig_rename_v4.1' into 'release/v4.1'
Add NimBLE config options in sdkconfig.rename (v4.1)

See merge request espressif/esp-idf!8735
2020-05-29 11:12:44 +08:00
ba06ecf96d bugfix: fix some wifi bugs
1. optimization esp_wifi_set_max_tx_power description
2. Add API esp_wifi_ap_get_sta_aid
3. Fix the timeout issue of EAPOL four-way handshake
4. esp_wifi:Add softap example channel configuration
2020-05-29 11:04:26 +08:00
8793aab0e3 add congest direct callback and fix malloc failed when multi_connection notify performance test 2020-05-28 12:07:58 +00:00
d32ee233af fix bta_dm_deinit_cb crash 2020-05-28 12:07:58 +00:00
049402ae8d master missing BLE_AUTH_CMPL_EVT after restart 2020-05-28 12:07:58 +00:00
977d98cb6d Merge branch 'bugfix/ble_mesh_check_timer_init_v4.1' into 'release/v4.1'
ble_mesh: Check the result of creating timer (v4.1)

See merge request espressif/esp-idf!8958
2020-05-28 15:27:42 +08:00
983a4be42e Merge branch 'nimble/update_nimble_submodule_v4.1' into 'release/v4.1'
NimBLE: Include upstream fixes and use macros for log level filtering (backport v4.1)

See merge request espressif/esp-idf!8794
2020-05-28 15:25:12 +08:00
lly
0c87b1c12d ble_mesh: Check the result of creating timer 2020-05-28 10:27:06 +08:00
5ea193115b Merge branch 'bugfix/ble_mesh_sync_zephyr_fixes_v4.1' into 'release/v4.1'
Bugfix/ble mesh sync zephyr fixes (v4.1)

See merge request espressif/esp-idf!8948
2020-05-28 10:15:53 +08:00
6971cdbad5 Merge branch 'bugfix/ble_mesh_not_use_same_private_key_v4.1' into 'release/v4.1'
ble_mesh: Not using pre-initialized private key (v4.1)

See merge request espressif/esp-idf!8945
2020-05-28 10:14:21 +08:00
0af793f6ef Merge branch 'bugfix/ble_mesh_comp_data_store_restore_v4.1' into 'release/v4.1'
ble_mesh: Same func for storing/restoring comp data (v4.1)

See merge request espressif/esp-idf!8942
2020-05-28 10:12:12 +08:00
e1ce31483d Merge branch 'bugfix/ws_client_fragmented_send_v4.1' into 'release/v4.1'
ws_client: fix fragmented send setting proper opcodes (v4.1)

See merge request espressif/esp-idf!8690
2020-05-28 01:27:41 +08:00
55b56a1557 Merge branch 'bugfix/coap_component_build_issue_v4.1' into 'release/v4.1'
coap: move mbedTLS config options from component to examples (v4.1)

See merge request espressif/esp-idf!8929
2020-05-27 18:41:53 +08:00
lly
2f73d76768 ble_mesh: Transport tx fields overflow [Zephyr]
The transport segmented TX nack and seg_pending fields must be at least
6 bits to avoid overflow for 32 segment messages. This change rearranges
the seg_tx fields to gather all state flag fields in one byte, while
making the counter fields whole bytes.
2020-05-27 17:46:29 +08:00
lly
63c8dd2981 ble_mesh: Friend with unknown appkey [Zephyr]
Ensures that friend messages are enqueued, even if the packet is
received with an appkey is unknown to the friend. Previously, sdu_recv
would return EINVAL if the appkey was unknown, which would prevent the
lower transport layer from adding the packet to the friend queue. This
is irrelevant for the logic in lower transport, and should not be
returned as an error.
2020-05-27 17:46:23 +08:00
a02a782ee9 Merge branch 'doc/add_types_api_ref_v4.1' into 'release/v4.1'
doc: add peripheral_types.h as API reference for peripheral docs (v4.1)

See merge request espressif/esp-idf!8895
2020-05-27 17:44:30 +08:00
lly
0c06be9bcd ble_mesh: Not using pre-initialized private key 2020-05-27 17:39:50 +08:00
lly
d3921346a9 ble_mesh: Same func for storing/restoring comp data 2020-05-27 17:30:31 +08:00
c3d33f4232 Merge branch 'bugfix/ble_mesh_uses_deprecated_config_v4.1' into 'release/v4.1'
ble_mesh: Fix using old config for duplicate scan (v4.1)

See merge request espressif/esp-idf!8900
2020-05-27 17:24:13 +08:00
ad4dfed632 ci: Don't push to Github or deploy docs on customized pipelines
BOT_TRIGGER_WITH_LABEL must be empty (meaning all tests are running).
2020-05-27 19:05:02 +10:00
7d3d56ff9a doc: add peripheral_types.h as API reference for peripheral docs
Closes DOC-136
Closes IDF-1673
2020-05-27 12:38:38 +08:00
edb84c19dd coap: move mbedTLS config options from component to examples
CoAP component relies on some mbedTLS crypto configuration
options, e.g. DTLS and PSK. These configuration options if
selected, have footprint impact on generic TLS examples like
https_request or https_ota as well.

Footprint of https_request example with/without change is per below:

$ ./tools/idf_size.py new_https_request.map --diff old_https_request.map

<CURRENT> MAP file: new_https_request.map
<REFERENCE> MAP file: old_https_request.map
Difference is counted as <CURRENT> - <REFERENCE>, i.e. a positive number means that <CURRENT> is larger.
Total sizes of <CURRENT>:                                                 <REFERENCE>     Difference
 DRAM .data size:   14796 bytes                                                 14796
 DRAM .bss  size:   23560 bytes                                                 23680           -120
Used static DRAM:   38356 bytes ( 142380 available, 21.2% used)                 38476           -120 (   +120 available,      +0 total)
Used static IRAM:   89045 bytes (  42027 available, 67.9% used)                 89045                (     +0 available,      +0 total)
      Flash code:  554231 bytes                                                563823          -9592
    Flash rodata:  179000 bytes                                                181224          -2224
Total image size:~ 860632 bytes (.bin may be padded larger)                    872568         -11936

This commit moves relevant config options to CoAP specific examples
and also adds some run time warnings if they are kept disabled.

Closes https://github.com/espressif/esp-idf/issues/5262
2020-05-26 20:05:33 +05:30
lly
3b89497b39 ble_mesh: Fix using old config for duplicate scan 2020-05-25 16:53:30 +08:00
841aba8948 add LINGER to menuconfig 2020-05-25 11:36:05 +08:00
84b51781c8 Merge branch 'bugfix/espnow_fetch_peer_crash_v4.1' into 'release/v4.1'
wifi: fix the crash issue when fetch peer after delete cur_peer (backport v4.1)

See merge request espressif/esp-idf!8824
2020-05-22 23:10:48 +08:00
58f0a94cdf Merge branch 'bugfix/fix_memleak_in_wpa3_feature_v4.1' into 'release/v4.1'
fix(wpa_supplicant): fix memleak in wpa3 feature(backport v4.1)

See merge request espressif/esp-idf!8656
2020-05-22 21:23:43 +08:00
3cfd7eebd1 Merge branch 'example/ble_mesh_structural_adjust_v4.1' into 'release/v4.1'
Example/ble mesh structural adjust (v4.1)

See merge request espressif/esp-idf!8856
2020-05-22 19:15:57 +08:00
4775176d7f Merge branch 'bugfix/ble_mesh_provisioner_fail_to_pub_v4.1' into 'release/v4.1'
ble_mesh: Fix Provisioner failed to publish (v4.1)

See merge request espressif/esp-idf!8873
2020-05-22 19:14:14 +08:00
lly
eeff638c97 ble_mesh: Fix Provisioner failed to publish 2020-05-22 15:47:40 +08:00
ca01e8698f ws_client: fix fragmented send setting proper opcodes
Previous implementation violated the RFC by having both the actual opcode and WS_FIN flag set for all fragments of a message.
Fixed by setting the opcode only for the first fragment and WS_FIN for the last one

Closes IDFGH-2938
Closes https://github.com/espressif/esp-idf/issues/4974
2020-05-22 06:14:48 +00:00
db7e28b8c7 Merge branch 'bugfix/doc_version_links_v4.1' into 'release/v4.1'
doc: Fix broken Release page links when building a stable version (v4.1)

See merge request espressif/esp-idf!8820
2020-05-22 13:59:27 +08:00
lly
13537ce279 ble_mesh: Fix tutorial links in examples README.md 2020-05-22 05:43:57 +00:00
lly
cc187a43b3 ble_mesh: Rename esp_fast_prov_* to ble_mesh_fast_prov_* 2020-05-22 05:43:57 +00:00
lly
b4588f7d92 ble_mesh: Rename the folders ble_mesh_fast_prov_* to fast_prov_* 2020-05-22 05:43:57 +00:00
lly
59b313fdcf ble_mesh: Rename ble mesh example main & init files
- Rename ble_mesh_demo_main.c to main.c
- Rename ble_mesh_demo_init.* to ble_mesh_example_init.*
2020-05-22 05:43:57 +00:00
lly
74056dea91 ble_mesh: Move the example init to the common_components 2020-05-22 05:43:57 +00:00
lly
2eadacbf29 ble_mesh: Move the button component to common_components 2020-05-22 05:43:57 +00:00
lly
3c32f5a726 ble_mesh: Change the EXTRA_COMPONENT_DIRS used by examples 2020-05-22 05:43:57 +00:00
lly
55cd9206d5 ble_mesh: Rename common_vendor_models to common_components
Since the scripts of CI will bypass common_components when
trying to get ALL_EXAMPLES, and these BLE Mesh components
will only be used by other mesh examples, i.e. no need to
be compiled as a single example, so we rename the folder
to common_componnets.
2020-05-22 05:43:57 +00:00
80412dfbb8 wifi: fix the crash issue when fetch peer after delete cur_peer 2020-05-22 11:04:46 +08:00
502a2aed2a Merge branch 'bugfix/ble_mesh_friend_init_flag_v4.1' into 'release/v4.1'
Bugfix/ble mesh friend init flag (v4.1)

See merge request espressif/esp-idf!8848
2020-05-22 10:51:13 +08:00
d075bcab98 Merge branch 'doc/ble_mesh_fix_v4.1' into 'release/v4.1'
ble_mesh: Doc miscellaneous fixes (v4.1)

See merge request espressif/esp-idf!8858
2020-05-22 10:49:53 +08:00
lly
88f6e2b60d ble_mesh: Doc miscellaneous fixes
- Update ble mesh architecture
2020-05-21 17:46:28 +08:00
e789d85e69 Merge branch 'bugfix/ble_mesh_node_old_version_to_new_v4.1' into 'release/v4.1'
ble_mesh: Fix mesh node device role restore (v4.1)

See merge request espressif/esp-idf!8724
2020-05-21 15:10:48 +08:00
eb8f6f942a Merge branch 'bugfix/ble_mesh_fix_typos_v4.1' into 'release/v4.1'
ble_mesh: Fix typos (v4.1)

See merge request espressif/esp-idf!8726
2020-05-21 15:10:10 +08:00
lly
715cb64288 ble_mesh: Clear two more vars during proxy server deinit 2020-05-21 14:26:05 +08:00
lly
52fa4c7f96 ble_mesh: Add missing sdkconfig.h 2020-05-21 14:26:05 +08:00
lly
f02d095ff1 ble_mesh: Init device name during proxy server init
Device name will be reset when deinit mesh stack. If not
initializing device name during the next mesh stack init,
it will fail to set the device name when using bluedroid.
2020-05-21 14:26:04 +08:00
lly
ab73b3fd8e ble_mesh: Add init flag for friend init/deinit
Since bt_mesh_friend_init() will only be invoked when
a device is provisioned or Provisioner is enabled, so
we add a flag to indicate if the friend functionality
is initialized in case deinit before initialization.
2020-05-21 14:26:04 +08:00
dc4cd3ae7c Merge branch 'bugfix/ble_mesh_remove_patch_v4.1' into 'release/v4.1'
ble_mesh: Remove patch for the bug of an App (v4.1)

See merge request espressif/esp-idf!8779
2020-05-21 11:47:06 +08:00
3db186d5d1 NimBLE: Include upstream fixes and use macros for log level filtering (backport v4.1)
Change list:
- Reduces the size of the compiled binary, PR: https://github.com/espressif/esp-nimble/pull/6
- Null pointer check, PR: https://github.com/apache/mynewt-nimble/pull/701
- Pairing procedure abort on unexpected req: https://github.com/apache/mynewt-nimble/pull/710
- Fix conn flags after pairing: https://github.com/apache/mynewt-nimble/pull/730
- Remove notification for update process timeout (Vol 6, Part B, section 5.2 ):
  https://github.com/apache/mynewt-nimble/pull/782
- CCCD fix : https://github.com/apache/mynewt-nimble/pull/790 and
  https://github.com/apache/mynewt-nimble/pull/804
- Host based Privacy (RPA) fix: https://github.com/espressif/esp-nimble/pull/7

 Closes https://github.com/espressif/esp-nimble/issues/10

 Closes https://github.com/espressif/esp-idf/issues/4413
2020-05-20 16:09:02 +05:30
db3d03f9ac Merge branch 'bugfix/wpa3_pmf_memleak_fix_v4.1' into 'release/v4.1'
WPA3 / PMF memory leak fixes (backport v4.1)

See merge request espressif/esp-idf!8695
2020-05-20 11:36:41 +08:00
4a42368603 doc: Fix broken Release page links when building a stable version 2020-05-20 11:30:17 +10:00
db0897705f Merge branch 'ci/disable_esp32s2beta_jobs' into 'release/v4.1'
CI: disable esp32s2beta jobs

See merge request espressif/esp-idf!8489
2020-05-20 02:06:00 +08:00
276cbb69f3 wpa_supplicant: Fix memory leaks in WPA3 connection
1. Buffers for SAE messages are not freed after the handshake.
   This causes memory leak, free buffers after SAE handshake.
2. SAE global data is not freed until the next WPA3 connection
   takes place, holding up heap space without reason. Free theis
   data after SAE handshake is complete or event fails.
3. Update wifi lib which includes memory leak fix during BIP
   encryption/decryption operations.
2020-05-18 15:46:32 +05:30
c973bea7d1 wpa_supplicant: Fix formatting of file esp_wpa3.c
Replace tabs with spaces in esp_wpa3.c.
2020-05-18 15:45:34 +05:30
6191429df5 confserver: Always store hex values in sdkconfig with 0x prefix
This is not necessary for correct behaviour or to have valid sdkconfig files
(previous commit adds tests for this), but it's useful for consistency with
sdkconfig files generated by menuconfig.

As reported in https://github.com/espressif/vscode-esp-idf-extension/issues/83
2020-05-18 17:02:15 +10:00
5a1848a5a6 kconfig: Fix generation of hex outputs for Make & CMake
And add tests for hex output formatting in all output formats.

Previously, Make & CMake outputs only formatted hex values with the 0x prefix
if they had the 0x prefix in the sdkconfig file. Now this prefix is always
applied.

Closes https://github.com/espressif/vscode-esp-idf-extension/issues/83
2020-05-18 17:01:45 +10:00
e9d4659175 Merge branch 'bugfix/erase_with_vtaskdelay_v4.1' into 'release/v4.1'
spi_flash: Add vTaskDelay while a long erasing (v4.1)

See merge request espressif/esp-idf!8598
2020-05-18 11:01:50 +08:00
0266ad95d7 Merge branch 'bugfix/fix_switch_channel_without_discon_issue_v4.1' into 'release/v4.1'
esp_wifi: Fix AP switch to adjacent channel without disconnect (backport v4.1)

See merge request espressif/esp-idf!8723
2020-05-17 15:01:23 +08:00
19163393a9 Merge branch 'bugfix/stop_mac_can_be_controlled_by_user_v4.1' into 'release/v4.1'
Bugfix/stop mac can be controlled by user v4.1

See merge request espressif/esp-idf!8761
2020-05-16 03:28:33 +08:00
lly
9d587eb8fd ble_mesh: Remove patch for the bug of an App 2020-05-15 20:23:48 +08:00
32e20304a7 Merge branch 'bugfix/ipv6_examples_4.1' into 'release/v4.1'
socket-examples: IPv6 related update for examples to set correct scoped id (v4.1)

See merge request espressif/esp-idf!8583
2020-05-15 13:58:42 +08:00
1cfeb8be7f Merge branch 'feature/enable_wpa3_pmf_by_default_v4.1' into 'release/v4.1'
Enable WPA3 & PMF by default (backport v4.1)

See merge request espressif/esp-idf!8601
2020-05-15 11:46:20 +08:00
222ac1dd60 ethernet: fix potential task watch dog timeout 2020-05-14 22:07:06 +08:00
63dae58176 ethernet: better control start/stop/uninstall/install 2020-05-14 22:07:00 +08:00
e07023b9c7 ethernet: esp_eth_stop API should stop emac hardware 2020-05-14 22:06:54 +08:00
ddae67f50f esp_wifi: Fix AP switch to adjacent channel without disconnect 2020-05-14 03:55:09 +00:00
c595429db0 Add NimBLE config options in sdkconfig.rename 2020-05-14 11:30:35 +10:00
lly
b929611d5d ble_mesh: Fix typos 2020-05-13 18:30:52 +08:00
lly
e9f64eb1c3 ble_mesh: Fix mesh node device role restore
Old version of BLE Mesh has no device role storage, because
previously we only support storing mesh node info.
If the binary of the node is upgraded from old version to a
new version (support storing provisioner info), the mesh info
of the node will not be restored because mesh role does not
exist in the flash.
2020-05-13 18:25:53 +08:00
56c1646e2a Merge branch 'bugfix/sync_zephyr_bt_mesh_bugfix_v4.1' into 'release/v4.1'
Bugfix/sync zephyr bt mesh bugfix (v4.1)

See merge request espressif/esp-idf!8688
2020-05-13 18:15:37 +08:00
204553ec6c Merge branch 'bugfix/ble_mesh_not_ignore_msg_in_fast_prov_v4.1' into 'release/v4.1'
ble_mesh: Not ignore msg when fast prov is enabled (v4.1)

See merge request espressif/esp-idf!8710
2020-05-13 18:15:06 +08:00
87141efd1e socket-examples: IPv6 related update for examples to set correct scoped id
The scope id must be present when connecting to IPv6 Local Link
address.
2020-05-13 08:18:03 +00:00
260d6f83b7 driver(adc): fix adc io init bug 2020-05-13 11:48:55 +08:00
8860c1b94c Merge branch 'feature/ldgen_output_determinism_v4.1' into 'release/v4.1'
ldgen: determinism in mapping rule order (v4.1)

See merge request espressif/esp-idf!8661
2020-05-13 11:30:32 +08:00
lly
31b164ccb1 ble_mesh: Not ignore msg when fast prov is enabled
When fast provisioning is enabled, Provisioner shall not
ignore messages from the nodes whose addresses are not in
the provisioning database. Because other nodes which are
not provisioned by the Primary Provisioner will send node
address messages to the Primary Provisioner.
2020-05-13 10:09:04 +08:00
c96ce01d87 Merge branch 'bugfix/supplicant_general_fixes_41' into 'release/v4.1'
wpa_supplicant: Fix some memleaks and invalid memory access (backport v4.1)

See merge request espressif/esp-idf!8555
2020-05-12 20:28:45 +08:00
97f72da56e Merge branch 'bugfix/pthread_tcb_cleanup_wrapper_v4.1' into 'release/v4.1'
Fix linking for vPortCleanUpTCB wrapper (v4.1)

See merge request espressif/esp-idf!8701
2020-05-12 14:18:13 +08:00
3e93b8fed9 pthread: Use INTERFACE in target_link_libraries for vPortCleanUpTCB wrapper 2020-05-12 10:35:27 +05:30
lly
295a9eea82 ble_mesh: Fix not update prov addr in fast prov
When using fast provisioning, the Provisioner functionality
will be enabled. Unicast addresses within the pre-allocated
range will be used for provisioning nodes. And during the
address assignment, the allocated unicast address will be
checked that if it's duplicated with other nodes addresses
and the Provisioner's own addresses.
So before starting using fast provisioning, we need to update
the Provisioner address.
2020-05-11 15:42:58 +08:00
lly
06d445759a ble_mesh: net_key_status only pull one key idx [Zephyr]
Fixes bug where the config client's net_key_status handler would attempt
to pull two key indexes from a message which only holds one.
2020-05-11 15:42:57 +08:00
lly
b1efdd5eb1 ble_mesh: Update client message timeout calculation
Since the behavior of sending segmented messages has been
changed properly, the calculation of timeout value which
will be used when sending an acknowledged message by a
client model also needs to be updated.
2020-05-11 15:42:57 +08:00
lly
42ccb7277f ble_mesh: Add lock for segmented msg operations
Add mutex to protect some variables of the mesh segmented
messages.
Currently the timeout handler of mesh will be executed in
the btc task, while the received mesh messages will be
handled in the btu task. In case some variables are set to
NULL when handled in the btu task, meanwhile these variables
are also accessed in the timeout handler, so we add mutex to
protect these variables and related operations.
2020-05-11 15:42:57 +08:00
lly
cffbc32253 ble_mesh: Fix dereferencing pointer before checking for NULL [Zephyr]
The publication context is checked for NULL in bt_mesh_model_publish()
however it was dereferenced before that. Move the assignment to
ctx.send_rel to the same place where other ctx members are set.
2020-05-11 15:42:56 +08:00
lly
8f5564af84 ble_mesh: Optimize some mesh log output 2020-05-11 15:42:56 +08:00
lly
6a6bac2c62 ble_mesh: Fix restore when revoke keys [Zephyr]
Store keys (NetKey and AppKey) again after revoking.
2020-05-11 15:42:55 +08:00
lly
526f253b2e ble_mesh: Spit mesh_util.h into different header files
Split mesh_util.h into mesh_byteorder.h, mesh_compiler.h,
mesh_ffs.h and mesh_util.h based on the classification of
Zephyr, which will make further porting more clear.
2020-05-11 15:42:55 +08:00
lly
2f40c4449f ble_mesh: Split mesh os related into a separate file 2020-05-11 15:42:54 +08:00
lly
8ab29292ab ble_mesh: Split mesh mutex into a separate file 2020-05-11 15:42:54 +08:00
lly
9af8947e55 ble_mesh: Rename mesh_kernel.* to mesh_timer.* 2020-05-11 15:42:53 +08:00
lly
800cb0fff8 ble_mesh: Add and use transport macro definitions [Zephyr] 2020-05-11 15:42:53 +08:00
lly
362e8e0a1f ble_mesh: Friend SeqAuth cleanup [Zephyr]
The Friend queue uses the message SeqAuth to determine whether the
message is already in the queue. To facilitate this, the SeqAuth is
passed around as a pointer throughout the transport modules. In the
bt_mesh_ctl_send functions, this parameter is also exposed in the API,
but the internal usage is inconsistent and buggy. Also, no one actually
uses this parameter.

- Removes seq_auth param from bt_mesh_ctl_send, instead passing NULL
  directly to the friend module, to enforce its addition to the queue.
- Makes the seq_auth pointer const throughout the friend module.
2020-05-11 15:42:52 +08:00
lly
de648753b0 ble_mesh: Rework msg_cache [Zephyr]
Changes the behavior of the message cache to optimize for cache
capacity. Previously, the message cache's primary function was to avoid
decrypting messages multiple times, although the cache's main function
in the spec is to avoid message rebroadcasting. Optimizing for minimal
decryption causes us to fill the network cache faster, which in turn
causes more cache misses, potentially outweighing the advantage.

Now stores src + seq in message cache instead of field hash value. This
cuts cache size in two, while including more of the sequence number than
before.

Adds messages to the cache only after the packet is successfully
decrypted. This reduces noise in the cache, and ensures that no
invalid deobfuscations are added.

Additionally, this fixes a bug where multiple calls to net_decrypt with
the same packet failed, as the message cache found its own entry from
the previous call.
2020-05-11 15:42:52 +08:00
lly
aed5dc63b7 ble_mesh: Segmented TX to groups [Zephyr]
Implements several changes to the transport layer segmented tx to
improve group message performance:
- Moves retransmit counter to tx context instead of per packet. As every
  unacked packet is sent every retransmit, the retransmit counters would
  be the same in each segment. This makes it easier to control progress.
- Delays the scheduling of the retransmit until the completion of the
  last segment by adding a seg_pending counter. This is essentially the
  same as the old behavior, except that the old behavior might retrigger
  the sending before all segments are finished if the advertising is
  slow.
- Allows the group transmits to stop as soon as all retransmits have
  been exhausted, instead of timing out waiting for acks that won't
  come. This allows group tx to finish without error.
- Fixes a bug where a failed TX would block IV update.
- Cancels any pending transmissions of acked segments.
- Reduces log level for several common group tx scenarios that aren't
  erronous.
2020-05-11 15:42:51 +08:00
lly
21c5be311c ble_mesh: Add comment explaining use of byte order [Zephyr]
Add comment that explains why a different byte order is used for the
3-byte opcode on the CID part of the opcode.
2020-05-11 15:42:51 +08:00
lly
0a41241e10 ble_mesh: Use 24-bit functions [Zephyr]
Use 24-bit functions for byteorder and net_buf in order to make the
byteorder used more readable.
2020-05-11 15:42:50 +08:00
lly
e3472c1c99 ble_mesh: Optimize net_buf_simple routines [Zephyr]
Use sys_put_xyz() helpers instead of memcpy() whenever possible. This
brings in straight-line inline code for pushes and adds of known,
small sizes.
2020-05-11 15:42:50 +08:00
lly
175109d196 ble_mesh: Add PRIu64 & PRIx64 in mesh_types.h 2020-05-11 15:42:49 +08:00
lly
61d376109c ble_mesh: Add push functions for supported bit-variants [Zephyr]
Add push functions for bit-widths supported by add and pull functions.
2020-05-11 15:42:49 +08:00
lly
fd4b6fd47e ble_mesh: Add support for 64 bit data type [Zephyr]
This enables pulling and pushing values in 64 bit format.
2020-05-11 15:42:48 +08:00
lly
b348b55d1e ble_mesh: Add support for 48 bit data type [Zephyr]
This enables pulling and pushing values in 48 bit format.
2020-05-11 15:42:48 +08:00
lly
82a5b05948 ble_mesh: Add 48 bit variants [Zephyr]
This adds sys_*_*48 functions that operation on a 48 bits values.
2020-05-11 15:42:46 +08:00
lly
95718d9ef9 ble_mesh: Add support for 24 bit data type [Zephyr]
This enables pulling and pushing values in 24 bit format.
2020-05-11 15:42:46 +08:00
lly
33c0ddce40 ble_mesh: Add 24 bit variants [Zephyr]
This adds sys_*_*24 functions that operation on a 24 bits values.
2020-05-11 15:42:45 +08:00
lly
bf4b513e83 ble_mesh: Group resends in proxy nodes [Zephyr]
Resend transport segments for groups on the advertiser interface, even
if a connected proxy node holds the group.
2020-05-11 15:42:45 +08:00
lly
91fff8c897 ble_mesh: Typo in condition in comp_add_elem of cfg_srv [Zephyr]
Vendor model IDs take up four (not two) bytes in the composition
2020-05-11 15:42:45 +08:00
lly
7ea60199a6 ble_mesh: GATT Proxy Spec 1.0.1 changes [Zephyr]
Backport of https://github.com/apache/mynewt-nimble/pull/724

Mesh spec 1.0.1 changes proxy disabling behavior to only affect the
relaying from proxy nodes. Previously, disabling proxy would shut down
all proxy and node activity.

Tweaks from the original commit:
- Removed redundant call to bt_mesh_adv_update() in gatt_proxy_set()
- Removed invalid ref to 4.2.11.1 in node_identity_set()

---

According to Mesh Profile Spec 1.0.1, Section 4.2.11:
"If the Proxy feature is disabled, a GATT client device can connect
over GATT to that node for configuration and control. Messages from
the GATT bearer are not relayed to the advertising bearer."

Moreover some notes have been removed from the spec compared to
version 1.0:

Mesh Profile Spec 1.0, Section 4.2.11:

"Upon transition from GATT Proxy state 0x01 to GATT Proxy state 0x00
the GATT Bearer Server shall disconnect all GATT Bearer Clients."

"The Configuration Client should turn off the Proxy state as the last
step in the configuration process."

Mesh Profile Spec 1.0, Section 4.2.11.1:

"When the GATT Proxy state is set to 0x00, the Node Identity state
for all subnets shall be set to 0x00 and shall not be changed."
2020-05-11 15:42:44 +08:00
lly
2b84b673bf ble_mesh: Support reliable sending when publishing [Zephyr]
Until now the choice of reliable sending (segmented messages with
acks) was implicitly dependent on the size of the payload. Add a new
member to the bt_mesh_model_pub to force using segment acks even when
the payload would fit a single unsegmented message.
2020-05-11 15:42:44 +08:00
lly
c2e24e306f ble_mesh: Check device uuid when init provisioning 2020-05-11 15:42:43 +08:00
lly
a85459e245 ble_mesh: Fix provisioning buffer initialization [Zephyr]
When PB-GATT support has been enabled the provisioning code "borrows"
the buffer from the proxy code. However, the way that initialization
was happening the proxy buffers were initialized only after
provisioning initialization, resulting in a corrupted buffer with
buf->data pointing to NULL. Reorder the initialization calls so that
proxy is done first and provisioning only after it.
2020-05-11 15:42:43 +08:00
lly
a0434371b0 ble_mesh: Skip publish if update fails [Zephyr]
Allow models to skip a periodic publish interval by returning an error
from the publish update callback.

Previously, an error return from publish update would cancel periodic
publishing. This can't be recovered from, and as such, no valid model
implementation could return an error from this callback, and there was
no way to skip a periodic publish.
2020-05-11 15:42:42 +08:00
lly
1717c2face ble_mesh: Enable Segmented Control Messages [Zephyr]
The function bt_mesh_ctl_send() used to support maximum length of
11 bytes. The segmentation complies with the BLE Mesh Standard.
The ack is disabled in case of non unicast address.
2020-05-11 15:42:42 +08:00
ee0f8adaed ldgen: determinism in mapping rule order
This MR imposes some determinism in the mapping rule order in the output
file. For each section, the archives are arranged alphabetically
(ascending), and the mapping rules in each archive are arranged by
increasing specificity then alphabetically (ascending). The default
rules remain the very first rule for each section.
2020-05-08 20:48:43 +08:00
949e7c6f85 fix(wpa_supplicant): fix memleak in wpa3 feature 2020-05-08 16:30:16 +08:00
f14cdd5d3a Merge branch 'bugfix/timer_group_intr_enable_v4.1' into 'release/v4.1'
fix timer group intr enable (backport v4.1)

See merge request espressif/esp-idf!8529
2020-05-08 14:57:20 +08:00
15daee9a0f Merge branch 'bugfix/wifi_prov_not_stopping_v4.1' into 'release/v4.1'
wifi_provisioning: Catch the Wi-Fi events even after Connection errors (v4.1)

See merge request espressif/esp-idf!8607
2020-05-06 22:28:06 +08:00
de85de7c51 wpa_supplicant: Fix some memleaks and invalid memory access
Add changes to fix issues reported in clang analyzer
2020-05-06 11:05:30 +00:00
27ae9d3e2c Merge branch 'bugfix/ble_mesh_provisioner_check_key_v4.1' into 'release/v4.1'
ble_mesh: Check if appkey exist before deleting it (v4.1)

See merge request espressif/esp-idf!8621
2020-05-06 18:17:02 +08:00
7db21de3b3 Merge branch 'bugfix/ble_mesh_compile_error_o2_v4.1' into 'release/v4.1'
ble_mesh: Fix compile error when -O2 (performance) is chosen (v4.1)

See merge request espressif/esp-idf!8616
2020-05-06 18:15:53 +08:00
cec0f25484 Merge branch 'bugfix/ble_mesh_node_reset_erase_v4.1' into 'release/v4.1'
ble_mesh: Fix node not erase info completely (v4.1)

See merge request espressif/esp-idf!8622
2020-05-06 18:14:41 +08:00
f232b07e4e Merge branch 'feature/config_mqtt_task_prio_v4.1' into 'release/v4.1'
esp_mqtt:  configure task priority, esp_mqtt_abort_connection race condition, clenaup logs and docs (v4.1)

See merge request espressif/esp-idf!8472
2020-05-06 16:23:19 +08:00
lly
78b13034ef ble_mesh: Fix node not erase info completely
Previously only mesh node info is supported to be stored
in flash. So when trying to reset the node, we only need
to judge if the BLE_MESH_VALID flag is set.
Currently we support storing both node & Provisioner info
in flash, when trying to erase the node info from flash,
the BLE_MESH_NODE flag will be checked. So we need to set
bt_mesh.flags to 0 when all the erase operations are done.
2020-05-06 11:43:43 +08:00
lly
099bf88b2e ble_mesh: Check if appkey exist before deleting it 2020-05-06 11:40:20 +08:00
lly
466d450b4b ble_mesh: Add length check for some mesh operations 2020-05-06 11:26:33 +08:00
lly
a742255f8e ble_mesh: Fix compile error when -O2 (performance) is chosen 2020-05-06 11:26:25 +08:00
dd89b2dc0d Merge branch 'bugfix/ble_mesh_rpl_list_size_v4.1' into 'release/v4.1'
ble_mesh: Associate replay protection list size with nodes count (v4.1)

See merge request espressif/esp-idf!8493
2020-05-06 11:15:21 +08:00
654a3913eb Merge branch 'bugfix/ble_mesh_use_sdkconfig_ci_v4.1' into 'release/v4.1'
ble_mesh: Add bluedroid and nimble example configurations (v4.1)

See merge request espressif/esp-idf!8498
2020-05-06 11:13:43 +08:00
fefa9b7fe9 Merge branch 'doc/ble_mesh_fixes_v4.1' into 'release/v4.1'
doc: Fix some ble mesh description (v4.1)

See merge request espressif/esp-idf!8502
2020-05-06 11:13:16 +08:00
547fd926a9 Merge branch 'bugfix/ble_mesh_add_missing_cpp_v4.1' into 'release/v4.1'
ble_mesh: Add missing #ifdef __cplusplus (v4.1)

See merge request espressif/esp-idf!8505
2020-05-06 11:12:13 +08:00
d6cbfc7f19 Merge branch 'feat/ble_mesh_sensor_model_example_v4.1' into 'release/v4.1'
ble_mesh: Add ble mesh sensor model examples (v4.1)

See merge request espressif/esp-idf!8507
2020-05-06 11:11:59 +08:00
61405472e4 Merge branch 'bugfix/ble_mesh_time_scene_wrong_name_v4.1' into 'release/v4.1'
ble_mesh: Fix time scene wrong macro name (v4.1)

See merge request espressif/esp-idf!8510
2020-05-06 11:11:24 +08:00
541d8aef37 Merge branch 'bugfix/get_started_export_profile_v4.1' into 'release/v4.1'
docs: remove suggestion about running export.sh from .profile script (backport v4.1)

See merge request espressif/esp-idf!8613
2020-05-06 05:14:56 +08:00
f9bfc83295 docs: remove suggestion about running export.sh from .profile script
This was quite obviously a bad suggestion, and it seems that some
users have actually read the docs attentively enough to have followed
it. Replace be recommendation to create an alias.

Closes https://github.com/espressif/esp-idf/issues/3889
2020-05-05 21:34:00 +02:00
3fa198b8a2 wifi_provisioning: Catch the Wi-Fi events even after Connection errors
It was observed that after sending credentials, if the first
Wi-Fi conection attempt fails, the Wi-Fi provisioning managager
ignores subsequent Wi-Fi events. So, even if the device eventually
connects to the AP, the provisioning stays on indefinitely.

Changing a check so that subsequent events are also captured and
provisioning finishes successfully.
2020-05-05 22:09:18 +05:30
9778b163b1 Merge branch 'bugfix/fix_spi_flash_clock_config_error_v4.1' into 'release/v4.1'
flash: fix spi flash clock config error (backport v4.1)

See merge request espressif/esp-idf!8513
2020-05-05 11:31:11 +08:00
e006d21419 esp_wifi: Enable WPA3 & PMF by default
In wifi station example, set PMF(Protected Management Frames)
configuration to capable. Set WPA3 Feature in menuconfig enabled
by default. This will allow device to establish more secured
connection with AP's that support these protocols.
2020-05-04 17:37:56 +05:30
4214179de1 spi_flash(new driver): Add a Kconfig option - Bypass a block erase and always do sector erase
Closes: IDF-1561
2020-05-04 17:16:33 +08:00
5c98ff015e spi_flash(LEGACY_IMPL): Add a Kconfig option - Bypass a block erase and always do sector erase
Closes: IDF-1561
2020-05-04 17:16:33 +08:00
b56c7d9066 spi_flash: Add into sim/stubs the esp_timer 2020-05-04 17:16:33 +08:00
d67e764ef6 spi_flash(new driver): Add vTaskDelay while a long erasing 2020-05-04 17:16:33 +08:00
1554fd3d8a spi_flash(LEGACY_IMPL): Add vTaskDelay while a long erasing
Added Kconfig options to enable yield operation during flash erase

Closes: https://github.com/espressif/esp-idf/issues/2083
Closes: https://github.com/espressif/esp-idf/issues/4916
Closes: IDFGH-261
2020-05-04 15:48:22 +08:00
0cd5e28bce mqtt: clenaup logs and docs, esp_mqtt_abort_connection race condition
esp_mqtt_abort_connection: Fixed an issue which could result in a race condition and subsequent crash

esp_mqtt: Change an error print to use ESP_LOGE instead of ESP_LOGI
Move Sending MQTT connect message log from Info to Debug level
docs: Makes clear that publish API could block
Change the message printed after MQTT connection failure
2020-05-04 07:48:20 +02:00
c1cd396b95 esp_mqtt: add option to configure mqtt task priority.
Merges https://github.com/espressif/esp-idf/pull/4947
2020-05-04 07:45:24 +02:00
f7a2bfc873 Merge branch 'doc/openocd_security_features_v4.1' into 'release/v4.1'
doc: Add caveats about using JTAG debugging with hardware security features (v4.1)

See merge request espressif/esp-idf!8463
2020-05-04 03:10:02 +08:00
lly
4b1cbe87b3 ble_mesh: Fix client local parameters not initialized 2020-04-30 11:50:15 +00:00
lly
8b2291a718 ble_mesh: Continue node info restore even if failure happens
During BLE Mesh Provisioner initialization, the stack will restore
the nodes information if settings storage is enabled.
Previously when a failure happens (e.g. found the same uuid) during
the restore procedure, the information of the following nodes will
not be restored and error will be directly returned.
But this will introduce some problem with user experience, because
some newly provisioned nodes information will not be restored and
Provisioner will not be able to control those nodes.
So we change the operation here, when a failure happens during the
restore procedure, Provisioner will only ignore the information of
the current node and continue restoring other nodes information.
2020-04-30 11:50:15 +00:00
lly
fca4124f70 ble_mesh: Remove some redundant functions 2020-04-30 11:50:15 +00:00
lly
d35d765395 ble_mesh: Notify unprovisioned device beacon to application layer
With this change, if a Provisioner has provisioned the maximum
number of nodes, it can still report the unprovisioned device
beacon from other nodes to the application layer. And this will
be more reasonable compared with the previous implementation.
Previously when the node array of Provisioner is full, no beacon
from unprovisioned devices will be reported, only some warning
logs will be given.
2020-04-30 11:50:15 +00:00
lly
94092a148c ble_mesh: Check if assigned node address is duplicated
Previously only check the node address when it is assigned by the
application layer. Here we also check the address when the address
is allocated internally. And this will be useful when some mesh
internal tests are performed.
2020-04-30 11:50:15 +00:00
lly
68e8a7e0ba ble_mesh: Update next alloc address when node info is added 2020-04-30 11:50:15 +00:00
lly
62ac50f9d7 ble_mesh: Fix Provisioner provisioning deadlock 2020-04-30 11:50:15 +00:00
lly
fefd52f093 ble_mesh: Remove BLE_MESH_MAX_STORED_NODES option
Previously the BLE_MESH_MAX_STORED_NODES option is added for
internal mesh test, which will be a little confusing for the
users to understand.
Here we remove this option, instead the BLE_MESH_MAX_PROV_NODES
will be used for all the cases. For mesh internal test, when
the test function is called to add some nodes info, the info
will be stored in the array of provisioned nodes directly.
2020-04-30 11:50:15 +00:00
lly
7c379f8a65 ble_mesh: Associate replay protection list size with nodes count
The replay protection list of Provisioner should be at least equal
to the number of nodes with the precondition that each node contains
only one element.
The help information of replay protection list is updated, and the
maximum number of nodes for Provisioner is adjusted based on the
replay protection list size.
2020-04-30 11:50:15 +00:00
lly
fca858dd58 ble_mesh: Add bluedroid and nimble example configurations 2020-04-30 11:45:22 +00:00
lly
c28828d255 doc: Fix some ble mesh description 2020-04-30 11:43:26 +00:00
lly
d595793caa ble_mesh: Add ble mesh sensor model examples 2020-04-30 11:35:11 +00:00
lly
67eef52822 ble_mesh: Add some common macros for sensor model 2020-04-30 11:35:11 +00:00
lly
6f7acf6a21 ble_mesh: Allow empty sensor series column value 2020-04-30 11:35:11 +00:00
lly
df96c73471 ble_mesh: Check if same sensor (settings) property id exists 2020-04-30 11:35:11 +00:00
lly
3ceb5b3718 ble_mesh: Allow empty sensor settings exist 2020-04-30 11:35:11 +00:00
lly
d51bd36142 ble_mesh: Add missing #ifdef __cplusplus 2020-04-30 08:45:55 +00:00
bd01c359bd Merge branch 'bugfix/heap_psram_fill_v4.1' into 'release/v4.1'
heap: Only fill new heaps with FREE_FILL_PATTERN if Comprehensive poisoning is on (v4.1)

See merge request espressif/esp-idf!8490
2020-04-30 13:45:07 +08:00
c5cb44d813 Merge branch 'bugfix/fix_some_wifi_bugs_0427_v4.1' into 'release/v4.1'
wifi: backport some wifi fixes 0427 (v4.1)

See merge request espressif/esp-idf!8496
2020-04-29 23:39:58 +08:00
43d8950682 wifi changes:
1. fix the bug for softAP update second channel wrong
2. change wifi_scan_time_t from union to struct
3. query country code wrong when policy change from manual to auto
2020-04-29 17:27:00 +08:00
d4e700e744 Merge branch 'bugfix/coex_fix_wifi_performance_when_ble_conn_v4.1' into 'release/v4.1'
Coexistence: Add coexist API to enable BLE connection dynamic priority

See merge request espressif/esp-idf!8467
2020-04-29 17:24:30 +08:00
ddaa9d4523 Coexistence: Add coexist API to enable BLE connection dynamic priority 2020-04-29 13:57:59 +08:00
fadbfdadf4 Merge branch 'bugfix/make_to_cmake_msys_py3_v4.1' into 'release/v4.1'
tools: Make Unicode from subprocess result in the CMake convert script (v4.1)

See merge request espressif/esp-idf!8543
2020-04-29 13:44:10 +08:00
58044063dd Fix typo with sigmadelta.h #ifdef 2020-04-29 12:20:46 +08:00
67f9448e71 fix broken CONFIG_LEGACY_INCLUDE_COMMON_HEADERS 2020-04-29 12:19:25 +08:00
5b516b107a timer_group: update hal api && fix intr_enable
timer group interrupt enable is controled by level_int_ena instead of int_ena

Closes https://github.com/espressif/esp-idf/issues/5103
2020-04-29 12:19:25 +08:00
6366c20858 Merge branch 'bugfix/pmf_cert_fixes_backport_v4.1' into 'release/v4.1'
PMF cert fixes (backport v4.1)

See merge request espressif/esp-idf!8469
2020-04-29 11:58:49 +08:00
27ec86cd8e esp_wifi: Update wifi lib
Backports PMF Certification fixes -
1. Check return status of decrypt operation. Fixes 5.3.3.1.
2. Allow PMF negotiation for WPA2-Enterprise. Fixes 5.3.3.2, 5.3.3.4.
3. Add NULL check on key before encrypting PMF, fixes crash.

Closes WIFI-2251
2020-04-29 01:47:32 +00:00
3b3050b09f tools: Make Unicode from subprocess result in the CMake convert script
Fixes an issue with Python 3 in MSYS where it fails while trying to join
paths where one part is Unicode (default string on Python3) and the
second part are bytes (returned by the subprocess call).

Closes https://github.com/espressif/esp-idf/issues/5189
2020-04-28 15:22:07 +02:00
69c8d9211f Merge branch 'bugfix/supplicant_disable_tls_v1.2_backport_v4.1' into 'release/v4.1'
Disable TLS v1.2 (backport v4.1)

See merge request espressif/esp-idf!8536
2020-04-28 16:22:26 +08:00
6254bf443e wpa_supplicant: Disable TLSv1.2 by default
Some Enterprise Authentication Servers do not support TLS v1.2.
Move this option to Menuconfig and disable by default.
2020-04-28 10:46:59 +05:30
198953df8f Merge branch 'fixbug/tcp_kill_state_assert_for_v4.1' into 'release/v4.1'
lw-ip:fixbug for tcp kill state assert(backport 4.1)

See merge request espressif/esp-idf!8452
2020-04-28 11:43:37 +08:00
87fa7af6b7 Merge branch 'bugfix/pm_dump_locks_v4.1' into 'release/v4.1'
esp_pm: esp_pm_dump_locks: don't print from a critical section (backport v4.1)

See merge request espressif/esp-idf!8353
2020-04-28 11:41:21 +08:00
e558b2237d Merge branch 'bugfix/mcpwm_period_error_v4.1' into 'release/v4.1'
bugfix(mcpwm_period_error): fix the issue of wrong period (backport v4.1)

See merge request espressif/esp-idf!7735
2020-04-27 18:06:15 +08:00
eb5bafeb65 flash: fix spi flash clock config error
Closes https://github.com/espressif/esp-idf/issues/5099
2020-04-27 16:56:58 +08:00
9a389162ab Merge branch 'fixbug/set_dhcp_time_fail_for_v4.1' into 'release/v4.1'
lw-ip:fixbug for set dhcp time fail for 4.1(backport4.1)

See merge request espressif/esp-idf!8426
2020-04-27 16:48:58 +08:00
lly
e6fc2a7bc8 ble_mesh: Fix time scene wrong macro name 2020-04-27 16:24:13 +08:00
2fb9cad1b4 doc: Add warnings about using JTAG debugging with hardware security features
This is related to the following issues but is not a fix, just documentation of a workaround until we can
improve the support:
https://github.com/espressif/esp-idf/issues/4878
https://github.com/espressif/esp-idf/issues/4734
2020-04-27 16:40:06 +10:00
13ef9cf4bc heap: Only fill new heaps with FREE_FILL_PATTERN if Comprehensive poisoning is on
Significantly speeds up heap initialization at startup when default "Light" heap
poisoning is enabled.

Tip via reddit user LinkeSeitentasche https://www.reddit.com/r/esp32/comments/fnj51a/a_guide_to_improving_esp32_boot_speed/
2020-04-27 16:32:24 +10:00
1229590a2c CI: disable unit test for ESP32S2Beta
* remove ESP32S2Beta UT configs
* remove ESP32S2Beta UT CI jobs
2020-04-27 14:02:47 +08:00
7d934dafb8 mcpwm: fix the issue of wrong period (backport v4.1) 2020-04-24 21:10:14 +08:00
6c9864ce86 Merge branch 'fix/ci_example_test_prov_v4.1' into 'release/v4.1'
CI: Fix prov example test exception handle (v4.1)

See merge request espressif/esp-idf!8439
2020-04-24 16:13:02 +08:00
4952b3baed Merge branch 'bugfix/ci_unterminated_sdkconfig_defaults_v4.1' into 'release/v4.1'
CI: Add EOL to sdkconfig.defaults before adding sdkconfig.ci (v4.1)

See merge request espressif/esp-idf!8456
2020-04-24 16:12:31 +08:00
ee234472c1 CI: Add EOL to sdkconfig.defaults before adding sdkconfig.ci 2020-04-23 16:54:16 +02:00
c50952ebaf fixbug for tcp kill state assert 2020-04-23 15:58:29 +08:00
20085a0fcd Merge branch 'bugfix/ci_partition_table_detection_v4.1' into 'release/v4.1'
CI: Fix partition table detection if "partition" is in the project name (v4.1)

See merge request espressif/esp-idf!8431
2020-04-23 11:36:58 +08:00
19449289d0 CI: Fix prov example test cryptography package version exception handling 2020-04-23 00:47:41 +05:30
f5645cc9d8 CI: Fix partition table detection if "partition" is in the project name 2020-04-22 10:04:36 +02:00
0c92ca5175 fixbug for set dhcp time fail for 4.1 2020-04-22 11:13:01 +08:00
a41bcacf31 Merge branch 'bugfix/ppp_enable_ipv6_v4.1' into 'release/v4.1'
esp-netif: make the IPv6 configurable for PPP netifs (v4.1)

See merge request espressif/esp-idf!8200
2020-04-21 12:36:00 +08:00
f4243de752 Merge branch 'bugfix/error_on_building_in_idf_path_v4.1' into 'release/v4.1'
cmake: Error out when building in IDF_PATH dir (v4.1)

See merge request espressif/esp-idf!8297
2020-04-20 15:04:33 +08:00
e9c6f119de Merge branch 'bugfix/make_system_using_rom_time_funcs_v4.1' into 'release/v4.1'
esp_rom: Fix esp32.rom.newlib-time.ld should includes all time ROM functions/data (v4.1)

See merge request espressif/esp-idf!8365
2020-04-17 14:14:13 +08:00
1ea008d22e Merge branch 'feature/add_rtc_xtal_cal_retry_option_v4.1' into 'release/v4.1'
esp32: Add a Kconfig option - Number of attempts to repeat 32k XTAL calibration (v4.1)

See merge request espressif/esp-idf!7931
2020-04-16 15:25:03 +08:00
585d53dfa8 Merge branch 'bugfix/fix_errors_with_mbedtls_disabled_v4.1' into 'release/v4.1'
wpa_supplicant: Fix compilation errors when USE_MBEDTLS is disabled. (v4.1)

See merge request espressif/esp-idf!8356
2020-04-16 14:59:35 +08:00
1f480f4570 Merge branch 'bugfix/fix_API_esp_wifi_stop_crash_issue_v4.1' into 'release/v4.1'
bugfix: fix esp_wifi_stop crash issue (backport v4.1)

See merge request espressif/esp-idf!8329
2020-04-16 14:58:00 +08:00
d10ad9a4b1 Merge branch 'bufgix/esp_ota_get_app_elf_sha256_v4.1' into 'release/v4.1'
app_update: Fix case when elf file SHA256 should be printed by panic handler while cache is disabled (v4.1)

See merge request espressif/esp-idf!8366
2020-04-16 14:32:21 +08:00
0effd9b257 Merge branch 'bugfix/efuse_get_coding_scheme_and_ut_v4.1' into 'release/v4.1'
efuse: Fix get_coding_scheme() using ESP_EARLY_LOG* instead of ESP_LOG* (v4.1)

See merge request espressif/esp-idf!8360
2020-04-16 14:29:12 +08:00
0c4e55e3bd app_update: fix test failure for get_app_elf_sha256 test
Commit fc03161f updated esp_ota_get_app_elf_sha256 to store and return
X number of bytes of the hash, but the test case still expected 64 bytes.

Updated test case to use CONFIG value for expected length.
2020-04-15 21:09:57 +08:00
a2a71fc68f app_update: Fix case when elf file SHA256 should be printed by panic handler while cache is disabled
Closes: IDF-1342
2020-04-15 21:05:58 +08:00
ae063d96c2 esp_rom: Fix esp32.rom.newlib-time.ld should includes all time ROM functions/data
- Added UT
Closes: https://github.com/espressif/esp-idf/issues/4925
2020-04-15 20:59:24 +08:00
3948065c24 efuse: Using IDF_ENV_FPGA in UTs 2020-04-15 19:43:07 +08:00
33eab40f2a efuse/esp32s2: Fix get_coding_scheme() when CONFIG_SECURE_FLASH_ENC_ENABLED and LOG_LEVEL is Debug 2020-04-15 19:36:47 +08:00
f59ef5e6ef efuse/esp32: Fix get_coding_scheme() when CONFIG_SECURE_FLASH_ENC_ENABLED and LOG_LEVEL is Debug
Closes: https://github.com/espressif/esp-idf/issues/4862
2020-04-15 19:36:45 +08:00
b7ae3ff9bd wpa_supplicant: Fix compilation errors when USE_MBEDTLS is disabled.
This is a regression from earlier commit related to TLSV12 which used
sha functions that are currently declared static.
Solution: Follow upstream code structure and resolve the errors.
2020-04-15 15:33:59 +05:30
a2a89fb95d esp32: Add a Kconfig option- Number of attempts to repeat 32k XTAL calibration
Closes: IDF-1479
2020-04-15 16:34:57 +08:00
ffe0cca423 esp_pm: esp_pm_dump_locks: don't print from a critical section
Closes https://github.com/espressif/esp-idf/issues/1917
2020-04-15 08:47:37 +02:00
b3410b9210 Merge branch 'bugfix/coredump_no_ext_stacks_v4.1' into 'release/v4.1'
core dump: don't allow core dumps to Flash if PSRAM is used for stacks (backport v4.1)

See merge request espressif/esp-idf!8228
2020-04-15 13:25:26 +08:00
b08b0f0949 Merge branch 'bugfix/psram_single_bit_error_v4.1' into 'release/v4.1'
psram: support psram 2T mode to fix single bit error (backport v4.1)

See merge request espressif/esp-idf!8327
2020-04-15 13:24:21 +08:00
f646cdd6a8 Merge branch 'nimble/fix_ble_hs_reset_v4.1' into 'release/v4.1'
NimBLE: Reset master and slave states on host reset and few minor fixes  (backport v4.1)

See merge request espressif/esp-idf!8216
2020-04-15 13:23:59 +08:00
445f727e7a Merge branch 'bugfix/fix_supplicant_tlsv12_v4.1' into 'release/v4.1'
wpa_supplicant: Fix wpa_supplicant TLS 1.2 issues (v4.1)

See merge request espressif/esp-idf!8202
2020-04-15 13:06:42 +08:00
e1562311bf Merge branch 'bugfix/logging_compilation_fix_anti_rollback_v4.1' into 'release/v4.1'
Minor fix logging issue hindering compilation on anti rollback. (v4.1)

See merge request espressif/esp-idf!8302
2020-04-14 16:36:29 +08:00
afc1362ea6 wpa_supplicant: Fix wpa_supplicant TLS 1.2 issues
1) Fixed compilation issues.
2) Added tlsprf.c from upstream
3) Enabled SHA256 in supplicant compilation.
2020-04-13 16:39:59 +00:00
5a09cfe70a Merge branch 'bugfix/uart_echo_readme_v4.1' into 'release/v4.1'
example: Remove duplicate commands and invalid serial port information (v4.1)

See merge request espressif/esp-idf!8335
2020-04-14 00:33:50 +08:00
858f4745fd example: Remove duplicate commands and invalid serial port information
Closes https://github.com/espressif/esp-idf/issues/5049
2020-04-13 15:16:11 +02:00
d880672076 bugfix: fix esp_wifi_stop crash issue 2020-04-13 16:05:48 +08:00
90a8945930 psram: support psram 2T mode to fix single bit error
1. add enable PSRAM 2T mode function
2. abort when himem and 2T mode are enabled meanwhile
3. set SPIRAM_2T_MODE as "n" by default, enable it when needed
2020-04-13 14:26:45 +08:00
34b9e6c677 Merge branch 'feat/ble_mesh_ble_adv_simultaneously_v4.1' into 'release/v4.1'
ble_mesh: Support BLE advertising simultaneously (v4.1)

See merge request espressif/esp-idf!8315
2020-04-10 21:07:19 +08:00
lly
1ac44aa202 ble_mesh: Support BLE advertising simultaneously 2020-04-10 17:34:06 +08:00
7053737110 Merge branch 'bugfix/ble_mesh_add_test_function_v4.1' into 'release/v4.1'
ble_mesh: Add ble mesh white list test function (v4.1)

See merge request espressif/esp-idf!8158
2020-04-10 17:29:38 +08:00
acb92c225f NimBLE: Minor fix in esp_nimble_cfg and bleprph README (backport v4.1) 2020-04-09 16:05:14 +05:30
072d01da2f NimBLE: Reset master and slave states on host reset and fix build failure (backport v4.1) 2020-04-09 16:05:04 +05:30
87d68ebb98 Fixes logging issue hindering compilation on anti rollback. 2020-04-09 12:04:20 +05:30
lly
89f7e62011 ble_mesh: Add ble mesh white list test function
Using the ble mesh white list test functions, a node can choose to
only receive mesh messages from a specific node and relay the
messages for it. Messages from other nodes will be ignored.
2020-04-09 06:03:59 +00:00
4fe18a9258 Merge branch 'bugfix/IDFGH-2910_v4.1' into 'release/v4.1'
NVS: bugfix - iterator skipping version 1 blobs (v4.1)

See merge request espressif/esp-idf!8191
2020-04-09 05:45:49 +08:00
51c32997b1 Merge branch 'feature/idfpy_add_baud_parameter_to_monitor_v4.1' into 'release/v4.1'
idf.py: add monitor-baud option to monitor command (v4.1)

See merge request espressif/esp-idf!7458
2020-04-09 05:44:41 +08:00
40af109144 cmake: error out on building in IDF_PATH root dir 2020-04-08 19:51:35 +08:00
ec5c123ef7 Merge branch 'bugfix/size_calculation_in_ota_v4.1' into 'release/v4.1'
Fix size calculation to erase partition range for OTA image (v4.1)

See merge request espressif/esp-idf!8266
2020-04-06 18:03:41 +08:00
4573688862 esp_ota_ops.c: Fix size calculation to erase partition range for OTA image
Closes https://github.com/espressif/esp-idf/issues/4953
2020-04-06 13:39:01 +05:30
cd301cc324 core dump: don't allow core dumps to Flash if PSRAM is used for stacks
It is not possible to write to Flash when the stack is located in
PSRAM, and it is not possible to write PSRAM buffers into Flash when
malloc can not be used.
2020-04-02 23:43:20 +02:00
9a1c5a903f Merge branch 'bugfix/btdm_backports_v4.1_0328' into 'release/v4.1'
Bugfix/btdm backports v4.1 0328

See merge request espressif/esp-idf!8150
2020-04-02 22:47:49 +08:00
655e201b1c idf.py: add monitor-baud option to monitor command 2020-04-01 15:11:20 +02:00
5e09d473c7 Merge branch 'bugfix/btdm_dont_dequeue_the_command_queue_v4.1' into 'release/v4.1'
component/bt: fix don't dequeue the command queue after process the read_by_type_req(backport v4.1)

See merge request espressif/esp-idf!8181
2020-04-01 19:06:55 +08:00
bf7f40007a Merge branch 'ci/build_bootloader_configs_v4.1' into 'release/v4.1'
ci: Fix CI testing of bootloader configs (v4.1)

See merge request espressif/esp-idf!8195
2020-04-01 15:07:48 +08:00
a2c55e2c37 examples: common connect code to ignore GOT_IP6_EVENT if comes from unrelated netif 2020-04-01 08:52:55 +02:00
4b59f7e2c7 mdns: limit the GOT_IP6_EVENT to only known network interfaces 2020-04-01 08:52:54 +02:00
716298f8e3 esp-netif-ppp: support for posting GOT_IP event for IPv6 2020-04-01 08:52:54 +02:00
38060c0b58 examples: pppos_client: update sdkconfig.defaults
As per discussion in #4782, IPV6 link local negotiation by default is
disabled.

Signed-off-by: Francesco Giancane <francesco.giancane@accenture.com>
2020-04-01 08:52:54 +02:00
3c01f68a78 lwip: make IPV6 link-local support over PPP configurable
Make the link local negotiation for IPV6 in PPP optional and
configurable.
This is because some modems do not support the IPV6 negotiation and
sending IPV6CP frames would in some cases break the network
configuration phase, resulting in a timeout during the Phase Network.

Please note that this does not disable the IPV6 support for the outgoing
communication (IPV6 is still enabled even if this option is not
selected) but just for the local link between lwIP and modem.

Signed-off-by: Francesco Giancane <francesco.giancane@accenture.com>

Merges https://github.com/espressif/esp-idf/pull/4782
Closes https://github.com/espressif/esp-idf/issues/1065
2020-04-01 08:52:54 +02:00
a5bf353e3f Merge branch 'backport/malloc_zero_return_null_v4.1' into 'release/v4.1'
backport/malloc_zero_return_null_v4.1

See merge request espressif/esp-idf!8146
2020-04-01 14:41:33 +08:00
51b7247033 unit test app: Use the new config names for DEBUG/RELEASE configs
Also build the bootloader to the same config level as the app
2020-04-01 16:30:22 +11:00
52dcf1c180 ci: Build all bootloader configs when building the bootloader app
CI regression in 26efc5a6d0
2020-04-01 16:22:20 +11:00
26379f7d3e NVS: bugfix - iterator skipping version 1 blobs
Closes https://github.com/espressif/esp-idf/issues/4954
2020-04-01 11:16:28 +08:00
8dc421c7e1 Merge branch 'bugfix/secure_boot_v2_wrdis_v4.1' into 'release/v4.1'
secure boot v2: esp32: Prevent read disabling additional efuses (v4.1)

See merge request espressif/esp-idf!8179
2020-04-01 10:53:06 +08:00
79590d2e21 component/bt: fix don't dequeue the command queue after process the read_by_type_req 2020-03-31 16:27:08 +08:00
c17d55eb9b esp32: Enable flash encryption by setting FLASH_CRYPT_CNT to max
Previous method was to write-protect this efuse, however on ECO3
the write protect field also covers the UART_DOWNLOAD_DIS efuse.

Doing it this way keeps the possibility of disabling UART download
mode, later.
2020-03-31 17:31:59 +11:00
7c34711c07 docs: secure boot v2: Add a note about maximum bootloader size 2020-03-31 17:31:58 +11:00
cf8dd62fc4 secure boot v2: esp32: Prevent read disabling additional efuses
Also reduce the number of eFuse write cycles during first boot when
Secure Boot and/or Flash Encryption are enabled.
2020-03-31 17:31:56 +11:00
f96d28172b Merge branch 'bugfix/monitor_encrypted_target_v4.1' into 'release/v4.1'
tools: Fix flashing encrypted binaries from IDF Monitor (v4.1)

See merge request espressif/esp-idf!8126
2020-03-31 13:09:55 +08:00
f538b63458 Merge branch 'bugfix/fix_airkiss_bug_v4.1' into 'release/v4.1'
fix the bug for Airkiss (backport  v4.1)

See merge request espressif/esp-idf!8121
2020-03-31 00:07:51 +08:00
6c7895fbac Merge branch 'bugfix/backport_some_wifi_bugs_0326_v4.1' into 'release/v4.1'
esp_wifi: backport some WiFi bugs 0326 (backport v4.1)

See merge request espressif/esp-idf!8149
2020-03-31 00:03:25 +08:00
a8494b68e1 components/coex: Fix wakeup delay with DFS 2020-03-28 20:12:21 +08:00
8367bc4571 esp_wifi: backport some WiFi bugs
1. Fix WiFi log print level
2. Optimize WiFi/BT coexist sleep
   - If any data tx/rx in WiFi slice, fore wakeup next TBTT
   - Increase active timeout time to coex TBTT interval to avoid sleep in WiFi slice
2020-03-28 18:13:31 +08:00
374e9b32d4 bugfix/fix_controller_disable_re_enable_crash 2020-03-28 17:14:37 +08:00
7fdc9571ba multi_heap: ensure that malloc(0) return NULL pointer in any poisoning configuration 2020-03-27 14:27:45 -03:00
f9f42a9d90 Merge branch 'fix/wifi_provisioning_uuid_v4.1' into 'release/v4.1'
Wifi_provisioning: Change service_uuid to non standard 128 bit UUID and add retries in test script (backport v4.1)

See merge request espressif/esp-idf!8081
2020-03-27 22:54:10 +08:00
820ed5c7f1 tools: Fix flashing encrypted binaries from IDF Monitor 2020-03-27 09:43:26 +01:00
69147fc4ec Merge branch 'feat/ble_mesh_vnd_model_example_v4.1' into 'release/v4.1'
Feat/ble mesh vnd model example (v4.1)

See merge request espressif/esp-idf!8001
2020-03-27 14:08:13 +08:00
88f8f91d40 fix the bug for Airkiss
Closes https://github.com/espressif/esp-idf/issues/3362
2020-03-26 21:12:52 +08:00
06337f1034 Merge branch 'bugfix/cmake_bugfixes_v4.1' into 'release/v4.1'
CMake-related bugfixes (v4.1)

See merge request espressif/esp-idf!8067
2020-03-26 16:29:55 +08:00
40f66c3117 Wifi_provisioning_mgr_test: Allow three attempts to connect to AP before concluding provisioning failure 2020-03-26 05:04:52 +00:00
db1111ef79 Wifi_provisioning_ble: Change service_uuid to non standard 128 bit UUID
- Modifies UUIDs in scheme_ble, manager example and esp_prov tool to custom 128
  bit UUID
2020-03-26 05:04:52 +00:00
dbaf0f1e93 Merge branch 'bugfix/backport_some_wifi_bugs_0323_v4.1' into 'release/v4.1'
esp_wifi: Backport some wifi bugs 0323 (backport v4.1)

See merge request espressif/esp-idf!8086
2020-03-25 15:11:32 +08:00
906280e767 Merge branch 'optimization/TCPv6_connect_for_v4.1' into 'release/v4.1'
lw-ip:optimization TCPv6 connect for 4.1

See merge request espressif/esp-idf!8048
2020-03-24 15:25:27 +08:00
55abe2eba8 esp_wifi: Fix ESP32S2 wifi log not printing 2020-03-24 15:05:05 +08:00
fbe215f3c0 esp_wifi: backport some wifi bugs 0323
1.Reduce wifi bin size
2.Add TX packets size check
3.Fix scan get rssi error
4.Return fail when setting AP's channel out of range
2020-03-24 15:05:00 +08:00
6e0b8af978 Merge branch 'feature/upgrade_mbedtls_to_v4.1' into 'release/v4.1'
mbedtls: upgrade to release v2.16.5 (v4.1)

See merge request espressif/esp-idf!7986
2020-03-24 13:46:00 +08:00
b8fe1fdf27 bootloader_support: initialize mbedtls_ctr_drbg_context per mbedtls v2.16.5 requirement
In commit 02d2903e39, mbedtls was
updated to release v2.16.5, where it was made mandatory to initialize
mbedtls_ctr_drbg_context before using same. It was fixed in wpa supplicant
but missed out in secure boot v2 verification code. This commit
fixes that.
2020-03-23 11:22:20 +05:30
355a210a38 mbedtls: upgrade to release v2.16.5
For detailed release notes please refer to:
https://tls.mbed.org/tech-updates/releases/mbedtls-2.16.5-and-2.7.14-released

Closes: IDFGH-2638
Closes: https://github.com/espressif/esp-idf/issues/4716
2020-03-23 11:22:02 +05:30
5c4f7948d4 wpa_supplicant: Fix SAE test-case failure on mbedtls version udpate
Problem:
mbedtls_ctr_drbg_context was initialized in crypto_ec_point_mul. This
was okay in releases before 2.16.4 as entropy_len used to get set to
MBEDTLS_CTR_DRBG_ENTROPY_LEN in function mbedtls_ctr_drbg_seed. The
function is now changed to set the length to
MBEDTLS_CTR_DRBG_ENTROPY_LEN if previous length is 0 and hence the bug.

Solution:
Initialize mbedtls_ctr_drbg_context in crypto_ec_point_mul.
2020-03-23 11:22:02 +05:30
bc81db3676 cmake: show error message on encrypted flash targets without proper config 2020-03-22 20:44:23 +08:00
737215c50f cmake: utility to create a failing target 2020-03-22 20:01:33 +08:00
2925b5f42b examples: split source files for one of the ulp examples 2020-03-22 20:00:21 +08:00
cc95d14d80 ulp: fix ulp external project args
Closes https://github.com/espressif/esp-idf/issues/4713
2020-03-22 20:00:21 +08:00
1717232f11 ulp: use quotes when specifying files for embedding ulp binaries 2020-03-22 19:59:50 +08:00
98742664e8 ci: add test for partition_table target 2020-03-22 19:58:48 +08:00
2aba19e00d partition_table: output partition table info for partition_table target 2020-03-22 19:58:48 +08:00
9f024df9e5 Merge branch 'bugfix/modify_ble_mesh_command_for_v4.1' into 'release/v4.1'
ble mesh: update ble mesh console example  (backport v4.1)

See merge request espressif/esp-idf!8042
2020-03-22 18:36:29 +08:00
af3c81b68a ble mesh: update ble mesh console example (backport v4.1) 2020-03-22 18:36:26 +08:00
bac92d579f Merge branch 'bugfix/send_ok_when_sta_disconnect_for_v4.1' into 'release/v4.1'
lw-ip:bugfix for TCPv6 send ok when sta disconnect for v4.1

See merge request espressif/esp-idf!8025
2020-03-21 15:15:49 +08:00
b445b59c5e Merge branch 'bugfix/wep40_key_parsing_bug_v4.1' into 'release/v4.1'
Bugfix/wep40 key parsing bug v4.1

See merge request espressif/esp-idf!7990
2020-03-20 17:33:50 +08:00
9b31a2e7f9 optimization TCPv6 connect for 4.1 2020-03-20 15:04:31 +08:00
71ffae5d6e Merge branch 'bugfix/hfp_github_issues_v4.1' into 'release/v4.1'
Bugfix for HFP and some Github issue. v4.1

See merge request espressif/esp-idf!7975
2020-03-20 13:21:33 +08:00
c092f9b881 bugfix for TCPv6 send ok when sta disconnect 2020-03-19 14:14:13 +08:00
582a493739 wpa_supplicant: Add parsing support for WEP40 key
WEP key is passed as ascii key without "", add parsing support
in supplicant for this.
2020-03-18 13:40:05 +00:00
2976f5daea Merge branch 'bugfix/ci_handle_retried_jobs_v4.1' into 'release/v4.1'
ci: add find job id argument job status (backport v4.1)

See merge request espressif/esp-idf!7953
2020-03-18 16:03:18 +08:00
4414e829de Merge branch 'backport/feat/secure_boot_v2_v41' into 'release/v4.1'
Backport/feat/secure boot v2 v41

See merge request espressif/esp-idf!7854
2020-03-18 15:35:53 +08:00
e4704e0875 Merge branch 'bugfix/ble_mesh_nimble_adapt_deinit_v4.1' into 'release/v4.1'
ble_mesh: Fix ble mesh nimble host deinit (v4.1)

See merge request espressif/esp-idf!8004
2020-03-18 12:32:21 +08:00
f5fc735711 Bugfix for HFP and some Github issue.
1. Bugfix for AG audio crash (change the return position)
2. Fix the error macro name and error return in hfp_hf demo
3. Fix the annotation error using UTF-8 ' (from Github)
4. Change or remove the log in SCO related code region.
5. Correct error of introduction of a function.
2020-03-18 04:06:24 +00:00
lly
7815cd9ff4 ble_mesh: Fix ble mesh nimble host deinit 2020-03-17 16:18:50 +08:00
lly
da113cdfa8 ble_mesh: Add ESP BLE Mesh vendor models example 2020-03-17 15:54:53 +08:00
lly
48e6195506 ble_mesh: Rename ble_mesh_vendor_models to common_vendor_models 2020-03-17 15:54:40 +08:00
1cdea40bba Merge branch 'bugfix/ble_mesh_miscellaneous_fix_v4.1' into 'release/v4.1'
Bugfix/ble mesh miscellaneous fix (v4.1)

See merge request espressif/esp-idf!7969
2020-03-17 15:34:19 +08:00
3d462d7d81 Merge branch 'bugfix/compiler_err_when_performance_optimization_enabled_v4.1' into 'release/v4.1'
Bugfix/compiler err when performance optimization enabled v4.1

See merge request espressif/esp-idf!7977
2020-03-17 13:54:06 +08:00
aa6347339c Remove (x2) variable in BCM_STRNCPY_S and BCM_STRCPY_S when performance optimization enabled 2020-03-14 14:41:16 +08:00
8488f292c2 Fix mem_start uninitialized error when compiler optimization performance enabled 2020-03-14 14:41:06 +08:00
lly
6431a5e185 ble_mesh: Move dev_role to the end of model_pub 2020-03-13 19:24:49 +08:00
lly
27b28c0249 ble_mesh: Use the right netkey during iv update 2020-03-13 19:24:45 +08:00
lly
b29bc240a7 ble_mesh: Use the right net_idx & app_idx for publish 2020-03-13 19:24:37 +08:00
lly
940e87c0da ble_mesh: Check buf->ref before unref the buffer 2020-03-13 19:24:32 +08:00
lly
60eaca9637 ble_mesh: Fix mesh memory use-after-free issue 2020-03-13 19:24:27 +08:00
lly
e01333514d ble_mesh: Add ble mesh deinit in btc task 2020-03-13 19:24:23 +08:00
lly
f0519c674f ble_mesh: Free beacon timer when deinit mesh 2020-03-13 19:24:18 +08:00
lly
de9186b908 ble_mesh: Use lock for mesh timer operations 2020-03-13 19:24:12 +08:00
5cd45a6d80 secure boot: Fix anti-fault value if hash is shorter than curve
(Not actually a problem with SBV1 anti-fault as hash size == curve size in this case.)
2020-03-13 14:01:45 +05:30
1fa6db757d ci: add find job id argument job status:
if we retry failed job, we will have 2 jobs with same name in one pipeline. we need to use status to find the retried job instead of failed job.
2020-03-12 09:56:33 +08:00
7f84669054 Merge branch 'bugfix/from_github_v4.1' into 'release/v4.1'
Fixes from Github (backport v4.1)

See merge request espressif/esp-idf!7920
2020-03-11 21:49:19 +08:00
e82ac041cd Merge branch 'bugfix/select_waiting_assert_for_v4.1' into 'release/v4.1'
lw-ip:fix bug for after udp close select_waiting assert for v4.1

See merge request espressif/esp-idf!7919
2020-03-11 20:45:35 +08:00
47f9c0e301 fix bug for after udp close select_waiting assert for v4.1 2020-03-11 10:06:43 +00:00
d09a43fc1e Merge branch 'bugfix/ota_with_redirection_v4.1' into 'release/v4.1'
esp_https_ota in sync with master (v4.1)

See merge request espressif/esp-idf!7914
2020-03-11 14:46:25 +08:00
a003bcde29 Merge branch 'bugfix/idfpygenerator_v4.1' into 'release/v4.1'
tools: fix idf.py to be able to select a generator for build (v4.1)

See merge request espressif/esp-idf!7917
2020-03-10 22:22:47 +08:00
492065463d Merge branch 'bugfix/put_spihost_handle_in_sram_v4.1' into 'release/v4.1'
spi: always put spihost handle in SRAM (backport v4.1)

See merge request espressif/esp-idf!7901
2020-03-10 14:22:32 +08:00
85c15812c9 fix markdown table formatting
fixed markdown for a table in
`examples/peripherals/temp_sensor_esp32s2/README.md`

Merges https://github.com/espressif/esp-idf/pull/4609
2020-03-09 11:25:54 +01:00
ba43902fb8 Fixes compilation error on verbose level (IDFGH-2439)
Closes #4552

Merges https://github.com/espressif/esp-idf/pull/4786
2020-03-09 11:25:54 +01:00
eda9d8ffa8 Added semi-colon to esp_event_loop_create(...)
Title sums it up.

Merges https://github.com/espressif/esp-idf/pull/4711
2020-03-09 11:17:08 +01:00
f4c84ea2b2 Fix typo
Merges https://github.com/espressif/esp-idf/pull/4752
2020-03-09 11:17:08 +01:00
fefd64fa83 Merge branch 'Bugfix/netconn_marked_close_crash_for_v4.1' into 'release/v4.1'
lw-ip:fix bug for netconn marked close crash for v4.1

See merge request espressif/esp-idf!7896
2020-03-09 16:36:39 +08:00
70b1ab76e8 esp_https_ota.c: Add errno check for WiFi disconnection while performing OTA 2020-03-09 13:26:36 +05:30
6bc77d79a6 OTA: Add fix in case of URL redirection and a test case of URL redirection
Closes https://github.com/espressif/esp-idf/issues/4780
2020-03-09 13:26:36 +05:30
4c09dc6270 OTA: Fixed OTA with chunked servers and added example_test with chunked server 2020-03-09 13:26:36 +05:30
570653bc7b tools: fix idf.py to be able to select a generator for build 2020-03-09 08:42:14 +01:00
2241dda536 Merge branch 'feature/netif_ppp_authtype_none_v4.1' into 'release/v4.1'
esp-netif: PPPoS fixes (v4.1)

See merge request espressif/esp-idf!7849
2020-03-09 13:34:16 +08:00
a559d55379 Merge branch 'bugfix/spiflash_read_psram_v4.1' into 'release/v4.1'
spi_flash: Fix over-allocation and OOM crash when reading from SPI flash to PSRAM buffers (v4.1)

See merge request espressif/esp-idf!7877
2020-03-09 11:13:29 +08:00
c99eac2f0b Merge branch 'bugfix/aligned_alloc_without_poisoning_v4.1' into 'release/v4.1'
bugfix/heap: Make aligned alloc and aligned free available to all heap poisoning configurations (v4.1)

See merge request espressif/esp-idf!7898
2020-03-09 11:05:24 +08:00
a1764ec5b0 fix bug for netconn marked close crash for v4.1 2020-03-09 02:54:20 +00:00
5ce7ec848c heap: pushed down all the aligned_alloc / free implementation 2020-03-08 23:17:05 +00:00
15cdd2859a heap: added aligned alloc implementation on multi_heap layer 2020-03-08 23:17:05 +00:00
a0abb4dfdc Merge branch 'bugfix/docs_ulp_reg_rd_wr_instructions_v4.1' into 'release/v4.1'
Correct ULP REG_WR and REG_RD instruction for ESP32

See merge request espressif/esp-idf!7869
2020-03-06 19:08:30 +08:00
f5b678f7ba Correct ULP REG_WR and REG_RD instruction for ESP32 2020-03-06 19:08:29 +08:00
1af819d19b spi: always put spihost handle in SRAM
Closes https://github.com/espressif/esp-idf/issues/4635
2020-03-06 17:36:44 +08:00
408d1d9f93 Merge branch 'bugfix/cmake_convert_whitespace_v4.1' into 'release/v4.1'
cmake: Minor convert_to_cmake.py fixes (v4.1)

See merge request espressif/esp-idf!7875
2020-03-06 14:58:14 +08:00
f70dcd9ab5 Merge branch 'bugfix/modem_ppp_close_fix_4.1' into 'release/v4.1'
esp_modem.c: post PPP stop event when requested (v4.1)

See merge request espressif/esp-idf!7882
2020-03-06 14:31:06 +08:00
a251485359 Merge branch 'bugfix/clean_pcnt_i2s_public_header_v4.1' into 'release/v4.1'
driver: clean pcnt.h i2s.h (backport v4.1)

See merge request espressif/esp-idf!7839
2020-03-06 14:05:33 +08:00
ee86ee0094 Merge branch 'feature/wpa3_testcases_support_v4.1' into 'release/v4.1'
esp_wifi: Support for additional WPA3 testcases (Backport v4.1)

See merge request espressif/esp-idf!7880
2020-03-06 12:23:43 +08:00
5dbabae9dc Merge branch 'nimble/host_based_rpa_v4.1' into 'release/v4.1'
NimBLE: Support Host based privacy (RPA) feature in NimBLE host (backport v4.1)

See merge request espressif/esp-idf!7887
2020-03-06 11:02:22 +08:00
48fe9dfce7 NimBLE: Add Host based privacy (RPA) feature support (v4.1)
- This feature removes dependency on controller to use privacy (RPA)

Closes BT-519
2020-03-06 11:02:22 +08:00
5f2d918437 bootloader: Set the bootloader optimization level separately to the app
Change the default bootloader config to -Os to save size.

This is a useful feature because it allows switching between debug
and release configs in the app without also needing to account for a
size change in the bootloader.
2020-03-06 01:16:04 +05:30
32756b165e bootloader: Add fault injection resistance to Secure Boot bootloader verification
Goal is that multiple faults would be required to bypass a boot-time signature check.

- Also strengthens some address range checks for safe app memory addresses
- Change pre-enable logic to also check the bootloader signature before enabling SBV2 on ESP32

Add some additional checks for invalid sections:

- Sections only partially in DRAM or IRAM are invalid
- If a section is in D/IRAM, allow the possibility only some is in D/IRAM
- Only pass sections that are entirely in the same type of RTC memory region
2020-03-06 01:16:04 +05:30
74b299c4c7 secure boot: Encrypt the bootloader signature when enabling flash encryption + secure boot v2 2020-03-06 01:16:04 +05:30
27e9cb785a feat/secure_boot_v2: Adding docs for secure boot v2 ESP32-ECO3 2020-03-06 01:16:04 +05:30
60fed38c0f feat/secure_boot_v2: Adding secure boot v2 support for ESP32-ECO3 2020-03-06 01:16:04 +05:30
a66955b36a Merge branch 'bugfix/cmake_generators_v4.1' into 'release/v4.1'
tools: Force the order of cmake generators (v4.1)

See merge request espressif/esp-idf!7848
2020-03-05 20:17:32 +08:00
535b378869 Merge branch 'nimble/make_msys_1_configurable_v4.1' into 'release/v4.1'
NimBLE: Fix check for static random address & add MSYS_1 in menuconfig (backport v4.1)

See merge request espressif/esp-idf!7864
2020-03-05 18:00:28 +08:00
e36b3e0d04 NimBLE: Fix check for static random address & add MSYS_1 in menuconfig (v4.1)
Closes BT-522 & BT-523
2020-03-05 18:00:27 +08:00
2afafe890a esp_modem.c: post PPP stop event when requested
When library users call esp_stop_ppp(), it is expected that the PPP link
is closed and the DCE is moved into command mode.

If the STOP event is not posted into the event loop, then the PPP stack
would not be turned off, resulting in the impossibility to switch into
command mode, as the modem is still sending PPP binary data.

Signed-off-by: Francesco Giancane <francesco.giancane@accenture.com>

Merges https://github.com/espressif/esp-idf/pull/4642
2020-03-05 09:23:21 +01:00
e7c8a36d46 Merge branch 'bugfix/esp_tls_blocking_timeout_v4.1' into 'release/v4.1'
esp-tls: add timeout for blocking connection (v4.1)

See merge request espressif/esp-idf!7395
2020-03-05 16:06:35 +08:00
0e21d1e372 Merge branch 'nimble/misc_host_flow_ctrl_changes_v4.1' into 'release/v4.1'
NimBLE: Misc changes in host flow control, ble_gap_unpair, ble_hs_hci_rx_evt, memory management & example (backport v4.1)

See merge request espressif/esp-idf!7857
2020-03-05 14:54:39 +08:00
96cd373265 Merge branch 'bugfix/btdm_assert_when_create_connection_cancel_v4.1' into 'release/v4.1'
components/bt: Fix assert when create conntion cancel

See merge request espressif/esp-idf!7817
2020-03-05 14:53:18 +08:00
00f0cdcc92 esp_wifi: Support for additional WPA3 testcases
1. Anti-Clogging Token Request support
2. Return correct status from SAE modules for invalid scenarios
3. Add PMK Caching support for WPA3
2020-03-05 12:15:03 +05:30
425486223e spi_flash: Remove 16KB free internal heap limit for esp_flash_read() into PSRAM
Allocation of the temporary internal buffer will now repeat until a small enough buffer can be
allocated, and only fail if less than a 256 byte block of internal RAM is free.

Adds unit test for the same, and generic test utility for creating memory pressure.
2020-03-05 17:10:22 +11:00
d6026823fa spi_flash: Fix over-allocation and OOM crash when reading from SPI flash to PSRAM buffers
Previously would try allocate buffer of minimum size 16KB not maximum size 16KB, causing
out of memory errors for any large reads, or if less than 16KB contiguous free heap.

Also, if using legacy API and internal allocation failed then implementation would abort()
instead of returning the error to the caller.

Added test for using large buffers in PSRAM.

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

Also reported on forum: https://esp32.com/viewtopic.php?f=13&t=14304&p=55972
2020-03-05 17:10:22 +11:00
c57ba38d67 cmake: Add warnings that convert_to_cmake.py doesn't calculate component requirements
Any component which requires another component will need this manually
added to its CMakeLists.txt file.
2020-03-05 17:06:13 +11:00
250e219279 cmake: convert_to_cmake: Fix possible whitespace issues
As reported on forum:
https://esp32.com/viewtopic.php?f=2&t=13565&p=53476#p53453

split() with no arg will match any whitespace sequence not just
a single space, so takes care of case where two spaces are
inserted in the variable value.
2020-03-05 17:06:13 +11:00
233d4b94bd esp_tls: fail connection if esp_tls_conn_new() timeouts 2020-03-04 15:15:40 +00:00
d19c1c4b3c esp_tls: added connection timeout to esp_tls_conn_new_sync() 2020-03-04 15:15:40 +00:00
e7a33878bb Merge branch 'bugfix/backport_some_wifi_issues_0302' into 'release/v4.1'
esp_wifi: backport some wifi issues 0302 (backport v4.1)

See merge request espressif/esp-idf!7826
2020-03-04 15:36:31 +08:00
74c528d836 NimBLE: Use dynamic buffers instead of static memory.
The NimBLE host buffers that consume a significant amount of memory are
now allocated dynamically.
The advantage is that, the memory can be reclaimed in cases where BLE
is turned off and not required for the current boot cycle
2020-03-04 12:01:53 +05:30
c55689ca18 NimBLE: Misc changes in host flow control, ble_gap_unpair, ble_hs_hci_rx_evt & example (v4.1)
- Add menuconfig option for NimBLE host flow control
- Include changes in `blecent` example from upstream PR!702
- add ble_hs_lock in ble_gap_unpair Upstream PR!584
- ble_hs_hci_rx_evt, upstream PR!738

Closes https://github.com/espressif/esp-idf/issues/4243
2020-03-04 11:35:47 +05:30
b8c2fedec9 Merge branch 'bugfix/add_hostname_in_discover_packet_for_v4.1' into 'release/v4.1'
lw-ip:add host name in discover packet for v4.1

See merge request espressif/esp-idf!7842
2020-03-04 11:24:42 +08:00
23c5770156 esp_netif_lwip_ppp: fix posting ip-event data
Closes https://github.com/espressif/esp-idf/issues/4634
2020-03-03 15:00:37 +01:00
4c668ff3d3 esp_netif_lwip_ppp: Allow esp_netif_ppp_set_auth set auth_type with NETIF_PPP_AUTHTYPE_NONE
The ppp_set_auth() is guard by #if PPP_AUTH_SUPPORT in lwIP, so
make it consistent. This also simplify the code a bit because the code
in #if PAP_SUPPORT guard and #if CHAP_SUPPORT guard are exactly the same.

Once NETIF_PPP_AUTHTYPE_NONE added to esp_netif_auth_type_t, it also allows
setting NETIF_PPP_AUTHTYPE_NONE with this change.

Signed-off-by: Axel Lin <axel.lin@gmail.com>

Merges https://github.com/espressif/esp-idf/pull/4639
2020-03-03 15:00:37 +01:00
4a623798f1 esp_netif_ppp: Add NETIF_PPP_AUTHTYPE_NONE to esp_netif_auth_type_t
To allow setting auth_type to PPPAUTHTYPE_NONE, add NETIF_PPP_AUTHTYPE_NONE
to esp_netif_auth_type_t.
So even PAP/CHAP are enabled in lwIP, the application still can set
auth_type to PPPAUTHTYPE_NONE.

Signed-off-by: Axel Lin <axel.lin@gmail.com>
2020-03-03 15:00:37 +01:00
0f191c3366 tools: Force the order of cmake generators 2020-03-03 11:39:59 +01:00
077d68c752 driver: clean pcnt.h i2s.h 2020-03-03 18:12:11 +08:00
4d10eb20db esp_wifi: fix some WiFi bugs
Fix following WiFi bugs:
1. Fix crashing during shared WEP connection
2. Remove log "age_bss: null bss
3. Add WiFi stop checking at the beginning of wifi deinit api
4. Fix espnow crash
5. Fix the bug for setting channel when WiFi is no NULL mode
6. Adjust scheme percent when BT is in connected status
7. Fix WiFi stop leads to memory leak
8. Place the Vendor Specific Element at the end of WiFi packet
2020-03-03 14:49:36 +08:00
94327c10ed add host name in discover packet for v4.1 2020-03-03 14:25:47 +08:00
328c659cd3 Merge branch 'feat/ble_mesh_update_4.1' into 'release/v4.1'
Feat/ble mesh update 4.1

See merge request espressif/esp-idf!7798
2020-03-02 15:33:05 +08:00
lly
8e34adb94c ble_mesh: Calc incomplete timeout based on msg info 2020-03-02 02:08:13 +00:00
lly
7d41eb6f52 ble_mesh: Start the timer when starting to send the client message 2020-03-02 02:08:13 +00:00
lly
2a014db549 ble_mesh: No timeout for client message to non-unicast address 2020-03-02 02:08:13 +00:00
lly
6c207ea6d2 ble_mesh: Unify client application and lower transport layer timeout 2020-03-02 02:08:13 +00:00
lly
2611e23bd2 ble_mesh: Allow maximum 377 octets payload 2020-03-02 02:08:13 +00:00
lly
4b2ef7303e ble_mesh: Reset transport info when node is removed 2020-03-02 02:08:13 +00:00
lly
21af266a11 ble_mesh: Provisioner ignores msg from removed node 2020-03-02 02:08:13 +00:00
lly
711c8472fc ble_mesh: Miscellaneous modifications
1. Add an API to set Provisioner static oob value
2. Add an API to deinit BLE Mesh stack
3. Add an API to set Provisioner unicast address
4. Add an API to provision devices with fixed address
5. Add an API to store node composition data
6. Add an API to get node with device uuid
7. Add an API to get node with unicast address
8. Add an API to delete node with device uuid
9. Add an API to delete node with unicast address
10. Add an API for Provisioner to update local AppKey
11. Add an API for Provisioner to update local NetKey
12. Support Provisioner persistent functionality
13. Fix Provisioner entering IV Update procedure
14. Fix an issue which may cause client failing to send msg
15. Use bt_mesh.flags to indicate device role
16. Remove several useless macros
17. Callback RSSI of received mesh provisioning packets
18. Modify the Provisioner disable function
19. Change some log level from debug to info
20. Add parameters to Provisioner bind AppKey completion event
21. Fix node ignoring relay messages issue
22. Support using a specific partition for BLE Mesh
23. Fix compile warning when proxy related macros are disabled
24. Clean up BLE Mesh stack included header files
25. NULL can be input if client message needs no parameters
26. Fix compile warning when BT log is disabled
27. Initilize BLE Mesh stack local variables
28. Support using PSRAM for BLE Mesh mutex, queue and task
29. Add a menuconfig option to enable using memory from PSRAM
30. Clean up sdkconfig.defaults of BLE Mesh examples
2020-03-02 02:08:13 +00:00
df06f7d715 Merge branch 'bugfix/doc_remove_cmake_defconfig_v4.1' into 'release/v4.1'
Doc: replace defconfig with reconfigure (v4.1)

See merge request espressif/esp-idf!7687
2020-03-02 05:09:38 +08:00
a280f0a9ba Merge branch 'bugfix/IPV6_multicast_adress_error_for_v4.1' into 'release/v4.1'
lw-ip:fix ipv6 bug when input the wrong broadcast for v4.1

See merge request espressif/esp-idf!7804
2020-02-29 17:06:56 +08:00
9177f5d32e Merge branch 'feature/doc_feedback_links_v4.1' into 'release/v4.1'
docs: Include feedback link in footer (v4.1)

See merge request espressif/esp-idf!7820
2020-02-29 16:57:49 +08:00
4045dc8508 Merge branch 'bugfix/nec_example_v4.1' into 'release/v4.1'
bugfix in NEC example and low level function  (v4.1)

See merge request espressif/esp-idf!7635
2020-02-29 02:56:12 +08:00
f4f2724a4e Include feedback link in footer 2020-02-29 00:32:35 +08:00
dbc0a9b3f4 components/bt: Fix assert when create conntion cancel 2020-02-28 20:23:39 +08:00
83fc174310 Merge branch 'bugfix/btdm_div_by_zero_in_slp_clk_conversion_for_v4.1' into 'release/v4.1'
bugfix/btdm_div_by_zero_in_slp_clk_conversion_for_v4.1(backport v4.1)

See merge request espressif/esp-idf!7786
2020-02-28 17:19:41 +08:00
6fad6eb9f1 component/bt: set non-zero initial value for bt sleep clock cycle to avoid div-by-zero error in function "btdm_us_2_lpcycles" when BT modem sleep is not enabled 2020-02-28 14:08:47 +08:00
9c5067a998 fix ipv6 bug when input the wrong broadcast for v4.1 2020-02-27 17:13:03 +08:00
3b16089cb2 Merge branch 'bugfix/doc_python3_v4.1' into 'release/v4.1'
Docs: Encourage to use Python 3 (v4.1)

See merge request espressif/esp-idf!7782
2020-02-27 01:48:23 +08:00
de3eed647f Docs: Encourage to used Python 3 2020-02-26 09:11:13 +01:00
c4654298ce Merge branch 'bugfix/add_missing_ledc_set_pin_declaration_v4.1' into 'release/v4.1'
Bugfix: Add missing ledc_set_pin declaration in led.h (v4.1)

See merge request espressif/esp-idf!7372
2020-02-26 15:20:40 +08:00
9c8c6b5cd5 Merge branch 'bugfix/sntp_init_can_run_before_net_connection_v4.1' into 'release/v4.1'
lw_ip: Add to sys_arch_protect() a check that the mutex is created before use if not then creates it (v4.1)

See merge request espressif/esp-idf!7756
2020-02-26 11:30:09 +08:00
dc8701601d Merge branch 'bugfix/esp_netif_pppos_dce_off_v4.1' into 'release/v4.1'
pppos_client: Fix power_down dce immediately after got IP (v4.1)

See merge request espressif/esp-idf!7398
2020-02-26 11:29:18 +08:00
402a118299 Merge branch 'bugfix/btdm_check_EXT_CRYS_state_for_sleep_clk_for_v4.1' into 'release/v4.1'
bugfix/btdm_check_EXT_CRYS_state_for_sleep_clk(backport v4.1)

See merge request espressif/esp-idf!7748
2020-02-25 17:55:31 +08:00
5487700bf1 lwip: Add to sys_arch_protect() a check that the mutex is created before use if not then creates it
Closes: https://github.com/espressif/esp-idf/issues/944
Closes: https://github.com/espressif/esp-idf/issues/3931
Closes: WIFI-1019
2020-02-24 15:48:27 +08:00
cd492747e1 component/bt: fall back to main XTAL as Bluetooth sleep clock when EXT 32K CRYS is configured but not detected 2020-02-24 12:22:35 +08:00
9cdbda325a Merge branch 'bugfix/btdm_backports_v4.1_0220' into 'release/v4.1'
components/bt: backports to release/v4.1

See merge request espressif/esp-idf!7716
2020-02-21 14:57:16 +08:00
9bf147515c Merge branch 'bugfix/fix_sniffer_bug_caused_by_mode_switch_v4.1' into 'release/v4.1'
Fix sniffer bug caused by mode switch  (backport v4.1)

See merge request espressif/esp-idf!7690
2020-02-21 14:53:56 +08:00
3a9750746f Merge branch 'bugfix/add_option_to_ipv6_stateless_address_configuration_v4.1' into 'release/v4.1'
lw-ip: Add option to ipv6 stateless address configuration (backport v4.1)

See merge request espressif/esp-idf!7699
2020-02-21 14:53:32 +08:00
0809136836 Merge branch 'bugfix/esp_log_timestamp_v4.1' into 'release/v4.1'
Use proper API to get Tick Count is esp_log_timestamp (v4.1)

See merge request espressif/esp-idf!7717
2020-02-20 21:11:10 +08:00
124b735ac5 log: Check for ISR context and use proper API to get Tick Count 2020-02-20 15:38:08 +05:30
a74d85945a components/bt: backports to release/v4.1
Fix bugs about role switch
Fix watchdog timeout when sleep enabled and crash without enabling sw coex
Fix ble crash issue triggered by ble event irq miss(0x20000)
Future events scheduling error in case of wifi and bluetooth.
2020-02-20 17:53:40 +08:00
ce4334f4bf lwip: Enable IPv6 stateless address autoconfiguration 2020-02-20 14:44:49 +08:00
5c217d8bb6 Merge branch 'bugfix/coex_a2dp_stuck_after_creating_another_connection_v4.1' into 'release/v4.1'
components/coex: Fix a2dp stuck after creating another connection

See merge request espressif/esp-idf!7662
2020-02-20 14:16:53 +08:00
0664f82431 Merge branch 'bugfix/coex_fix_misspell_in_kconfig_v4.1' into 'release/v4.1'
components/coex: Fix misspell in Kconfig

See merge request espressif/esp-idf!7671
2020-02-20 14:15:53 +08:00
0350ea5744 esp_wifi: Small refactor for ic_set_vif 2020-02-20 12:22:52 +08:00
145682b854 Doc: replace defconfig with reconfigure
Closes https://github.com/espressif/esp-idf/issues/3965
2020-02-19 17:06:43 +01:00
1e54e5ddef components/coex: Fix misspell in Kconfig 2020-02-19 11:43:53 +08:00
3f4da83520 Merge branch 'bugfix/kconfig_cmake_escape_v4.1' into 'release/v4.1'
confgen.py: Escape special characters for cmake (v4.1)

See merge request espressif/esp-idf!7645
2020-02-19 08:00:53 +08:00
8609b3730d Merge branch 'bugfix/unified_prov_bluedroid_v4.1' into 'release/v4.1'
Unified Provisioning - BLE: Fix characteristics read response issue (backport v4.1)

See merge request espressif/esp-idf!7652
2020-02-18 20:57:22 +08:00
e8d33e4faf Merge branch 'bugfix/ble_mesh_fix_compile_error_with_cpp_4.1' into 'release/v4.1'
ble_mesh: Fix compile error with c++ files (v4.1)

See merge request espressif/esp-idf!7583
2020-02-18 20:43:51 +08:00
8908d52efa components/coex: Fix a2dp stuck after creating another connection 2020-02-18 20:13:41 +08:00
5a244bc935 Unified Provisioning - BLE: Fix characteristics read response issue
Fix the issue when number of bytes to be read is an exact multiple of [MTU-1]
2020-02-18 15:11:51 +05:30
ea35218d2a confgen.py: Escape special characters for cmake
Closes https://github.com/espressif/esp-idf/issues/4751
2020-02-18 09:55:30 +01:00
d01af529f6 Merge branch 'bugfix/idf_tools_pylauncher_v4.1' into 'release/v4.1'
idf_tools.py: fix typo in __PYVENV_LAUNCHER__ env variable name (backport v4.1)

See merge request espressif/esp-idf!7478
2020-02-18 16:24:56 +08:00
3b86e7e099 Merge branch 'bugfix/change_hci_task_size_back_v4.1' into 'release/v4.1'
components/bt: change HCI task size back

See merge request espressif/esp-idf!7568
2020-02-18 12:52:10 +08:00
bd8baba0dc rmt: fix missing 0x in rmt_ll.h
Closes https://github.com/espressif/esp-idf/issues/4760
2020-02-18 10:54:03 +08:00
8954c989f4 Update ir_builder_rmt_nec.c
fixes standard protocol mode wich would fail due to integer promotion in inversion

Merges https://github.com/espressif/esp-idf/pull/4750
2020-02-18 10:53:49 +08:00
f6c90adb42 Update ir_protocols_main.c
RMT write should be non-blocking to wait the correct time for sending the repeat frame
2020-02-18 10:53:37 +08:00
a0ebe4d18c Merge branch 'bugfix/ulp_s2_linux_32bit_v4.1' into 'release/v4.1'
tools: mark ULP toolchain as not available on 32-bit Linux (backport v4.1)

See merge request espressif/esp-idf!7476
2020-02-15 00:53:04 +08:00
eb11a748e7 Merge branch 'feature/idf_docker_updates_v4.1' into 'release/v4.1'
Enable ccache and use newer CMake in Docker image (backport v4.1)

See merge request espressif/esp-idf!7481
2020-02-15 00:52:47 +08:00
c8e605cd71 Merge branch 'bugfix/idf_fullclean_loses_target_v4.1' into 'release/v4.1'
idf.py: guess IDF_TARGET from sdkconfig/sdkconfig.defaults, error out if IDF_TARGET is inconsistent (backport v4.1)

See merge request espressif/esp-idf!7601
2020-02-15 00:52:22 +08:00
0f9e14de9a Merge branch 'bugfix/smtp_strict_prototypes_fix_v4.1' into 'release/v4.1'
ci: re-add the lost PEDANTIC_{C,CXX}FLAGS in CMake example builds (backport v4.1)

See merge request espressif/esp-idf!7599
2020-02-15 00:52:02 +08:00
73fd009d40 Merge branch 'bugfix/btdm_hfp_ag_crash_in_unknown_at_cmd_v4.1' into 'release/v4.1'
components/bt: Fix connection fail and crash when receive unknown AT cmd

See merge request espressif/esp-idf!7405
2020-02-14 19:46:49 +08:00
17afd49e01 Merge branch 'bugfix/doc_sphinxcontrib_dep_v4.1' into 'release/v4.1'
Docs: Fix sphinxcontrib dependencies

See merge request espressif/esp-idf!7598
2020-02-14 17:21:07 +08:00
8cdb2538d3 Merge branch 'bugfix/win_tools_installer_fixes_v4.1' into 'release/v4.1'
docs: Windows tools installer release v2.3 (v4.1)

See merge request espressif/esp-idf!7560
2020-02-14 17:16:02 +08:00
cbd24259b2 Merge branch 'bugfix/btdm_error_type_in_config_eir_evt_v4.1' into 'release/v4.1'
components/bt: Fix error EIR type in config eir event

See merge request espressif/esp-idf!7406
2020-02-14 16:38:25 +08:00
9aa61d634b Merge branch 'bugfix/wifi_clear_phy_status_when_cpu_start_v4.1' into 'release/v4.1'
soc: clear PHY status when cpu start (backport v4.1)

See merge request espressif/esp-idf!7590
2020-02-14 11:34:38 +08:00
e547329935 ci: fix build system test on macOS
Replaces ${var^^} expansion supported with Bash >= 4 with 'tr'
2020-02-13 19:11:17 +01:00
6ae3311f48 idf.py: fail and show instructions on IDF_TARGET mismatch
Closes IDF-869
2020-02-13 19:10:41 +01:00
1adf837577 docs: update build system guide on setting IDF_TARGET 2020-02-13 19:10:41 +01:00
b76a10dd4f idf.py: guess IDF_TARGET from sdkconfig if CMakeCache doesn't exist
This solves the issue that target is changed to the default one after
idf.py fullclean.

Also allow setting the default target using sdkconfig.defaults, e.g.
CONFIG_IDF_TARGET="esp32s2"

Closes IDF-1040
2020-02-13 19:05:10 +01:00
911f931ccb ci: re-add the lost PEDANTIC_{C,CXX}FLAGS in CMake example builds 2020-02-13 18:51:56 +01:00
c74521f06d Docs: Fix sphinxcontrib dependencies 2020-02-13 14:50:31 +01:00
317f0d496a soc: clear PHY status when cpu start 2020-02-13 14:25:32 +08:00
ca735340f9 Merge branch 'bugfix/ble_mesh_utf_8_comma_4.1' into 'release/v4.1'
ble_mesh: Kconfig included a UTF-8 comma (v4.1)

See merge request espressif/esp-idf!7575
2020-02-13 11:12:17 +08:00
lly
45af9bf3ec ble_mesh: Fix compile error with c++ files 2020-02-13 09:46:54 +08:00
cdd3f6e8e7 Merge branch 'bugfix/spiffs_case_when_use_mtime_is_not_set_v4.1' into 'release/v4.1'
spiffs: Fix for case when CONFIG_SPIFFS_USE_MTIME is not defined (v4.1)

See merge request espressif/esp-idf!7573
2020-02-13 07:04:44 +08:00
lly
7acdc2f7fc ble_mesh: Kconfig included a UTF-8 comma 2020-02-12 18:25:43 +08:00
c6c18ef2e8 spiffs: Fix for case when CONFIG_SPIFFS_USE_MTIME is not defined
Closes: 2c793cef06
2020-02-12 18:12:58 +08:00
9eec899f49 Merge branch 'bugfix/ci_no_attempts_no_custom_toolchain_url_v4.1' into 'release/v4.1'
ci: no stage attempts variables, no custom toolchain url (backport v4.1)

See merge request espressif/esp-idf!7543
2020-02-12 17:55:37 +08:00
549d026dc3 Merge branch 'bugfix/idf_tools_virtualenv_v4.1' into 'release/v4.1'
idf_tools.py: fix install-python-env failure with virtualenv 20.0.0 (backport v4.1)

See merge request espressif/esp-idf!7552
2020-02-12 17:32:15 +08:00
9ebdcf5b37 components/bt: change HCI task size back 2020-02-12 16:32:56 +08:00
a0d7dd770c Merge branch 'feature/esp32_5p0_backport_v4p1' into 'release/v4.1'
code optimize backport to v4.1

See merge request espressif/esp-idf!7558
2020-02-12 15:20:18 +08:00
21c1682a7a backport code optimize, mr !7409 2020-02-12 11:50:52 +08:00
4541e065e4 docs: update version of IDF tools installer for windows to v2.3 2020-02-12 10:26:34 +11:00
81298c3f70 idf_tools.py: fix install-python-env failure with virtualenv 20.0.0
--no-site-packages is the default behavior since virtualenv 1.7
(released in Nov 2011). This option was removed in virtualenv 20.0.
2020-02-11 09:43:27 +01:00
33069f3133 Merge branch 'bugfix/part_gen_subtype_fix_v4.1' into 'release/v4.1'
partition_table: Fix subtype in gen_esp32part.py (v4.1)

See merge request espressif/esp-idf!7535
2020-02-11 12:06:41 +08:00
04f589b1c7 Merge branch 'bugfix/remove_cjson_test_file_from_cmake_build_v4.1' into 'release/v4.1'
cJSON: include only source file objects for cmake build (v4.1)

See merge request espressif/esp-idf!7545
2020-02-11 11:57:26 +08:00
901ae4d11c Merge branch 'bugfix/newlib_nano_lib_linking_v4.1' into 'release/v4.1'
esp_rom: link newlib nano from ROM only if SPIRAM cache workaround is disabled (v4.1)

See merge request espressif/esp-idf!7544
2020-02-11 11:56:11 +08:00
bdf8df61c0 Merge branch 'bugfix/stage_two_bootloader_linking_v4.1' into 'release/v4.1'
Fixes accessing some files from 2nd part of the bootloader. (v4.1)

See merge request espressif/esp-idf!7541
2020-02-10 20:54:34 +08:00
d41f3cc759 cJSON: include only source file objects for cmake build
Test file can cause build issues in some cases, since it has its own main() function
2020-02-10 17:32:14 +05:30
1ae9541176 esp_rom: link newlib nano from ROM only if SPIRAM cache workaround is disabled 2020-02-10 17:30:25 +05:30
224c221ddd ci: remove using IDF_XTENSA_TOOLCHAIN_URL because there are idf_tools.json and multi-target support 2020-02-10 18:46:42 +07:00
2ad0e78210 ci: Use ARTIFACT_DOWNLOAD_ATTEMPTS and others from the project settings 2020-02-10 18:46:37 +07:00
546cf10c5d Fixes accessing some files from 2nd part of the bootloader. 2020-02-10 16:33:02 +05:30
994e632a59 Fix subtype in PartitionTable.find_by_type
Fix ptype->subtype

Closes https://github.com/espressif/esp-idf/pull/4723
2020-02-10 08:37:10 +01:00
5799999e41 Merge branch 'bugfix/esp_timer_stucks_into_esp_timer_impl_set_alarm_v4.1' into 'release/v4.1'
esp_timer/esp32: Fix esp_timer_impl_set_alarm() when CPU and APB freqs are changed (v4.1)

See merge request espressif/esp-idf!7507
2020-02-10 13:43:05 +08:00
4e1c41c7e1 Merge branch 'bugfix/doc_nwdiag_v4.1' into 'release/v4.1'
docs: Fix nwdiag dependency for documentation build (v4.1)

See merge request espressif/esp-idf!7515
2020-02-07 06:29:23 +08:00
371565be3e docs: Fix nwdiag dependency for documentation build 2020-02-06 17:51:47 +01:00
12353ff3d8 esp_timer/esp32: Fix case when alarm_reg > counter_reg but FRC_TIMER_INT_STATUS is not set
Closes: WIFI-1576
Closes: https://github.com/espressif/esp-idf/issues/2954
2020-02-06 14:43:40 +08:00
fc1119331a Merge branch 'bugfix/wps_config_init_v4.1' into 'release/v4.1'
WPS_CONFIG_INIT_DEFAULT(type) error

See merge request espressif/esp-idf!7443
2020-02-06 14:07:19 +08:00
7d30c6d799 WPS_CONFIG_INIT_DEFAULT(type) error 2020-02-06 14:07:14 +08:00
73384c1b52 Merge branch 'bugfix/idf_monitor_usbser_sys_v4.1' into 'release/v4.1'
tools: work around usbser.sys bug in IDF monitor (v4.1)

See merge request espressif/esp-idf!7469
2020-01-31 15:59:59 +08:00
c67c3aa14e pppos_client: Fix power_down dce immediately after got IP
This was accidently commited bug when convert to use esp-netif, fix it.

Fixes: 25913af2cc ("pppos_client: udated example code to use esp-netif in PPP configuration")
Signed-off-by: Axel Lin <axel.lin@gmail.com>

Merges https://github.com/espressif/esp-idf/pull/4618
2020-01-30 12:00:23 +00:00
70dee9f4bb tools/docker: enable ccache by default 2020-01-30 12:09:08 +01:00
bf6e745ac0 tools/docker: install CMake version provided in tools.json
Closes https://github.com/espressif/esp-idf/issues/4644
Closes IDFGH-2559
2020-01-30 12:09:08 +01:00
e89392596c idf_tools.py: fix typo in __PYVENV_LAUNCHER__ env variable name
Fixes the workaround added in 9279b72a6.
2020-01-30 11:51:59 +01:00
a8bec381bc tools: mark ULP toolchain as not available on 32-bit Linux
Also install ULP toolchain by default on ARM Linux.

Closes https://github.com/espressif/esp-idf/issues/4621
2020-01-30 11:49:39 +01:00
4f46828464 Merge branch 'bugfix/http_client_chunked_test_v4.1' into 'release/v4.1'
http_client: fix example test to expect -1 as content-len for chunked transfer (v4.1)

See merge request espressif/esp-idf!7456
2020-01-30 18:35:49 +08:00
15011e0d16 tools: work around usbser.sys bug in idf_monitor
implemented workaround in idf_monitor for known usbser.sys bug which
causes changes in RTS signal to only be sent if DTR signal also changes.
Works by forcing a dummy change in DTR signal (re-assigning its current
value, as it has previously been done in the flashing tool)

Closes https://github.com/espressif/esp-idf/pull/4676
2020-01-29 10:23:24 +01:00
7261e72ef7 http_client: fix example test to expect -1 as content-len for chunked transfer 2020-01-27 10:36:32 +01:00
aedf89237f Merge branch 'bugfix/select_driver_not_installed_v4.1' into 'release/v4.1'
VFS: Check in select() if the UART driver is installed or not (v4.1)

See merge request espressif/esp-idf!7416
2020-01-22 11:55:09 +08:00
7848dd949f Merge branch 'bugfix/backport_several_ethernet_bugfix' into 'release/v4.1'
Ethenret driver bugfix and optimization (4.1)

See merge request espressif/esp-idf!7427
2020-01-22 11:54:51 +08:00
ba26fdba4c Merge branch 'fix/ci_target_test_v4.1' into 'release/v4.1'
ci: Fix target variable default value (backport v4.1)

See merge request espressif/esp-idf!7425
2020-01-22 11:48:30 +08:00
1a3bb06916 ethernet: always put eth_driver handle in SRAM
Closes https://github.com/espressif/esp-idf/issues/4635
2020-01-21 21:45:24 +08:00
274b0b8d8a ethernet: work with cache disabled
add ETH_MAC_FLAG_WORK_WITH_CACHE_DISABLE flag, make ethenret driver
possible to work when cache disabled

Closes https://github.com/espressif/esp-idf/issues/4406
2020-01-21 21:45:04 +08:00
9dcb48b86b ci: Fix target variable default value
(cherry picked from commit 3748e06108bd3067b36c3b605feb6aaf438d98eb)
2020-01-21 17:55:23 +05:30
ee42e3d714 Merge branch 'nimble/example_update_doc_v4.1' into 'release/v4.1'
NimBLE: Update the documentation link in the examples (v4.1)

See merge request espressif/esp-idf!7367
2020-01-21 17:56:32 +08:00
c2a4dd0c68 VFS: Check in select() if the UART driver is installed or not
Closes https://github.com/espressif/esp-idf/issues/4627
2020-01-21 10:04:38 +01:00
3733c9f8e5 Merge branch 'bugfix/btdm_hci_timeout_v4.1' into 'release/v4.1'
Bugfix/btdm hci timeout v4.1

See merge request espressif/esp-idf!7339
2020-01-21 10:33:46 +08:00
38ff669727 components/bt: Fix error EIR type in config eir event 2020-01-20 21:47:23 +08:00
c324e7a435 components/bt: Fix connection fail and crash when receive unknown AT cmd 2020-01-20 21:43:23 +08:00
c62d5e942e Merge branch 'bugfix/enable_ipv6_address_autoconfig_v4.1' into 'release/v4.1'
lw-ip: Enable IPv6 stateless address autoconfiguration (backport v4.1)

See merge request espressif/esp-idf!7381
2020-01-20 21:09:19 +08:00
3e4e538087 fix bug sleep may cause HCI timeout
When Host run different cpu and sleep enable, it may cause hci
timeout about 10s.
2020-01-20 17:41:28 +08:00
b99a39535b lwip: Enable IPv6 stateless address autoconfiguration 2020-01-20 08:26:00 +00:00
f6523748fc fix Kconfig use mistake cause some config not effect
1. Fix bluedroid task pinned_to_core un-effected
2. other minor sdkconfig bugs
2020-01-20 15:24:41 +08:00
09b4bb5eba Merge branch 'bugfix/backport_some_wifi_bugs_0120_v4.1' into 'release/v4.1'
Bugfix/backport some wifi bugs 0120 v4.1

See merge request espressif/esp-idf!7390
2020-01-20 13:56:00 +08:00
e751c59d5d Merge branch 'bugfix/backport_some_controller_bugs_0120_v4.1' into 'release/v4.1'
Bugfix/backport some controller bugs 0120 v4.1

See merge request espressif/esp-idf!7391
2020-01-20 13:55:40 +08:00
c0e1f83a91 esp32 5p0 new features support 2020-01-20 12:18:55 +08:00
fd61f75db9 hfp disconn issue for bridgera 2020-01-20 12:18:26 +08:00
abe0225ef5 esp_wifi:Fix double recycle bar crash issue 2020-01-20 12:10:48 +08:00
b530b26e1b esp_wifi: esp_wifi_sta_get_ap_info function returns actual values of group cipher and pairwise cipher 2020-01-20 12:10:06 +08:00
51e208533e Merge branch 'bugfix/update_kconfiglib_v4.1' into 'release/v4.1'
tools: Update kconfiglib to 13.7.1 (v4.1)

See merge request espressif/esp-idf!7340
2020-01-20 09:23:10 +08:00
c014d32193 Bugfix(LEDC): Add missing ledc_set_pin declaration in led.h 2020-01-17 10:19:15 +08:00
19980ace1f NimBLE: Update the documentation link in the examples 2020-01-16 18:00:18 +05:30
3909208852 tools: Update kconfiglib to 13.7.1
This fixes the crash on MacOs under Python 3 and improves the menuconfig
colors on some terminals.
2020-01-14 09:30:05 +01:00
647cb628a1 Merge branch 'bugfix/btdm_fix_open_event_trigger_multiple_times' into 'master'
Component/bt: Fix GATTC trigger open event multiple times

See merge request espressif/esp-idf!7056
2020-01-14 16:05:49 +08:00
1512219905 Merge branch 'bugfix/test_psram_size' into 'master'
test: Move freertos & mbedtls tests to psram_2 config

See merge request espressif/esp-idf!7318
2020-01-14 15:11:09 +08:00
86bebae4fb Component/bt: Fix GATTC trigger open event multiple times 2020-01-14 03:24:29 +00:00
68be5f6ca7 Merge branch 'bugfix/assign_test' into 'master'
test: increase number of unit test jobs

See merge request espressif/esp-idf!7305
2020-01-14 11:21:28 +08:00
6662b60bc1 test: Move freertos & mbedtls tests to psram_2 config
Before:

psram before 2490560 (2490368 is the size allowed by partition)
psram after  2413136

psram_2 before 1218464
psram_2 after  1326320
2020-01-14 12:14:43 +10:00
ee269ed687 Merge branch 'bugfix/fatfs_corrupted_assert' into 'master'
fatfs: handle FR_INT_ERR as "filesystem corrupted"

Closes IDF-894

See merge request espressif/esp-idf!5912
2020-01-14 08:37:07 +08:00
e40c9684dc Merge branch 'bugfix/fix_rmt_err_interrupt_crash_bug' into 'master'
Bugfix(rmt):  Fix the rmt err interrupt crash bug

See merge request espressif/esp-idf!7282
2020-01-14 08:27:53 +08:00
4c065c217e driver(rmt): Fix the rmt err interrupt crash bug when sending 63 items 2020-01-13 08:30:20 +00:00
404d2ae908 test: increase number of unit test jobs 2020-01-13 16:13:44 +08:00
0a6e61ae6d Merge branch 'bugfix/btdm_fix_blufi_prepare_buf_len_invalid' into 'master'
component/bt: fix blufi prepare write buf len invalid

See merge request espressif/esp-idf!7048
2020-01-13 15:59:14 +08:00
f8e3bf4a7a Merge branch 'bugfix/mesh_ie_issues' into 'master'
mesh: fix mesh ie issues

See merge request espressif/esp-idf!7214
2020-01-13 15:58:00 +08:00
28d64e7f82 Merge branch 'bugfix/cmake_failure_on_spiffsgen_clean_project' into 'master'
spiffs: fix build issue on clean project

See merge request espressif/esp-idf!6596
2020-01-13 12:14:04 +08:00
0929c91d1a Merge branch 'bugfix/idf_monitor_windows_console' into 'master'
idf_monitor: Ignore OS-level errors writing to Windows Console

Closes IDF-810

See merge request espressif/esp-idf!5607
2020-01-13 12:13:42 +08:00
a5a5c318f9 Merge branch 'bugfix/mmap_fail_on_esp32s2beta' into 'master'
spi_flash: reenable mmap tests on esp32s2beta

See merge request espressif/esp-idf!6595
2020-01-13 12:02:55 +08:00
ec20cf01b5 Merge branch 'feature/wider_alignment_range_malloc' into 'master'
feature/wider alignment range malloc

Closes IDF-648

See merge request espressif/esp-idf!6691
2020-01-13 12:02:35 +08:00
42d7b1d641 Merge branch 'bugfix/mbedtls_esp_bignum' into 'master'
mbedtls: esp bignum fix for 4096 keys

See merge request espressif/esp-idf!7211
2020-01-13 12:01:23 +08:00
79f0d460f5 mesh: fix mesh ie issues
Fix an error of mesh deinit lock.
Fix mesh send returns TIMEOUT.
Increase root window close time to 120s.
Clear ie.child when the child connected or fully associated.
Update rc_rssi when roots direct/forward.
Fix assoc in mesh ie wrong.
Mesh packets use AC_VI instead of AC_BE.
2020-01-13 10:58:18 +08:00
a27dfe6993 Merge branch 'bugfix/fix_ble_config_error_log_in_first_use_nvs' into 'master'
bugfix: remove the error code when there is no file in the nvs in config.c

See merge request espressif/esp-idf!7296
2020-01-13 10:24:43 +08:00
216dac8721 Merge branch 'test/add_esp32s2beta_ssc_build_job' into 'master'
test: add build ssc job for esp32s2beta

See merge request espressif/esp-idf!7068
2020-01-13 10:19:48 +08:00
7a7c4a5486 Merge branch 'bugfix/coex_schm' into 'master'
Bugfix/coex schm

See merge request espressif/esp-idf!7176
2020-01-12 20:37:42 +08:00
a9cf334f0a Merge branch 'feature/Add_tcp_sack' into 'master'
feature for add tcp sack

Closes WIFI-1600

See merge request espressif/esp-idf!7241
2020-01-12 20:28:21 +08:00
3634192ded Merge branch 'bugfix/ble_throughput_heap_size_too_large_fix' into 'master'
bugfix:Fixed throughput wasting memory and packet loss issues.

Closes BT-437 and BCI-141

See merge request espressif/esp-idf!7063
2020-01-12 20:25:02 +08:00
8ec233dfd0 Merge branch 'bugfix/sync_zephyr_v2.0_ble_mesh_fixes' into 'master'
ble_mesh: sync Zephyr v2.0 ble mesh fixes

Closes BLEMESH-56

See merge request espressif/esp-idf!6892
2020-01-12 20:23:57 +08:00
ca979fb110 Merge branch 'bugfix/ci_deploy_tags' into 'master'
ci: fix tags for internal deploy jobs

See merge request espressif/esp-idf!7290
2020-01-11 14:08:26 +08:00
6a307ee70f heap: removed ptr check in diram area since aligned allocator does not support data allocated from IRAM 2020-01-10 10:15:32 -03:00
0d8a5ebec7 heap: added aligned calloc function plus tests 2020-01-10 10:05:28 -03:00
8e5ea171d3 newlib: reverted support of memalign function 2020-01-10 10:05:28 -03:00
45766daa4f test_multi_heap_host/test_multi_heap: fix undefined reference error when testing aligned_alloc with no heap poisoning 2020-01-10 10:05:28 -03:00
aa100d2dfe newlib: added heap_caps_aligned_alloc on bottom of memalign 2020-01-10 10:05:28 -03:00
a2db437c46 heap/heap_caps: Added tests for align allocation on both internal and external ram 2020-01-10 10:05:28 -03:00
7fbf4c74d7 heap/heap_caps: added initial, top level heap_caps_aligned_alloc and heap_caps_aligned_free 2020-01-10 10:05:27 -03:00
f31b8a8ab8 heap/multi_heap_poisoning: aligned alloc now working togheter with heap poisining code 2020-01-10 10:05:27 -03:00
8bd09429d3 heap/test_multi_heap_host: added initial tests for heap aligned alloc 2020-01-10 10:05:27 -03:00
d26ddaa644 heap/multi_heap: added initial implementation of aligned alloc function 2020-01-10 10:05:27 -03:00
38d962bb38 Add notes 2020-01-10 20:37:46 +08:00
3366467980 ble:set a esp api to get size of controller send packets buffer. 2020-01-10 20:32:07 +08:00
189cd21660 bugfix:Fixed throughput wasting memory and packet loss issues. 2020-01-10 20:32:07 +08:00
8e1a28940c ble:config.c remove the error code when there is no file in the nvs because it is not an error. 2020-01-10 20:04:10 +08:00
ac0c7cce9c ci: fix tags for internal deploy jobs 2020-01-10 17:36:52 +07:00
a05c00c2b3 Merge branch 'bugfix/esp_netif_get_dns' into 'master'
esp_netif: fix esp_netif_get_dns_info() to copy the entire ip_addr_t

Closes IDFGH-2472

See merge request espressif/esp-idf!7266
2020-01-10 17:51:29 +08:00
a2398f0dcc components/esp_wifi: improve coexistence performance according to specific WiFi/BT/BLE scienario
1. Improve WiFi throughput in some Classic BT scienarios(idle, inquire scan,
       connected, sniff, a2dp pause, etc).

    2. Support WiFi + Classic BT + BLE mesh coexistence scienario.

    3. Improve WiFi scan and connect succeed ratio in coexistence scienario.

    4. Do not support to choose software coexistence preference anymore for it is
       determined according to coexistence scienario automatically.

components/lwip: increase TCP send buffer and receive window limitation when TCP window scale is enabled

components/ble_mesh: Fix some bugs about ble mesh

    1. fix send acl pkt after ble have sent terminate ind modify min adv interval to 10ms.
2020-01-10 16:00:12 +08:00
c7738f24fc Merge branch 'bugfix/ledc_driver_enums' into 'master'
driver: Avoid possible accidental mismatch between ledc_clk_src_t & ledc_clk_cfg_t enum

See merge request espressif/esp-idf!7021
2020-01-10 15:34:43 +08:00
5aa21584cf Merge branch 'doc/ulp_cmake_fix' into 'master'
doc: Remove duplicate ulp-cmake

See merge request espressif/esp-idf!7259
2020-01-10 15:29:56 +08:00
0f9ab61619 Merge branch 'bugfix/fix_wifi_buffer_reload_issue' into 'master'
esp_wifi: fix WiFi buffer reload issue

Closes WIFI-1634

See merge request espressif/esp-idf!7230
2020-01-10 15:08:19 +08:00
2f23fa8ab7 Merge branch 'bugfix/bt_osi_config_snprintf_add_length_check' into 'master'
bugfix:Fix length check for snprintf in osi config

See merge request espressif/esp-idf!7155
2020-01-10 15:06:37 +08:00
8cf4d02720 Merge branch 'bugfix/ble_mesh_update_lightness_last' into 'master'
ble_mesh: Update lightness last state when actual state is changed

See merge request espressif/esp-idf!7206
2020-01-10 14:47:29 +08:00
782fc0df5f Merge branch 'refactor/can_driver' into 'master'
Refactor CAN to use HAL and LowLevel layers

Closes IDF-617

See merge request espressif/esp-idf!7019
2020-01-10 14:22:02 +08:00
21a7580dc1 test: update SSC bin path of nvs compatible test 2020-01-10 14:14:51 +08:00
bb442bd015 test: add build ssc job for esp32s2beta 2020-01-10 14:14:51 +08:00
b2404513db Merge branch 'doc/cmake_external_lib' into 'master'
docs: Add example of using IDF APIs from an external CMake library

See merge request espressif/esp-idf!6527
2020-01-10 14:13:07 +08:00
bdf6c00154 Merge branch 'feature/likely_unlikely' into 'master'
Adding likely unlikely macros to hot code paths

Closes IDF-284

See merge request espressif/esp-idf!6368
2020-01-10 14:05:07 +08:00
13f67d4279 doc: Remove duplicate ulp-cmake
This file was renamed in 62ed221 when CMake became default, but 8fe3ecd accidentally reintroduced it.

A redirect is still generated from ulp-cmake to ulp, so the old URL continues to work.
2020-01-10 16:38:06 +11:00
8bc618f070 Merge branch 'feature/sntp_add_desc' into 'master'
docs: Add System time chapter and for sntp a description about using...

Closes IDFGH-2237, IDF-1199, and IDF-38

See merge request espressif/esp-idf!6818
2020-01-10 13:29:47 +08:00
fb1dec37d8 spi_flash: reenable mmap tests on esp32s2beta 2020-01-10 16:17:01 +11:00
58755cc2f5 Merge branch 'doc/review_api-ref_periph-i2c' into 'master'
Review the file api-reference/peripherals/i2c.rst

See merge request espressif/esp-idf!6519
2020-01-10 13:13:23 +08:00
5ee92c259b Merge branch 'bugfix/mdns_fix_typos' into 'master'
mdns: fixed typos in the variable names and the comments

See merge request espressif/esp-idf!7060
2020-01-10 13:13:07 +08:00
214904b3af Merge branch 'feature/support_time_t_64_bit_test_' into 'master'
Support time_t 64-bits

Closes IDF-350

See merge request espressif/esp-idf!6367
2020-01-10 12:58:54 +08:00
2c793cef06 idf: Support a custom toolchain with time_t wide 64-bits
Allows resolving the Y2K38 problem.

Closes: IDF-350

Closes: https://github.com/espressif/esp-idf/issues/584
2020-01-10 12:58:54 +08:00
a39e8e5de9 Merge branch 'feature/asio_update' into 'master'
asio: updated ASIO port to use latest asio and esp-idf features

See merge request espressif/esp-idf!6623
2020-01-10 12:57:25 +08:00
426319c123 Merge branch 'feature/nvs_cxx_new' into 'master'
NVS: exposing C++ functionality via C++ handle

See merge request espressif/esp-idf!6926
2020-01-10 12:32:17 +08:00
880cc02ef2 Merge branch 'bugfix/mqtt_submodule_ref_update' into 'master'
MQTT: update submodule to point to latest commit.

Closes IDF-1162, IDF-1126, IDFGH-2197, IDFGH-2235, IDFGH-2293, FCS-254, and FCS-267

See merge request espressif/esp-idf!7216
2020-01-10 12:32:03 +08:00
6ab9f846c9 Merge branch 'bugfix/compare_and_setextram' into 'master'
bugfix/pthread: fix pthread_once() race condiion possibility adding critical section in compare and set function

Closes IDFGH-2448

See merge request espressif/esp-idf!7236
2020-01-10 12:29:54 +08:00
264abd8b34 Merge branch 'bugfix/esp32s2_xtal_choice' into 'master'
esp32s2:remove unsupported xtal choice

Closes IDF-1228

See merge request espressif/esp-idf!7085
2020-01-10 12:01:26 +08:00
c23549c04f docs: Add System time chapter and for sntp a description about using CONFIG_LWIP_SNTP_UPDATE_DELAY option
Closes: https://github.com/espressif/esp-idf/issues/4386
Closes: IDFGH-2237
Closes: IDF-1199
2020-01-10 14:49:07 +11:00
9ecc2c3309 Merge branch 'bugfix/fix_ble_mesh_memory_leak' into 'master'
ble_mesh: Fix memory leak when node is reset

Closes BLEMESH-122

See merge request espressif/esp-idf!7076
2020-01-10 11:43:49 +08:00
4847c2adb0 Merge branch 'docs/fix_tasK_create_static_doxygen_comment' into 'master'
Fixed error in return type of xTaskCreateStatic

Closes IDFGH-2185

See merge request espressif/esp-idf!7253
2020-01-10 11:41:15 +08:00
b98981e7ae Merge branch 'feature/call_with_shared_stack' into 'master'
Call with shared stack improvements

See merge request espressif/esp-idf!7228
2020-01-10 11:40:11 +08:00
0999f6d698 Merge branch 'bugfix/gh_issue_template' into 'master'
gh: remove default label on new issues

See merge request espressif/esp-idf!7267
2020-01-10 11:39:02 +08:00
4dee412191 Merge branch 'bugfix/fix_crash_when_send_udp_too_big' into 'master'
lw-ip: Drop packets larger than MTU

Closes WIFI-1524

See merge request espressif/esp-idf!7147
2020-01-10 11:37:00 +08:00
a559014ff0 Merge branch 'bugfix/coredump_bin_fmt_ver_update' into 'master'
Fixes coredump compatibility with legacy binary core dumps

See merge request espressif/esp-idf!6794
2020-01-10 10:04:17 +08:00
b7ef7feaeb newlib: using lwip implementation of interface name/index conversion
Links https://github.com/espressif/esp-idf/issues/3557
2020-01-09 21:53:50 +01:00
13d603e486 asio: updated ASIO port to use latest asio and esp-idf features
closes https://github.com/espressif/esp-idf/issues/4296
2020-01-09 21:53:50 +01:00
2efb3288a0 mbedtls: fix hw accelerated big-num mul if operand and result overlap
this issue is mainly exposed when using larger (4096) client key in TLS mutual auth,
since it uses multiplications > 2048 when mbedtls_mpi_mul_mpi is used in recursion,
which works only if both operands point to different location than result since
mpi_mult_mpi_overlong() called mbedtls_mpi_grow() to reallocate buffers used in previous
pointer arithmetics and thus corrupting it. Fixed by growing the mpi buffer before
calling mpi_mult_mpi_overlong()
2020-01-09 18:11:18 +00:00
b0a714476a mbedtls: added mpi multiplication test for large numbers 2020-01-09 18:11:18 +00:00
1acf4d46ef mbedtls: bugnum test for rsa operations with blinding 2020-01-09 18:11:18 +00:00
1fd7f21d8c Merge branch 'bugfix/IDFGH-2036_2' into 'master'
Tools Setup: fixed WD task checkbox disabling

Closes IDFGH-2036

See merge request espressif/esp-idf!7204
2020-01-09 22:39:48 +08:00
8a687d46ad reduce useless calloc size 2020-01-09 21:12:48 +08:00
945e4f7162 bugfix:Fix length check for snprintf in osi config 2020-01-09 21:12:48 +08:00
57edda15a0 shared_stack: added minimal stack size for shared stack, configurable via menuconfig 2020-01-09 09:59:00 -03:00
ecca39e19f mdns: fixed typos in the variable names and the comments 2020-01-09 12:50:13 +00:00
e8787fc49e mqtt: update submodule to point to latest commit.
Adds bugfixes for:
 - Too early publishing
 - Potential mutex memory leak
 - CI related issues.
 - Wait for entire connack message
 - Event loop not getting cleaned up

Adds support for ALPN, configurable reconnect time, QEMU CI tests and password
protected client key.

MQTT MR: https://gitlab.espressif.cn:6688/espressif/esp-mqtt/merge_requests/46
Closes IDF-1162
Closes https://github.com/espressif/esp-mqtt/issues/137

MQTT MR: https://gitlab.espressif.cn:6688/espressif/esp-mqtt/merge_requests/47
Closes IDF-1126

MQTT MR: https://gitlab.espressif.cn:6688/espressif/esp-mqtt/merge_requests/48
Closes IDFGH-2197
Closes https://github.com/espressif/esp-idf/issues/4349
Closes https://github.com/espressif/esp-mqtt/issues/140

MQTT MR: https://gitlab.espressif.cn:6688/espressif/esp-mqtt/merge_requests/48
Closes IDFGH-2235
Closes https://github.com/espressif/esp-idf/issues/4384

MQTT MR: https://gitlab.espressif.cn:6688/espressif/esp-mqtt/merge_requests/49
Closes https://github.com/espressif/esp-idf/issues/4433
Closes IDFGH-2293

MQTT MR: https://gitlab.espressif.cn:6688/espressif/esp-mqtt/merge_requests/50
Closes FCS-254

MQTT MR: https://gitlab.espressif.cn:6688/espressif/esp-mqtt/merge_requests/53
Closes FCS-267
2020-01-09 11:35:49 +00:00
d286876d34 NVS: expose C++ API
Closes https://github.com/espressif/esp-idf/issues/3540
2020-01-09 18:29:23 +08:00
b820b3fc56 component/bt: fix blufi prepare write buf len invalid 2020-01-09 09:38:35 +00:00
28bfc93419 gh: remove default label on new issues 2020-01-09 17:07:34 +08:00
c5f77cf6cb Review the file api-reference/peripherals/i2c.rst 2020-01-09 17:04:41 +08:00
6655fa8a93 Merge branch 'bugfix/btdm_btc_bta_unified_count_pointer_type' into 'master'
component/bt: Fix the issue with pointer type conversion in gattc.

Closes BCI-130

See merge request espressif/esp-idf!6815
2020-01-09 16:30:56 +08:00
090843fa17 component/bt: Fix the issue with pointer type conversion in gattc. Unified count pointer type in bta and btc, change pointer type in bta from int to uint16_t. 2020-01-09 16:30:55 +08:00
92087edbb8 esp_netif: fix esp_netif_get_dns_info() to copy the entire ip_addr_t
closes https://github.com/espressif/esp-idf/issues/4584
closes IDFGH-2472
2020-01-09 09:17:38 +01:00
a049e02d96 can: Refactor CAN to use HAL and LowLevel layers
The following commit refactors the CAN driver such that
it is split into HAL and Lowlevel layers. The following
changes have also been made:

- Added bit field members to can_message_t as alternative
  to message flags. Updated examples and docs accordingly
- Register field names and fields of can_dev_t updated
2020-01-09 16:13:51 +08:00
dd8db6621b Merge branch 'bugfix/add_missing_gatt_descriptors_GH' into 'master'
bugfix: ble add missing gatt descriptors

Closes BCI-138

See merge request espressif/esp-idf!6978
2020-01-09 15:57:08 +08:00
c7dfb435f8 Fixed error in return type of xTaskCreateStatic*
Signed-off-by: Darian <darian@espressif.com>

Merges https://github.com/espressif/esp-idf/pull/2651
2020-01-09 14:01:20 +08:00
d8d2991692 feature for add tcp sack 2020-01-09 13:58:08 +08:00
3750fe945f esp_wifi: fix WiFi buffer reload issue 2020-01-09 13:42:27 +08:00
4ece6eedae Merge branch 'bugfix/ws_rcv_exceed_buf' into 'master'
tcp_transport/ws_client: websockets now correctly handle messages longer than buffer

Closes IDF-1084 and IDF-1083

See merge request espressif/esp-idf!6740
2020-01-09 13:18:31 +08:00
1ffb546135 esp32s2:remove unsupported xtal choice
ESP32-S2 only supports 40MHz XTAL and doesn't have XTAL autodetection.
2020-01-09 13:09:21 +08:00
da877bcc8f Merge branch 'bugfix/coex_bt_ble_stuck' into 'master'
components/bt: Fix A2DP stuck when BLE's interval is too small

See merge request espressif/esp-idf!5587
2020-01-09 11:37:35 +08:00
e1833fa3de docs: Add example of using IDF APIs from an external CMake library 2020-01-09 13:51:30 +11:00
dba3c241a9 Merge branch 'feature/nvs_storage_copy_part_name' into 'master'
NVS: partition name is copied now

Closes IDF-1231

See merge request espressif/esp-idf!6933
2020-01-09 10:42:25 +08:00
ca8fac876f Merge branch 'refactor/move_esp_adapter' into 'master'
esp_wifi: Move wifi OS adapter structures into esp_wifi component

See merge request espressif/esp-idf!6546
2020-01-09 07:35:19 +08:00
baac6145cd Merge branch 'bugfix/task_delay_until_esp32_s2' into 'master'
bugfix/freertos: fixing task delay until tests for esp32s2

Closes IDF-1016

See merge request espressif/esp-idf!6598
2020-01-09 07:17:09 +08:00
7e7f867d6e Merge branch 'minor/esp_ble_mesh_onoff_state' into 'master'
ESP-BLE-Mesh: Printf the current on/off state to the application during the GET request

See merge request espressif/esp-idf!6826
2020-01-08 22:28:25 +08:00
8aeacd7478 ESP-BLE-Mesh: Printf the current on/off state to the application during the GET request 2020-01-08 22:28:25 +08:00
b4c7c1b3fb components/freertos: moved task delay until tests to common test directory for esp32 and esp32-s2 2020-01-08 10:57:37 -03:00
b06f251c3b Merge branch 'bugfix/from_github' into 'master'
Fix typos in README

See merge request espressif/esp-idf!7231
2020-01-08 20:58:16 +08:00
6070f610cc Implement review comments 2020-01-08 18:41:43 +08:00
21e24aef1d Merge branch 'bugfix/sniff_mode_for_hfp' into 'master'
components bt/: Disable sniff mode during (e)SCO connection for HFP.

See merge request espressif/esp-idf!7017
2020-01-08 16:28:19 +08:00
459b3195ac esp_wifi: Move esp32 DPORT access wrappers into esp_wifi component 2020-01-08 18:23:29 +11:00
b63d28730c ci: Use real esp32s2beta target for all tests 2020-01-08 18:23:29 +11:00
65dad0d46f build system: Remove some dependencies from esp32 & esp32s2beta
Possible now that wifi related source files are all in esp_wifi
2020-01-08 18:13:12 +11:00
f616d2f2de esp_wifi: Move wifi OS adapter structures into esp_wifi component 2020-01-08 18:13:12 +11:00
5cd1f5e7c1 Merge branch 'bugfix/esp_tls_client_key_password' into 'master'
tcp_transport/esp-tls: support for client-key password

Closes FCS-267

See merge request espressif/esp-idf!7151
2020-01-08 14:40:38 +08:00
717674e2c2 Merge branch 'bugfix/softap_prov_disconnect' into 'master'
Bugfix/softap prov disconnect

See merge request espressif/esp-idf!7205
2020-01-08 12:30:42 +08:00
7e54ac08e6 ble Fix typo and add some comment 2020-01-08 04:17:49 +00:00
efc514fa0a add missing gatt descriptors 2020-01-08 04:17:49 +00:00
2e7e05a79a Merge branch 'bugfix/fix_amsdu_decrypt_bug' into 'master'
esp_wifi: fix a WiFi A-MSDU decrypt bug

Closes WIFI-1611

See merge request espressif/esp-idf!7157
2020-01-08 11:15:44 +08:00
8421114264 Merge branch 'feat/ut_disabled_for_targets' into 'master'
ut: use DISABLED_FOR_TARGETS macro in unit tests

See merge request espressif/esp-idf!7117
2020-01-08 09:22:29 +08:00
9800750f15 freertos/port: Put critical sections around uxPortCompareSetExtram() to prevent preemption during its execution.
Closes: https://github.com/espressif/esp-idf/issues/4561
2020-01-07 10:53:30 -03:00
868f317c19 wifi_prov_manager: Delay the Wi-Fi connect call
For SoftAP provisioning, if we start Wi-Fi connection as soon as the
apply config request is received, it has been observed that the clients
(Phone apps mostly) do not get the response for this as we switch the
Wi-Fi channel, causing a momentary disconnection.

Delaying the connection calls helps mitigate the issue.

Signed-off-by: Piyush Shah <piyush@espressif.com>
2020-01-07 09:51:54 +00:00
c4fb524d03 wifi_prov_manager: Change the name of an internal timer handle to better reflect the purpose
Signed-off-by: Piyush Shah <piyush@espressif.com>
2020-01-07 09:51:54 +00:00
71b4768df8 Merge branch 'doc/secure_boot_ref' into 'master'
doc: secure boot: Fix relative reference to key generation step

See merge request espressif/esp-idf!7171
2020-01-07 16:01:09 +08:00
262ce6b9c6 Merge branch 'bugfix/pthread_examples' into 'master'
Fix syntax errors on examples contained in esp_pthread documentation

Closes IDF-1313

See merge request espressif/esp-idf!7194
2020-01-07 14:41:06 +08:00
3b9c8a6677 Merge branch 'bugfix/netif_cpp_issues' into 'master'
esp_netif c++ fixes

See merge request espressif/esp-idf!7045
2020-01-07 14:34:57 +08:00
6f2a00c425 doc: secure boot: Fix relative reference to key generation step 2020-01-07 06:14:03 +00:00
23e6ee9d01 Fix typos in README
Fix a broken link as well as updating the text.

Merges https://github.com/espressif/esp-idf/pull/4531
2020-01-07 13:12:13 +08:00
8bfb32735f Merge branch 'bugfix/use_mbedtls_spiram_strategy' into 'master'
Use mbedtls SPIRAM strategy in example_test.py

Closes IDF-1293

See merge request espressif/esp-idf!7132
2020-01-07 11:37:08 +08:00
39a5eb84f3 Disable sniff mode during (e)SCO connection. 2020-01-07 03:15:32 +00:00
e890137ad3 Merge branch 'bugfix/cmake_reflashable_build_targets' into 'master'
secure boot: Fix bootloader build system target for bootloader digest

Closes IDFGH-2396

See merge request espressif/esp-idf!7069
2020-01-07 06:40:33 +08:00
b69ac4448e tcp_transport: added API for client-key password 2020-01-06 21:16:24 +00:00
c309112b8a expression_with_stack:make stack overflow detection watchpoint optional 2020-01-06 17:01:53 -03:00
bc43d48ec9 * use 'Windows Defender' substring to identify proper checkbox
https://github.com/espressif/esp-idf/issues/4225
2020-01-06 15:09:56 +01:00
f9802da461 components/bt: Fix A2DP stuck when BLE's interval is too small
1. Fix the cumulative time switch from BLE to classic BT
2. Enhance classic BT performance while enable calssic BT and BLE at the same time
2020-01-06 20:22:04 +08:00
c54e11537f esp_wifi: fix WiFi AMSDU decrypt issue 2020-01-06 17:58:03 +08:00
0a8c641e6f Merge branch 'bugfix/sniffer_crash_issue' into 'master'
esp_wifi: wifi stop bug when sniffer enable

Closes WIFI-1563 and WIFI-1137

See merge request espressif/esp-idf!7187
2020-01-06 17:22:01 +08:00
ffeda3003c tcp_transport/ws_client: websockets now correctly handle messages longer than buffer
transport_ws can now be read multiple times in a row to read frames larger than the buffer.

Added reporting of total payload length and offset to the user in websocket_client.

Added local example test for long messages.

Closes IDF-1083
2020-01-06 17:18:13 +08:00
f676a3b190 driver, soc: update multichip support headers 2020-01-06 17:13:54 +08:00
4220752aed ut: Move tests back from "esp32" subfolder
DISABLED_FOR_TARGETS macros are used

Partly revert "ci: disable unavailable tests for esp32s2beta"

This partly reverts commit 76a3a5fb48.

Partly revert "ci: disable UTs for esp32s2beta without runners"

This partly reverts commit eb158e9a22.

Partly revert "fix unit test and examples for s2beta"

This partly reverts commit 9baa7826be.

Partly revert "efuse: Add support for esp32s2beta"

This partly reverts commit db84ba868c.
2020-01-06 17:13:53 +08:00
bc0eac579c ut: add DISABLED_FOR_TARGETS macros to control ut building 2020-01-06 17:13:47 +08:00
lly
8116a787cd ble_mesh: Fix PreviousAddress endianess in Friend Request
The upper transport layer is using big endian ordering. The
PreviousAddress field of a Friend Request message should therefore
be converted to native endianess using sys_cpu_to_be16().
2020-01-06 16:19:03 +08:00
lly
fc80d107ad ble_mesh: Fix next_period computation
If the duration to publish is roughly the same as the period, we might
end up with elapsed == period, which returns 0 and cancel the periodic
publication. Instead 1 should be returned, just like when the elapsed
time is greater than the period.
2020-01-06 16:17:36 +08:00
lly
7d7bbec5fe ble_mesh: Make model publication struct more compact
Previously the FastPeriodDivisor value was introduced to the model
publication struct. Based on the way it was grouped it seems the
intention was to fit it within the same octet as other bit fields,
but it actually makes the octet overflow by one bit. This ends up
creating another u8_t variable which in turn adds 24 bits of padding
after it.

To keep the size of the struct as compact as possible, group the flag
together with the key index, since that only requires 12 bits. Some
care is needed here, since the mesh stack does have special internal
key index values that require more than 12 bits such as
BLE_MESH_KEY_UNUSED and BLE_MESH_KEY_DEV. In this case restricting
ourselves to 12 bits is fine since the value in the model publication
struct follows 1:1 the value received in the Config Model Publication
Set message, and there the parameter is defined to be exactly 12 bits.
2020-01-06 16:17:36 +08:00
lly
82b4b89dea ble_mesh: Fix compile error when using release optimization level 2020-01-06 16:17:36 +08:00
lly
b836674d8e ble_mesh: Remove useless CONFIG_BLE_MESH_NODE
For Low Power node and Proxy Server, the two features
depend on BLE_MESH_NODE in Kconfig.in, here in the
stack there is no need to judge if CONFIG_BLE_MESH_NODE
is enabled.
2020-01-06 16:17:36 +08:00
lly
d83c37faed ble_mesh: Fixes Provisioner not support friend feature 2020-01-06 16:17:36 +08:00
lly
77e7d023b9 ble_mesh: Fixes wrong subnet info used for Friend Clear
When Friend node tries to send Friend Clear message to other
Friend nodes, it should use the subnet information based on
the net_idx from friendship.
2020-01-06 16:17:36 +08:00
lly
131a4e7c22 ble_mesh: fix provisioner failed to send msg to 0xFFFF
According to Mesh Spec 3.4.5.3, a node shall implement a local
network interface. And here we limit the situation just based
on the spec, and Provisioner directly sending the msg without
passing through the local network interface.
2020-01-06 16:17:36 +08:00
lly
197e54053e ble_mesh: fix virtual addr wrong return value
Fixes missing return value on `va_del`
Fixes wrong return value on `va_add`
2020-01-06 16:17:36 +08:00
lly
e8440ac2f9 ble_mesh: Persistent storage of Virtual Address
The 16-bit format group addresses will be stored,
but we don't store (or restore) the virtual label UUIDs,
i.e. after a power cycle the 16-bit group addresses
would be meaningless.
2020-01-06 16:17:36 +08:00
lly
74d0bd3134 ble_mesh: Proxy forwards ALL_NODES addr
Unless explicitly blacklisted, the Proxy node will forward all messages
for the ALL_NODES address to the GATT proxy client.
2020-01-06 16:17:36 +08:00
lly
1338fc4ff1 ble_mesh: Model message macros
Creates macros for determining model message lengths based on opcode,
payload length and MIC size. Also adds macro wrapping
NET_BUF_SIMPLE_DEFINE to serve the most common use case.
2020-01-06 16:17:36 +08:00
lly
f3b9b099cd ble_mesh: Use net_buf_simple_clone
Uses net_buf_simple_clone to access the sdu of an unsegmented app packet
for re-encryption.
2020-01-06 16:17:36 +08:00
lly
aec696a3a4 ble_mesh: Skip local messages in rx
Local messages are already enqueued for the LPN in the tx path, and
don't have to be added again in the rx path.
2020-01-06 16:17:36 +08:00
lly
6516ab71ea ble_mesh: Ensure seqnum match in app/net
Re-encrypts single-segment application messages when the network seqnum
has changed, to avoid encrypting messages with different seqnums in
network and transport. This operation is only required for unsegmented
messages, as segmented messages don't need to use the same seqnum in
network.

Reinstates the special adv data for friend messages to store the app key
index.
2020-01-06 16:17:36 +08:00
lly
b88dbf6348 ble_mesh: Expose app key get function 2020-01-06 16:17:36 +08:00
lly
906fb9d6e3 ble_mesh: Expose header parsing outside net 2020-01-06 16:17:36 +08:00
lly
865434e6de ble_mesh: Remove unused macro FRIEND_BUF_SIZE 2020-01-06 16:17:36 +08:00
lly
67cb3062a6 ble_mesh: Make RSSI value available to mesh applications 2020-01-06 16:17:36 +08:00
lly
89a681fd4a ble_mesh: Encrypt friend packets on send
Stores friend queue packets unencrypted, removing any out-of-order
issues caused by seqnum allocation. Also moves as much of the metadata
storage as possible into the packet, allowing us to free up some bytes
of net_buf user data for friend packets.
2020-01-06 16:17:36 +08:00
lly
99a63ce81d ble_mesh: Expose SeqZero mask
Makes a define for the seqzero 13-bit mask in transport, and exposes it
in the header for use in the friend module.
2020-01-06 16:17:36 +08:00
826b9f6380 Merge branch 'bugfix/wifi_event_bits' into 'master'
examples: station waiting with xEventGroup bits

Closes IDF-1177

See merge request espressif/esp-idf!7196
2020-01-06 12:09:18 +08:00
lly
9f6dd19033 ble_mesh: Update lightness last state when actual state is changed 2020-01-04 14:57:08 +08:00
5db46ab9e6 assert: extend likely macro to be called when silent assertions are off 2020-01-03 14:42:58 -03:00
d059a955ae freertos: removed likely macros from non-port specifics parts of freertos
fatfs: moved esp_compiler header file inside of disk implementation file
2020-01-03 14:42:57 -03:00
668b33dcf3 esp_compiler: generate likely and unlikely macros only when performance optimization is selected as build option 2020-01-03 14:42:57 -03:00
1b76253e0e newlib/assert: placed unlikely macro as part of assertion
newlib/assert: replace unlikely with likely to keep original assertion

newlib/assert: fix assert macro that uses likely

freertos/port: add the missing sdkconfig.h back

newlib/assert: assert macro back to a single line
2020-01-03 14:42:55 -03:00
fc00236d79 components/esp_common: added esp_macros.h that aims to hold useful macros
esp_common/esp_compiler: renamed esp_macros file to a more specific one

esp_common/esp_compiler: removed CONTAINER_OF macro, it was a duplicate

components/freertos: placed likely macros around port and critical sections

component/freertos: placed likely macros on lists module

components/freertos: placed unlikely macros inside of assertion points, they likely wont fail

components/freertos: added likely macros on queue modules

FreeRTOS queues are one of most hot code path, because to queues itself tend to
be used a lot by the applications, besides that, queues are the basic primitive
to form both mutexes and semaphores, The focus here is to place likely
macros inside lowest level send and receive routines, since they're common
from all kobjects: semaphores, queues, mutexes and FR internals (like timer queue)

components/lwip: placed likely/unlikey on net-interfaces code

components/fatfs: added unlikely macros on disk drivers code

components/spiffs: added unlikely macros on low level fs driver

components/freertos: added likely/unlikely macros on timers and ticker

freertos/event_group: placed likely/unlikely macros on hot event group code paths

components/sdmmc: placed likely / unlikely macros on lower level path of sdmmc

components/bt: placed unlikely macros around bt HCI functions calling

components/lwip: added likely/unlikely macros on OS port code section

components/freertos: fix code style on tick handler
2020-01-03 14:42:49 -03:00
e5e8ee8912 docs: fix esp_pthread example syntax error 2020-01-03 11:21:35 -03:00
563175d90a mbedtls: Use SPIRAM strategy in example_test.py 2020-01-03 15:30:03 +05:30
3c5190aefc Merge branch 'bugfix/legacy_msys2_environment' into 'master'
doc: Update the legacy MSYS2 environment to use 2019r2 toolchain version

See merge request espressif/esp-idf!7077
2020-01-03 17:53:55 +08:00
52f8aa2adb Merge branch 'feature/heap_non_os_build' into 'master'
heap: make compatible with non-OS builds, remove target dependence

Closes IDF-1236

See merge request espressif/esp-idf!7051
2020-01-03 17:12:51 +08:00
3321999e4a lwip: Drop packets larger than MTU 2020-01-03 08:55:35 +00:00
ea1b821a60 Fix wifi stop bug when sniffer enable 2020-01-03 08:52:56 +00:00
bcefbb03ad examples: using xEventGroup bits properly
Closes IDF-1177

* changed
  ../../wifi/getting_started/station/README.md
  ../../wifi/getting_started/station/main/station_example_main.c
2020-01-03 16:10:27 +08:00
e08e720e11 Merge branch 'bugfix/esp_ptr_executable_single_core' into 'master'
soc: Fix esp_ptr_executable() for single core ESP32 config & cache memory

See merge request espressif/esp-idf!7197
2020-01-03 15:47:18 +08:00
7dc7557aa9 soc: Fix esp_ptr_executable() for single core ESP32 config & cache memory
In single core mode, APP CPU cache region is added to the available range.
2020-01-03 17:31:40 +11:00
e08fc62071 Merge branch 'bugfix/backtrace_rom_fn' into 'master'
soc: fix backtraces containing ROM functions

See merge request espressif/esp-idf!6719
2020-01-03 14:30:21 +08:00
3a451afb82 doc: Update the legacy MSYS2 environment to use 2019r2 toolchain version
As reported at https://www.esp32.com/viewtopic.php?p=52805
2020-01-03 06:05:00 +00:00
4b03fa3053 Merge branch 'feature/idf_size_py_json_dump' into 'master'
idf_size.py: can write data to json file now

Closes IDF-1246

See merge request espressif/esp-idf!7046
2020-01-03 11:19:56 +08:00
4132923ebe Merge branch 'bugfix/ws_user_context' into 'master'
websocket: added missing event data

Closes IDF-1271

See merge request espressif/esp-idf!7059
2020-01-03 09:29:41 +08:00
43de2cc84c test: add a (non-automated) case for backtraces with ROM functions 2020-01-02 18:50:32 +01:00
b4aba189ab heap: recognize 0x40000000 as an address terminating the backtrace
On Xtensa, backtrace can not recover the two most significant bits of
the address, as the window call size is encoded in these bits.
Because of this, __builtin_return_address modifies these MSBs to
match those of the callee, "fixing" the address. An unfortunate side
effect is that the zero return address, which usually terminates the
backtrace, gets converted to 0x40000000. While there is a valid
instruction at this address, its occurrence in the backtrace is
highly unlikely: this is the first instruction of WindowOverflow4
vector, and IDF apps switch VECBASE to an IRAM location very early at
startup.
2020-01-02 18:42:46 +01:00
d9534b3d6a soc: fix backtraces containing ROM functions
esp_ptr_executable would return false for pointers to ROM, which would
interrupt the backtrace. This makes ROM ranges recognized as
executable.
2020-01-02 18:42:46 +01:00
b2c8ce8e2b esp_netif: fixed initialization order of items in a struct
Closes https://github.com/espressif/esp-idf/issues/4389
Closes https://github.com/espressif/esp-idf/issues/4507
2020-01-02 17:16:47 +00:00
ddf59520c6 wifi: fixed missing c++ guards
Closes https://github.com/espressif/esp-idf/issues/4497
2020-01-02 17:16:47 +00:00
97c8b90083 Merge branch 'bugfix/advanced_https_ota_example' into 'master'
Bugfix for failing OTA example

Closes IDF-1080 and IDFGH-2249

See merge request espressif/esp-idf!6979
2020-01-02 17:29:35 +08:00
53aadafac8 idf_size.py: can alternatively write data to file
* Also Changed json separators - no spaces at eol
2020-01-02 09:33:51 +08:00
c31c45cae7 NVS: partition name is copied now
Closes IDF-1231
2020-01-02 09:18:24 +08:00
2cb7534bc5 Merge branch 'bugfix/gh_python_lint' into 'master'
gh-action:fix python lint

See merge request espressif/esp-idf!7149
2020-01-02 07:19:50 +08:00
8f98c3746a ci: increase parallel count for esp32s2 unitest 2020-01-01 13:58:50 +08:00
13b98e17a6 ci: enable python2 lint 2020-01-01 13:04:50 +08:00
e51bd6deaf gh-action:fix python lint 2020-01-01 12:56:33 +08:00
f30e920116 Merge branch 'bugfix/esp32s2beta_fix_wifi_init_crash' into 'master'
Fix ESP32S2BETA WiFi initialization crash issue

Closes WIFI-1597

See merge request espressif/esp-idf!7154
2019-12-31 17:57:41 +08:00
032a041395 Bugfix for failing OTA example
example_test.py is added to test advanced_https_ota_example and native ota_example.

Closes https://github.com/espressif/esp-idf/issues/4394
2019-12-31 14:18:16 +05:30
17b5df4d72 Merge branch 'feature/function_call_with_stack' into 'master'
esp_common: added a macro to allow call functions using user allocated stack

Closes IDF-535

See merge request espressif/esp-idf!6709
2019-12-31 15:08:27 +08:00
cf2f732b2c Merge branch 'bugfix/heap_tests_esp32s2beta' into 'master'
bugfix/heap test failure fixing for esp32s2 beta

Closes IDF-1021

See merge request espressif/esp-idf!6659
2019-12-31 15:03:01 +08:00
c55643b855 Merge branch 'docs/translate_network_docs' into 'master'
Add translation for Network files

Closes WIFI-873

See merge request espressif/esp-idf!7058
2019-12-31 14:53:56 +08:00
1b740c55a3 Add translation for Network files 2019-12-31 14:53:55 +08:00
91f953eba2 Merge branch 'bugfix/fix_python3_errors_for_ttfw' into 'master'
test: fix python3 errors for ttfw

See merge request espressif/esp-idf!7139
2019-12-31 14:45:15 +08:00
d4366e0e05 Merge branch 'bugfix/pthread_cxx_test_race' into 'master'
test: Fix possible race in pthread C++ test

Closes IDF-1270

See merge request espressif/esp-idf!7054
2019-12-31 07:06:54 +08:00
2087a1805b Merge branch 'bugfix/idf_size_peformance_pr4518' into 'master'
Improve idf-size performance substantially (PR)

Closes IDFGH-2404

See merge request espressif/esp-idf!7148
2019-12-31 07:06:22 +08:00
4ae9dad9a3 Merge branch 'bugfix/panic_cache_err_dig_reset' into 'master'
esp32: panic: do digital reset if cache error interrupt is set

See merge request espressif/esp-idf!7152
2019-12-31 07:04:22 +08:00
269af21ce6 test: fix multiple devices cases fail on python3 2019-12-30 20:21:00 +08:00
07f186a6a5 CI: reduce number of unit test jobs 2019-12-30 20:21:00 +08:00
f63e91b950 test: let unit test jobs use python3 2019-12-30 20:20:14 +08:00
8df08de486 ttfw: fix incorrect relative import for python3 2019-12-30 20:20:14 +08:00
c3eb27e1e8 Merge branch 'nimble/update_doc_link' into 'master'
NimBLE: Update the link to NimBLE upstream documentation

See merge request espressif/esp-idf!7156
2019-12-30 20:05:38 +08:00
cca2613a01 NimBLE: Update the link to NimBLE upstream documentation 2019-12-30 20:05:37 +08:00
4bbfa6e494 Merge branch 'feature/soc_ledc_caps' into 'master'
soc: add ledc_caps.h, replace target-based ifdefs with caps-based

See merge request espressif/esp-idf!6858
2019-12-30 18:47:11 +08:00
9e93b619d9 Merge branch 'bugfix/coredump_epc_level' into 'master'
core dump: only get EPC/EPS registers up to XCHAL_NUM_INTLEVELS

See merge request espressif/esp-idf!7064
2019-12-30 18:45:59 +08:00
f2f008e167 Merge branch 'bugfix/xt_context_save' into 'master'
freertos: save/restore PS and EPC1 around window spilling, fixes setjmp regression

Closes IDFGH-2428

See merge request espressif/esp-idf!7135
2019-12-30 18:05:25 +08:00
b7e3886bf2 Fix ESP32S2BETA WiFi initialization crash issue
ESP32S2BETA does not need to enable WiFi common clock in WiFi library, for
WiFi common clock is not disabled when WiFi is in sleep state.
2019-12-30 16:51:12 +08:00
f52952cb45 esp32: panic: do digital reset if cache error interrupt is set
Even if frame->exccause != PANIC_RSN_CACHEERR, it is possible that
the cache error interrupt status is set. For example, this may happen
due to an invalid cache access in the panic handler itself.
Check cache error interrupt status instead of frame->exccause to
decide whether to do CPU reset or digital reset.

Also remove unnecessary esp_dport_access_int_pause from
esp_cache_err_get_cpuid, since the panic handler already calls
esp_dport_access_int_abort on entry.
2019-12-30 09:49:07 +01:00
874cfda54c idf_size.py: Major performance improvements
Merges https://github.com/espressif/esp-idf/pull/4518
2019-12-30 17:14:49 +11:00
03f6179211 Merge branch 'bugfix/app_partition_sha_values' into 'master'
bootloader_support: Fix for app SHA-256 calculation, chip revision log spam

See merge request espressif/esp-idf!6862
2019-12-30 12:45:30 +08:00
bc02b128be Merge branch 'feature/add_eth_download_test' into 'master'
ethernet: test download blob && phy addr auto detect

Closes IDF-1238

See merge request espressif/esp-idf!6957
2019-12-30 11:52:40 +08:00
ba3f47efd6 bootloader_support: fix crash in image verification is SHA doesn't match 2019-12-30 13:48:11 +11:00
b2ed553bbf bootloader_support: Reduce log spam about chip revisions
* Don't bother checking the chip revision if it looks like the partition
  doesn't really contain an app
* Don't print the "info" level about the revision & min revision unless
  we're in the bootloader (otherwise it gets printed at random times
  during the OTA process)
2019-12-30 13:48:11 +11:00
5139934767 bootloader_common: Fix esp_partition_get_sha256(), add unit tests
Regression in 438d513a95

Reported here: https://esp32.com/viewtopic.php?f=13&t=13250&p=52460
2019-12-30 13:47:47 +11:00
2303dfaffc Merge branch 'doc/review_api-ref_periph-i2s' into 'master'
Reveiw the file api-reference/peripherals/i2s.rst

See merge request espressif/esp-idf!6750
2019-12-30 05:59:49 +08:00
ab6311c548 Reveiw the file api-reference/peripherals/i2s.rst 2019-12-29 21:05:57 +00:00
c8b839b3d5 Merge branch 'bugfix/btdm_revert_changes_of_security_mask' into 'master'
components/bt: Revert changes of security mask

See merge request espressif/esp-idf!7118
2019-12-29 14:12:27 +08:00
e4d45608d3 soc: add ledc_caps.h, replace target-based ifdefs with caps-based 2019-12-28 20:33:21 +00:00
lly
3b9fe36494 ble_mesh: Fix memory leak when node is reset
When node is being reset, the init functions of each sig-defined
models will be invoked again, this will cause memory leak because
some model internal data will be allocated again.
Hence before trying to allocate memory for them, we add some check
to make sure no memory has been allocated previously.
And for client model, when the init functions are invoked again,
we will clear the list items.
2019-12-28 08:00:44 +00:00
3285ed116d heap: make compatible with non-OS builds, remove target dependence 2019-12-27 12:40:06 +01:00
6c0044cc65 Merge branch 'bugfix/rtc_cntl_h_cpp_guards' into 'master'
Add missing extern "C" to rtc_cntl.h

Closes IDFGH-2419

See merge request espressif/esp-idf!7093
2019-12-27 19:21:06 +08:00
acca61c714 Merge branch 'bugfix/spiffs_partition_label_usage' into 'master'
spiffs: clarify the usage of partition_label, fix the example

Closes IDFGH-2313

See merge request espressif/esp-idf!7092
2019-12-27 19:20:46 +08:00
0682575458 Merge branch 'bugfix/heap_trace_event' into 'master'
Updated tracing Python classes

See merge request espressif/esp-idf!7121
2019-12-27 19:06:16 +08:00
83d63b4673 unity: re-enable test case exit by longjmp 2019-12-27 11:27:01 +01:00
891eb3b020 freertos: save/restore PS and EPC1 around window spilling
Since in b0491307, which has introduced the optimized window spill
procedure, _xt_context_save did not work correctly when called from
_xt_syscall_exc. This was because unlike _xt_lowint1, _xt_syscall_exc
does not save PS and EPC1. The new version of _xt_context_save
modified PS (on purpose) and EPC1 (accidentally, due to window
overflow exceptions), which resulted in a crash upon 'rfi' from the
syscall.

This commit adds restoring of PS and EPC1 in _xt_context_save. It also
slightly reduces the number of instructions used to prepare PS for
window spill.

Unit test for setjmp/longjmp (which were broken by this regression)
is added.

Closes https://github.com/espressif/esp-idf/issues/4541
2019-12-27 11:27:01 +01:00
b5b30736de Merge branch 'bugfix/httpd_file_serving_example_chunked_resp' into 'master'
file_server: fix issue with sending last chunk

Closes IDFGH-2414

See merge request espressif/esp-idf!7089
2019-12-27 14:44:02 +08:00
eb2aa6fd67 apptrace: Adds HeapTraceEvent.callers property used by OpenOCD tests 2019-12-27 00:13:45 +03:00
e0b667804f Merge branch 'fix/test_flash_timeout_sdio_throughput' into 'master'
Fix several CI issues

See merge request espressif/esp-idf!7101
2019-12-26 20:25:31 +08:00
3be94b6952 Merge branch 'bugfix/can_critical_section_logs' into 'master'
can: Fix critical section ESP_LOG functions

Closes IDFGH-2270 and IDF-1067

See merge request espressif/esp-idf!7081
2019-12-26 16:22:17 +08:00
9738bc58ed Merge branch 'bugfix/can_semaphore_take_in_critical' into 'master'
can: Fix semaphore take in critical section

Closes IDFGH-2115

See merge request espressif/esp-idf!7083
2019-12-26 16:15:07 +08:00
3977ba7bc6 components/bt: Revert changes of security mask 2019-12-25 20:03:16 +08:00
c378bd210c Merge branch 'bugfix/fix_the_bugs_for_ESPNOW' into 'master'
fix bugs in ESP-NOW

Closes WIFI-1451

See merge request espressif/esp-idf!6912
2019-12-25 19:06:26 +08:00
56c309b40b fix the bugs in ESP-NOW:
1. fix the bug when modifying the channel info of peer node
2. fix the crash when modifying peer node between unencrypted and encrypted
3. fix the bug for fetch peer
4. modify the esp_wifi_set_channel() function
5. fix the bug that the channel parameter doesn't work when adding peer node

Closes https://github.com/espressif/esp-idf/issues/2833
Closes https://github.com/espressif/esp-idf/issues/4311
2019-12-25 11:46:27 +08:00
b57be2afe1 Merge branch 'bugfix/fix_wifi_timer_bug' into 'master'
esp_wifi: fix some WiFi timer bugs

Closes WIFI-1412

See merge request espressif/esp-idf!6771
2019-12-25 11:11:02 +08:00
97e7bdd161 esp_wifi: fix WiFi timer bug 2019-12-25 09:10:45 +08:00
2753dd2fc2 Merge branch 'bugfix/fix_a_wifi_rx_bug' into 'master'
esp_wifi: fix a WiFi receiving bug

Closes WIFI-492

See merge request espressif/esp-idf!5834
2019-12-24 22:55:37 +08:00
e1eeef2276 esp_wifi: fix a WiFi receiving bug
Support WiFi/BT MAC register writting when the WiFi/BT common clock is disabled.
2019-12-24 21:32:03 +08:00
c5708c89ed Merge branch 'bugfix/espnow_tx_failure' into 'master'
esp_wifi: Update wifi lib

Closes WIFI-1471

See merge request espressif/esp-idf!6969
2019-12-24 18:39:29 +08:00
2ffe0aca12 esp_flash: increase the timeout for block erase 2019-12-24 16:50:09 +08:00
72cf67cba3 sdio_slave_hal: fix the TAG non-static issue
(MINOR CHANGE)
2019-12-24 16:50:09 +08:00
41e37ebabe ci: decrease the performance threshold for sdio throughput 2019-12-24 16:50:08 +08:00
3f22448fdf Fixes ESPNOW unicast packet Tx failure 2019-12-24 11:59:18 +08:00
a3501deb22 Merge branch 'bugfix/fix_the_bugs_for_bandwidth' into 'master'
fix the bugs for bandwidth

Closes WIFI-1306

See merge request espressif/esp-idf!6965
2019-12-24 11:43:44 +08:00
7baf7ce273 ethernet: optimise tx and rx 2019-12-24 11:18:31 +08:00
fce6a9c735 ethernet: test ethernet download 2019-12-24 11:18:30 +08:00
197d5d7378 ethernet: support phy addr auto detect 2019-12-24 11:18:30 +08:00
f687cedebe Merge branch 'bugfix/wa_dport_and_intr' into 'master'
esp32: Fix for DPORT

See merge request espressif/esp-idf!7070
2019-12-24 01:30:56 +08:00
750818de72 spiffs: clarify the usage of partition_label, fix the example
* If esp_vfs_spiffs_register is called with an explicit partition
  label, other SPIFFS functions (info, format, unregister) must be
  called with the same label.

* On the other hand, if label was NULL in the call to
  esp_vfs_spiffs_register and the first matching partition was used,
  calls to the rest of the SPIFFS functions should be done with NULL
  partition_label argument.

Fix the Doxygen documentation. Update the example accordingly, in case
a user modifies "partition_label" value in esp_vfs_spiffs_conf_t conf
initializer.

Closes https://github.com/espressif/esp-idf/issues/4450
2019-12-23 18:20:14 +01:00
7416c37fe1 fix the bug for getting channel and bandwidth 2019-12-23 20:06:13 +08:00
698350ff1f Merge branch 'bugfix/fix_performance_issues_new' into 'master'
improve wifi performance

Closes WIFI-265, WIFI-1349, WIFI-23, WIFI-296, WIFI-397, WIFI-1255, WIFI-1256, and FCS-175

See merge request espressif/esp-idf!6928
2019-12-23 17:38:43 +08:00
c029888bf1 Merge branch 'fix/spi_ut_esp32s2beta' into 'master'
spi: re-enable the unit tests for esp32s2beta

Closes IDF-1020

See merge request espressif/esp-idf!6327
2019-12-23 15:10:31 +08:00
6797703827 Merge branch 'refactor/bootloader_support_restructure' into 'master'
restructure bootloader_init

Closes IDF-1057

See merge request espressif/esp-idf!6674
2019-12-23 14:53:37 +08:00
36ef48eb04 Merge branch 'bugfix/ble_mesh_remove_useless_file' into 'master'
ble_mesh: Remove useless example files

See merge request espressif/esp-idf!7088
2019-12-23 14:41:54 +08:00
9ef8cafeca file_server: fix issue with sending last chunk
Closes: https://github.com/espressif/esp-idf/issues/4528
Closes IDFGH-2414
2019-12-23 12:01:16 +05:30
888316fc64 bootloader_support: refactor to better support multi target 2019-12-23 05:45:17 +00:00
ba7c67ece8 bootloader won't have dependency on wifi 2019-12-23 05:45:17 +00:00
lly
2ac8900a58 ble_mesh: Remove useless example files 2019-12-23 13:32:23 +08:00
2dd12ae5f8 spi: fix speed test issues on esp32s2beta
Also support performance value for different targets.
2019-12-23 10:23:01 +08:00
3d1ec3f451 intr_alloc: fix the issue intr_enable/disable cannot be used in ISR in
esp32s2beta.

This issue is reported in config freertos_compliance_s2.
2019-12-23 10:23:00 +08:00
262ba6f825 spi: fix iomux, timing and address phase issues for esp32s2beta 2019-12-23 10:23:00 +08:00
11fa11000f spi: re-enable the unit tests for esp32s2beta 2019-12-23 10:22:59 +08:00
1e47b01563 improve wifi performance 2019-12-22 19:34:53 +08:00
9432ebddf9 esp32: Add UT for DPORT 2019-12-21 14:10:38 +00:00
c4dcf6f917 esp32: Fix esp_dport_access_reg_read 2019-12-21 14:10:38 +00:00
1687c53700 freertos: Fix save_context. Add RSYNC after WSR
RSYNC waits for all previously fetched WSR.* instructions to be performed before inter-
preting the register fields of the next instruction.
2019-12-21 14:10:38 +00:00
5dc10a4191 Add missing extern "C" to rtc_cntl.h
Related: https://github.com/espressif/arduino-esp32/issues/3149
2019-12-21 12:12:54 +11:00
8795b2681c heap: added test case for realloc to verify if successive realloc in IRAM still ends there. 2019-12-20 13:48:09 -03:00
4909fdfe02 heap_caps: small fixes on comments plus cleaning 2019-12-20 13:35:56 -03:00
31145f38fa heap_caps: added special case for realloc when previous area is an diram_iram ptr, this will force a malloc/copy/free 2019-12-20 13:35:56 -03:00
ce9f84fba9 heap_caps: enable check of pointer on diram_iram for both S2 and non-S2 platform 2019-12-20 13:35:56 -03:00
d9ab33118e heap/multi_heap_poisoning: include heap_private.h only when no host heap tests 2019-12-20 13:35:56 -03:00
4a392932f1 heap/heap_caps: added special case for esp32s2 when handling memory allocated (and aliased) from IRAM 2019-12-20 13:35:56 -03:00
ecc4955c68 heap/test_malloc_caps: changed malloc caps test to deal with esp32 and esp32s2 memory differencies. 2019-12-20 13:35:56 -03:00
cf95ea40d4 heap/test_leak: changed requested memory on leak checks to match the threshold 2019-12-20 13:35:56 -03:00
785abfeb82 docs: update esp_expresstion_with_stack code snippet to check shared stack and mutex allocation. 2019-12-20 13:30:30 -03:00
d1b76d13bb exp_expression_with_stack: added check for null pointer after obtaining a mutex in test 2019-12-20 13:28:29 -03:00
f0e82311a5 esp_expression_with_stack: fix wrong top of stack calculation plus documentation update 2019-12-20 13:23:47 -03:00
e4fb50e6f3 expression_with_stack_xtensa: fixed stack pointer to avoid its overflow on heap block metadata. 2019-12-20 13:18:13 -03:00
8bfb8e885e docs: update on expression with stack api usage regard the stack setup. 2019-12-20 13:18:13 -03:00
fab50ccf7c expression_with_stack_xtensa: call esp watchpoint function using a callx4 to fix range problem of call4 function 2019-12-20 13:18:13 -03:00
674cb1c21c esp_expression_with_stack: added fake stack frame plus some cleanup on main macro 2019-12-20 13:18:13 -03:00
5e18cd4e13 esp_expression_with_stack: added watchpoint on stack parameter before use it 2019-12-20 13:18:13 -03:00
88dd15c806 docs: synchronized the contents of en with cn folders adding the esp-expression-with-stack documentation 2019-12-20 13:18:13 -03:00
dfea4196a2 docs: added esp-expression-with-stack on documentation 2019-12-20 13:18:13 -03:00
002f38c7f5 expression_with_stack_xtensa: protected switch stacks function to compile only on window ABI supported platform 2019-12-20 13:18:13 -03:00
11266ef05d expression_with_stack_xtensa: renamed and moved assembly helpes of esp_expression_wit_stack to xtensa component 2019-12-20 13:18:13 -03:00
7b90f34c5a esp_expression_with_stack: renamed macro and functions to have esp_ prefix 2019-12-20 13:18:13 -03:00
98b76617be test_shared_stack_printf: moved the test stack inside the heap 2019-12-20 13:18:13 -03:00
debcc68c41 esp_common: added a macro to allow call functions using user allocated stack 2019-12-20 13:18:13 -03:00
4c3d49e3f0 can: Fix semaphore take in critical section
This commit fixes can_reconfigure_alerts() which
could lead to a call to xSemaphoreTake() whilst
inside a critical section.

Closes https://github.com/espressif/esp-idf/issues/4277
2019-12-20 22:00:33 +08:00
c0d12988d3 Merge branch 'feature/component_manager' into 'master'
Component manager for IDF (preview)

See merge request espressif/esp-idf!6929
2019-12-20 21:06:12 +08:00
b6af587975 can: Fix critical section ESP_LOG functions
This commit removes any function calls within
the CAN driver that result in a call to ESP_LOG
whilst inside a critical section.

These function calls are either moved outside
critical sections (e.g., intr_alloc and gpio
functions), or substituted (e.g., assert()).

Closes https://github.com/espressif/esp-idf/issues/4412
2019-12-20 20:58:48 +08:00
9d196ce51f Merge branch 'feature/sntp_api_sync_interval' into 'master'
sntp: Add API to set update interval

Closes IDFGH-2298

See merge request espressif/esp-idf!6956
2019-12-20 18:26:23 +08:00
98495e5939 sntp: Add API to set update interval
Closes: https://github.com/espressif/esp-idf/issues/4437
Closes: IDFGH-2298
2019-12-20 18:26:23 +08:00
28314f9bb0 Merge branch 'bugfix/parttool_regression' into 'master'
parttool: Fix regression when parsing binary partition data

See merge request espressif/esp-idf!7075
2019-12-20 17:33:21 +08:00
e977cc24ff Merge branch 'bugfix/fix_ble_mesh_adv_buf_unref' into 'master'
ble_mesh: Fix adv buf unref and link_id in exceptional list

See merge request espressif/esp-idf!6828
2019-12-20 17:11:08 +08:00
8f15664be0 parttool: Fix regression when parsing binary partition data
Regression in a91de43537
2019-12-20 19:09:10 +11:00
abe26a1c02 Merge branch 'bugfix/ble_mesh_client_check_remain_time' into 'master'
ble_mesh: Client model check timer remaining time

See merge request espressif/esp-idf!7010
2019-12-20 15:21:26 +08:00
9f038edbfd Merge branch 'feature/github_issue_templates' into 'master'
github: Update to new issue templates

Closes IDF-1163

See merge request espressif/esp-idf!7018
2019-12-20 14:31:16 +08:00
ba0a22f59d Merge branch 'fix/run_esptool_absolute_path' into 'master'
project_include.cmake: Make esptool_py_custom_target callable from other directories

See merge request espressif/esp-idf!7062
2019-12-20 14:05:53 +08:00
a26e78f66c Merge branch 'doc/mqtt_api_ref_add_event_info' into 'master'
doc/mqtt: add event description to API reference

See merge request espressif/esp-idf!6518
2019-12-20 13:11:56 +08:00
f517c8efe4 Merge branch 'doc/review_api-ref_periph-uart' into 'master'
Review the file api-reference/peripherals/uart.rst

See merge request espressif/esp-idf!6639
2019-12-20 13:10:02 +08:00
f0680b99b3 Merge branch 'bugfix/mdns_netif_local' into 'master'
mdns: fix preset of esp_netif ptr for local interfaces

Closes WIFI-1538

See merge request espressif/esp-idf!7009
2019-12-20 12:53:50 +08:00
lly
fbdaed0248 ble_mesh: Add unlock when failed to create alarm 2019-12-20 12:25:01 +08:00
lly
619e606356 ble_mesh: Rename ble mesh lock/unlock functions
Rename BLE Mesh internal lock/unlock functions, also seperate
the list, buf and atomic lock/unlock functions
2019-12-20 12:23:10 +08:00
7e72e12e4c github: Update to new issue templates
- Add a separate template for feature requests
- Add links to Programming Guide, Documentation pages, forum in config.yml
2019-12-20 15:20:13 +11:00
3faa2a48d1 Merge branch 'test/uart_unit_tests' into 'master'
driver: test: Fix for 'uart read write' test failure, use some more verbose macros

See merge request espressif/esp-idf!6996
2019-12-20 12:15:45 +08:00
8099a90d46 Merge branch 'bugfix/parttool_backtraces' into 'master'
parttool: Avoid unnecessary exception backtrace for legitimate errors

See merge request espressif/esp-idf!7022
2019-12-20 12:14:23 +08:00
0cc98b8d76 secure boot: Fix bootloader build system target for bootloader digest
Closes https://github.com/espressif/esp-idf/issues/4513
2019-12-20 15:09:15 +11:00
15e67a49f4 Merge branch 'bugfix/nvs_flash_iterator' into 'master'
NVS: BUGFIX iterator corrupting entries.

Closes IDFGH-2229

See merge request espressif/esp-idf!6789
2019-12-20 11:40:23 +08:00
546aa18c84 Merge branch 'bugfix/fix_wifi_stop_memory_leak' into 'master'
esp_wifi/supplicant: fix some WiFi stop memory leak

Closes WIFI-1488

See merge request espressif/esp-idf!7043
2019-12-20 11:07:13 +08:00
4344add798 Merge branch 'bugfix/make_undefined_variable_warning' into 'master'
make: fix undefined variable warning (IDF_SKIP_CHECK_SUBMODULES)

See merge request espressif/esp-idf!7061
2019-12-20 10:59:28 +08:00
dfafa98253 Use component manager if available as python package 2019-12-19 16:48:36 +01:00
37a8ff9040 core dump: only get EPC/EPS registers up to XCHAL_NUM_INTLEVELS 2019-12-19 16:47:57 +01:00
86d65b88f4 make: fix undefined variable warning (IDF_SKIP_CHECK_SUBMODULES) 2019-12-19 13:28:31 +01:00
8f3987099e project_include.cmake: Make esptool_py_custom_target callable from other directories 2019-12-19 17:53:09 +05:30
9da268bd32 Review the file api-reference/peripherals/uart.rst 2019-12-19 19:13:38 +08:00
2fa24d6e39 Merge branch 'doc/hr-ref/gs-wrover-kit-v4.1-fix-header-name' into 'master'
JP8 -> JP2

See merge request espressif/esp-idf!7053
2019-12-19 17:44:43 +08:00
7c0e3765ec websocket: added missing event data
user_context was missing from websocket event data, added. Also added the websocket client handle to the event data.

Removed  unused event data struct.

Closes: IDF-1271
2019-12-19 17:36:37 +08:00
9addf631e5 Merge branch 'bugfix/mdns_deinit_event_crash' into 'master'
mdns: fixed crash on event during deinit

Closes WIFI-1485

See merge request espressif/esp-idf!6951
2019-12-19 15:42:05 +08:00
287580ff90 Merge branch 'docs/tanslate_esp_mesh' into 'master'
add translation for esp_mesh doc

See merge request espressif/esp-idf!7005
2019-12-19 15:16:50 +08:00
0c444c06a7 add translation for esp_mesh doc 2019-12-19 15:16:50 +08:00
38aa21fd15 WIFI: added log for wifi test, increased timeout 2019-12-19 14:53:28 +08:00
db32140eea JP8 -> JP2 syncing changes in cn version
Fixes https://github.com/espressif/esp-idf/pull/4147
2019-12-19 13:52:33 +08:00
852462f4e2 test: Fix possible race in pthread C++ test
Also use TEST_ASSERT_EQUAL to get better debugging

Debugging intermittent UT failures on S2 release config

In the old version, the 300ms delay in between the two kinds of test
was supposed to keep the tasks in lockstep so it didn't matter that
global_sp was protected by two muxes.

However it seems like sometimes they could get out of sync -
I think because of a race in the sleep_until test. If the
second counter ticks over at that exact moment sleeping starts,
then the task doesn't sleep and will immediately keep running
 for the next iteration, possibly racing the other tasks.
2019-12-19 15:55:51 +11:00
35bbd996af JP8 -> JP2
Signed-off-by: Kirill Chalov <kirill.chalov@espressif.com>

Merges https://github.com/espressif/esp-idf/pull/4147
2019-12-19 12:43:41 +08:00
505a82488a Merge branch 'bugfix/esp_log_from_critical' into 'master'
intr_alloc: don't call ESP_LOG from a critical section

Closes FCS-268

See merge request espressif/esp-idf!7047
2019-12-19 08:47:19 +08:00
981d8c6c30 Merge branch 'feature/idfpy_list_targets' into 'master'
idf.py: add --list-targets option to list support targets

See merge request espressif/esp-idf!7049
2019-12-19 08:35:59 +08:00
2e43d107b4 idf_monitor: Ignore OS-level errors writing to Windows Console
Windows Console write or flush may fail (throwing WindowsError, a subclass of OSError) if the data
written can't be displayed. This may be the case if the serial port is producing garbage bytes.

Ignore the error, in the hope that the serial port may "come good" and write non-garbage later.
2019-12-18 23:35:35 +00:00
97f7b918c1 idf.py: add --list-targets option to list support targets 2019-12-18 16:50:49 +01:00
e8db1c4da0 Merge branch 'feature/enable_i2s_tests_on_esp32s2beta' into 'master'
Enable i2s and freertos test/s on esp32s2beta

See merge request espressif/esp-idf!6790
2019-12-18 17:51:54 +08:00
2b6c85e182 intr_alloc: don't call ESP_LOG from a critical section
Calling ESP_LOG from a critical section leads to abort() in 4.1, and
may also randomly abort() in earlier versions.

Closes FCS-268
2019-12-18 10:11:24 +01:00
f106e14400 Merge branch 'bugfix/iperf_example_configs' into 'master'
examples/wifi/iperf: fix test not finding any configs

See merge request espressif/esp-idf!6802
2019-12-18 15:35:20 +08:00
fcbe89c67a Merge branch 'feature/esp-ble-mesh-architecture-cn' into 'master'
Add Chinese translation for ble-mesh-architecture; add a link for ble-mesh-architecture-en.

See merge request espressif/esp-idf!6550
2019-12-18 14:37:10 +08:00
666337eb7a Add Chinese translation for ble-mesh-architecture; add a link for ble-mesh-architecture-en. 2019-12-18 14:37:09 +08:00
9ae07d75f6 Merge branch 'feature/esp-ble-mesh-index-cn' into 'master'
Add Chinese translation for esp-ble-mesh-index.

See merge request espressif/esp-idf!6641
2019-12-18 14:34:58 +08:00
2b589fbabd Add Chinese translation for esp-ble-mesh-index. 2019-12-18 14:34:56 +08:00
60d3fd8457 Merge branch 'feature/esp-ble-mesh-terminology-cn' into 'master'
Add Chinese translation for esp-ble-mesh-terminology. Add link to Chinese...

See merge request espressif/esp-idf!6761
2019-12-18 14:34:02 +08:00
ee93da1826 Add Chinese translation for esp-ble-mesh-terminology. Add link to Chinese version in English original text. 2019-12-18 14:34:01 +08:00
fde2f33912 esp_wifi/supplicant: fix some WiFi stop memory leak 2019-12-18 13:51:27 +08:00
30372f5a4f Merge branch 'docs/esp_netif_programmer_manual' into 'master'
esp netif: formal fixes (docs and c++ sentinels again)

Closes IDFGH-2265

See merge request espressif/esp-idf!6819
2019-12-18 13:12:36 +08:00
3d9bcf2eb2 Merge branch 'bugfix/docs-link-whitespace' into 'master'
Fix the whitespace after everything which is link

Closes IDF-903

See merge request espressif/esp-idf!5865
2019-12-18 13:11:54 +08:00
e969115a23 Fix the whitespace after everything which is link 2019-12-18 13:11:54 +08:00
4325c98a27 Merge branch 'bugfix/esp_netif_netsuite_test_fix' into 'master'
esp_netif: update netsuite test example to use I/O driver configuration

Closes IDFGH-2259

See merge request espressif/esp-idf!6834
2019-12-18 11:23:46 +08:00
43fe904260 Merge branch 'feature/ws_local_server_test' into 'master'
websocket_client: added example_test with a local websocket server

Closes IDF-907

See merge request espressif/esp-idf!6366
2019-12-18 11:15:33 +08:00
5249d33c1f NVS: bugfix nvs_set_str/blob checks write mode 2019-12-18 09:06:45 +08:00
bb1cd9a440 NVS: BUGFIX non-matching type iterator works
Closes IDFGH-2229
2019-12-18 09:06:45 +08:00
de43b8406b Merge branch 'feature/qemu_mqtt_test' into 'master'
ci: QEMU tests in tiny-test-fw

See merge request espressif/esp-idf!6959
2019-12-18 07:10:30 +08:00
eaa2f12d67 mdns: fixed crash on event during deinit
mdns library deinitialization destroys internal structures including action queue. if an event (e.g. network update) received
after some essential stucture is destoyed, an unexpected behavour might be introduced (e.g. crash of adding the event notification
to the action queue which was already destroyed

Closes WIFI-1485
2019-12-17 18:18:22 +00:00
74d768fe6d ci: updated mqtt weekend test for qemu support
Added default sdkconfig for qemu build for the mqtt publish example,
Added environment configuration for running the same test on target
or in qemu
Updated missing example tests per latest ttfw refactoring
2019-12-17 14:06:40 +01:00
cec408c760 ci: ttfw update to support qemu dut_class
Updated missing example tests per latest ttfw refactoring,
updated pythons requirements.txt for ttfw_idf
2019-12-17 14:06:40 +01:00
85c97967d5 tiny-test-fw: add QEMU DUT 2019-12-17 14:06:40 +01:00
259d43db83 Merge branch 'bugfix/fix_block_scan_crash_issue' into 'master'
esp_wifi: Fix wifi block scan crash issue

Closes AUD-873 and WIFI-922

See merge request espressif/esp-idf!6422
2019-12-17 20:03:10 +08:00
08b1ccb7b7 Merge branch 'bugfix/esp_netif_receive_null_netif' into 'master'
esp_netif: store netif before register wifi rxcb

Closes WIFI-1499

See merge request espressif/esp-idf!6947
2019-12-17 20:01:34 +08:00
31b2702387 esp_netif, examples: esp_netif_init() moved into ESP_ERROR_CHECK()
esp_netif_init() returns standard esp_err_t error code (unlike tcpip_adapter init), so shall be checked for the return value
Also to make the initialization code more consistent.
2019-12-17 09:07:49 +01:00
b61b927008 esp_netif: minor log message fix in dhcps cb
To make it more general, since the DHCP server does not necessarily runs only on softAP.
2019-12-17 09:02:51 +01:00
f21107d12d esp_netif/tcpip_adapter: declare functions extern "C"
Merges https://github.com/espressif/esp-idf/pull/4408
2019-12-17 09:02:51 +01:00
ac47c74ec4 esp_netif, docs: Added programmer's manual section
Also added guide for creating a custom network capable I/O driver
And added notes about default wifi interfaces and implications of using
default short-hand creation functions.
2019-12-17 09:02:51 +01:00
c86c1ecc7e Merge branch 'support/add_uart_fifo_threshold_set_api' into 'master'
add simplified API to set UART threshold values for RX FIFO full and TX FIFO empty

See merge request espressif/esp-idf!6749
2019-12-17 11:30:11 +08:00
0bc6f2b42c Merge branch 'bugfix/fix_crash_when_use_one_speed_mode' into 'master'
bugfix(ledc): fix crash when use one speed mode

See merge request espressif/esp-idf!6788
2019-12-17 11:16:11 +08:00
2c28f1ec0a Merge branch 'bugfix/doc_fix_debian_requirements' into 'master'
Docs: Update Debian & Ubuntu install prerequisites

Closes IDFGH-2352

See merge request espressif/esp-idf!7024
2019-12-17 09:22:14 +08:00
a0887fcf84 Merge branch 'feature/esp_netif_pppos_client' into 'master'
esp-netif: PPP support, update example and modem subcomponent

See merge request espressif/esp-idf!6744
2019-12-17 09:11:12 +08:00
431066f164 Merge branch 'bugfix/gcov_stub_invocation' into 'master'
Fixes aborted calls to _lock_acquire_recursive from gcov stub

Closes IDF-1195

See merge request espressif/esp-idf!6896
2019-12-17 08:57:38 +08:00
eec8212237 add simplified API to set UART threshold values for RX FIFO full and TX FIFO empty 2019-12-16 20:26:04 +00:00
bbbdcbfe4c esp_netif: update netsuite test example to use I/O driver configuration
closes https://github.com/espressif/esp-idf/issues/4403
2019-12-16 19:38:01 +00:00
184e1785ff gcov: Fixes aborted calls to _lock_acquire_recursive from gcov stub 2019-12-16 19:15:37 +00:00
04a25394aa esp_modem: add simple compatibility layer for new esp_modem connecting over esp-netif 2019-12-16 17:34:10 +00:00
25913af2cc pppos_client: udated example code to use esp-netif in PPP configuration 2019-12-16 17:34:10 +00:00
52ca3a917d esp_netif: Support for PPPoS in esp_netif using lwip ppp client 2019-12-16 17:34:10 +00:00
09e36f9f33 mdns: fix preset of esp_netif ptr for local interfaces
mdns module store local copy of esp_netif for common interfaces,
but it was correctly initialized only when interface started.
If the event were missed (e.g. mdns_init after interface start)
the local copy wouldn't be initialized. Fixed by restoring the local
copy.

Closes WIFI-1538
2019-12-16 15:39:23 +01:00
211c54cef3 examples/wifi/iperf: fix test not finding any configs
Regression from ebd7004
2019-12-16 11:51:49 +00:00
bbbc12478a Docs: Update Debian & Ubuntu install prerequisites
Latest versions of apt-get don't install as much packages by default
as older ones. This fix adds some missing packages discovered for an OS
derived from the latest stable Debian. These packages exist for older
Debian derivatives as well (tested with Ubuntu 16.04 LTS).

Closes https://github.com/espressif/esp-idf/issues/4480
2019-12-16 11:41:28 +01:00
435dd546cc driver: Avoid possible accidental mismatch between ledc_clk_src_t & ledc_clk_cfg_t enum
ledc_types.h includes two similar enums, ledc_clk_src_t & ledc_clk_cfg_t. Latter was added in
ESP-IDF v4.0.

The two enums do different things but there are two similar names: LEDC_REF_TICK / LEDC_USE_REF_TICK
and LEDC_APB_CLK / LEDC_USE_APB_CLK.

Because C will accept any enum or integer value for an enum argument, there's no easy way to check
the correct enum is passed without using static analysis.

To avoid accidental errors, make the numeric values for the two similarly named enums the same.,

Noticed when looking into https://github.com/espressif/esp-idf/issues/4476
2019-12-16 19:43:11 +11:00
a159fc15fc esp_wifi: Fix wifi block scan crash issue 2019-12-16 07:47:08 +00:00
a91de43537 parttool: Avoid unnecessary exception backtrace for legitimate errors
Previous version used exception handling for program control flow,
which makes for long and confusing backtrace messages if an error
occurs while parsing the CSV (as it also prints the phony error that
occurred while trying to parse as a binary, then prints
"During handling of the above exception, another exception occurred:",
then prints the real error).

Use the same heuristic that is applied in gen_esp32_part, instead.

Also, avoid printing the entire backtrace if the error is a gen_esp32_part
InputError, same as gen_esp32part does.

Found while looking into https://github.com/espressif/esp-idf/issues/4474
2019-12-16 18:24:10 +11:00
2e73c2818b freertos: re-enable mutext test for esp32s2beta 2019-12-16 11:55:32 +05:30
8b05cf41ad i2s: enable tests for esp32s2beta 2019-12-16 11:53:33 +05:30
f7b51c164d Merge branch 'bufgix/esp_timer_set_alarm' into 'master'
esp_timer: Fix set_alarm. Case when timestamp < now_time

Closes WIFI-1511

See merge request espressif/esp-idf!6960
2019-12-16 13:39:44 +08:00
1f6bb6ef4f Merge branch 'feat/mmc_check_data_switching_freq' into 'master'
sdmmc: add communication check for eMMC after frequency switch

See merge request espressif/esp-idf!6893
2019-12-16 13:05:03 +08:00
8b219c0884 Merge branch 'bugfix/menuconfig_py3' into 'master'
tools: Fix menuconfig for Python 3

See merge request espressif/esp-idf!6991
2019-12-16 12:59:34 +08:00
41fca84064 bugfix(ledc): fix crash when use one speed mode and enable ledc fade test case 2019-12-16 02:49:26 +00:00
9dbb7526c5 Merge branch 'bugfix/ulp_supported_version' into 'master'
ulp: remove 20190801 version, update supported version for Make

See merge request espressif/esp-idf!7014
2019-12-16 10:47:44 +08:00
1843630ef3 Merge branch 'feature/sdio_slave_support_hal_new' into 'master'
sdio_slave: support HAL layer

See merge request espressif/esp-idf!6314
2019-12-16 07:22:04 +08:00
433d046a2a Merge branch 'feature/tools_installer_v2.2' into 'master'
tools: bump windows tools installer version to v2.2

Closes IDFGH-2036 and IDFGH-2202

See merge request espressif/esp-idf!6999
2019-12-16 07:20:43 +08:00
917889dfdf ulp: remove 20190801 version, update supported version for Make 2019-12-15 21:39:42 +01:00
lly
31a4738bd4 ble_mesh: Use mutex to protect client list operations 2019-12-14 17:32:47 +08:00
lly
e4223df60f ble_mesh: Remove useless parameters of lock/unlock 2019-12-14 16:28:22 +08:00
lly
d2bc597e9f ble_mesh: Client model check timer remaining time
Before handling status message, client models need check if the
corresponding timer has expired. And if timeout happens, the
status message will be treated as a publish message.
2019-12-14 15:43:59 +08:00
f91c5c6f23 docs: update Windows tools installer link 2019-12-13 15:03:09 +01:00
d021e71419 tools: bump windows tools installer version to v2.2
Includes the fix for Windows Defender exceptions installation.

Closes https://github.com/espressif/esp-idf/issues/4225
Closes https://github.com/espressif/esp-idf/issues/4354
Closes IDFGH-2036
Closes IDFGH-2202
2019-12-13 15:03:09 +01:00
66aac70286 tools: WD exclusions support - internal improvements
* use {group} symbolic path instead of {autostartmenu) due to backward compatibility
* don't check Defender module existence in PS scripts (done by the installer)
2019-12-13 15:03:08 +01:00
4184cc936d Merge branch 'docs/contribute/documenting-code' into 'master'
Add Chinese translation to Documenting Code

See merge request espressif/esp-idf!6888
2019-12-13 20:13:50 +08:00
63b0d6c977 Add Chinese translation to Documenting Code 2019-12-13 20:13:50 +08:00
b4b6e938b1 Merge branch 'feature/esp32s2-ulp-doc' into 'master'
Documentation witn instruction set for Esp32s2 ULP core processor added.

See merge request espressif/esp-idf!5118
2019-12-13 18:38:59 +08:00
8fe3ecd000 Added description for difference between ESP32 ULP and ESP32-S2 ULP
Jumpr instruction updated.
2019-12-13 18:38:57 +08:00
0ec08ca21b sdio_slave: support HAL layer 2019-12-13 18:33:15 +08:00
09615245a5 Merge branch 'bugfix/fix_softap_crash_when_assoc_illegal' into 'master'
esp_wifi: Fix association request RSN information length too big lead crash.

Closes WIFI-1253

See merge request espressif/esp-idf!6380
2019-12-13 18:12:25 +08:00
ecf85555b6 Merge branch 'bugfix/small_unit_test_fixes' into 'master'
test: Small unit test fixes

See merge request espressif/esp-idf!6981
2019-12-13 14:00:05 +08:00
c6b681827d target-test.yml: Increase parallel count +1 for ESP32_IDF, UT_T1_1 2019-12-13 13:51:47 +08:00
ada09f8fad esp_timer: Add Test case when set_alarm needs set timer < now_time 2019-12-13 13:51:47 +08:00
4f1d49d8c2 Merge branch 'feature/esp32s2beta_hw_crypto_support' into 'master'
hw crypto: activated hardware acceleration for esp32s2beta

Closes IDF-757

See merge request espressif/esp-idf!6615
2019-12-13 13:40:33 +08:00
40b657d4fe Merge branch 'feature/prebuilt_binary_example' into 'master'
cmake: import prebuilt library

See merge request espressif/esp-idf!6838
2019-12-13 13:36:47 +08:00
7bda06f7f4 Merge branch 'bugfix/console_example' into 'master'
esp32s2beta: add missing sleep APIs, re-enable console example

Closes IDF-1033

See merge request espressif/esp-idf!6572
2019-12-12 22:44:43 +08:00
522cef42ab examples: re-enable console example for esp32s2beta 2019-12-12 14:34:15 +01:00
792598c04a esp32s2beta: add APIs added to esp32 target after IDF 3.1 2019-12-12 14:34:15 +01:00
77290ddd07 Merge branch 'demo/hfp-client-demo' into 'master'
component_bt/: Add HFP HF Unit Example

Closes BT-459

See merge request espressif/esp-idf!6495
2019-12-12 21:19:04 +08:00
e304efd7fc Merge branch 'demo/hfp-ag-demo' into 'master'
component_bt/: Add HFP AG example and bugfix for WBS

See merge request espressif/esp-idf!6894
2019-12-12 21:18:50 +08:00
4cba4ddadc Make only for ESP32 2019-12-12 17:12:38 +08:00
c2e97b1042 Enable mSBC for demo 2019-12-12 17:12:38 +08:00
392eb79704 Format the BTM_WBS_INCLUDED macro 2019-12-12 17:12:38 +08:00
ad4b11a4f1 Fix crash when WBS enabled. 2019-12-12 17:12:38 +08:00
45fb144224 Add hfp_ag example with updated doc 2019-12-12 17:12:38 +08:00
d900971deb Make only for ESP32 2019-12-12 17:12:19 +08:00
10e5f16974 remove BTM_WBS_INCLUDED for bta_hf_client_version select 2019-12-12 17:12:19 +08:00
742cb8df9e Update the README.md
Fix the m_rb bug in bt_app_hf.c

Change the log level into information.
2019-12-12 17:12:19 +08:00
88c8791b1d HFP HF Client Example 2019-12-12 17:12:19 +08:00
232d98608a sdmmc: add communication check for eMMC after frequency switch 2019-12-12 08:11:17 +00:00
lly
1a8199dd41 ble_mesh: Fix using wrong name for PB-GATT 2019-12-12 15:59:37 +08:00
lly
c354b0993d ble_mesh: Fix adv buf unref and link_id in exceptional list 2019-12-12 15:58:43 +08:00
bcb9ba6783 Merge branch 'bugfix/Fix_typo_in_idf' into 'master'
Fix some typo in idf

See merge request espressif/esp-idf!6950
2019-12-12 15:55:43 +08:00
6c923cf330 Fix some typo in idf 2019-12-12 15:55:42 +08:00
767917bcf7 Merge branch 'bugfix/btdm_avrc_metadata_length_error' into 'master'
components/bt: Fix AVRC metadata length error

See merge request espressif/esp-idf!6879
2019-12-12 15:53:08 +08:00
6c2d667971 Merge branch 'ci/keep_build_artifacts' into 'master'
ci: Keep build artifacts for 4 days

See merge request espressif/esp-idf!6993
2019-12-12 14:27:58 +08:00
ee7cd4e1d8 driver: test: Ensure UART is fully idle before starting loopback RX/TX test
Possible fix for sporadic failures of this test in CI, may be due to a byte already
being queued in one of the FIFOs
2019-12-12 17:21:46 +11:00
b79a6c2576 driver: test: Use more detailed macros than TEST_ASSERT() to get better errors 2019-12-12 17:21:40 +11:00
e6223440b3 esp_timer: Fix set_alarm. Case when timestamp < now_time
arg1 = MAX(int64_t arg1, uint64_t arg2) gave the wrong result, if arg1 < 0, it was presented as a larger value.
And ALARM_REG = (uin32_t)arg1. This leads to an infinite loop.
Fixed: both args are int64_t.

Closes: WIFI-1511
2019-12-12 14:02:26 +08:00
c63684cf6c hw crypto: activated hardware acceleration for esp32s2beta
Activated AES, RSA and SHA hardware acceleration for esp32s2 and enabled related unit tests.

Updated with changes made for ESP32 from 0a04034, 961f59f and caea288.

Added performance targets for esp32s2beta

Closes IDF-757
2019-12-12 12:37:29 +08:00
67c5225c14 websocket_client: added example_test with a local websocket server
- Added a example test that connects to a local python websocket server.
- Added readme for websocket_client example.

Closes IDF-907
2019-12-12 11:00:58 +08:00
fd63746d8e doc/mqtt: add event description and more details about configuration to API reference 2019-12-12 10:58:39 +08:00
ba07a7dd6c unit-test: Update README for current usage of unit-test.py
Example command lines shown here were tested and Notes added
for anything which didn't work as expected.
2019-12-12 11:05:22 +11:00
9b8fffef53 unit_test.py: Add some additional console logging for context 2019-12-12 11:05:05 +11:00
18853ae509 ttfw: Fix the build directory detection when using the default build/ dir for binaries 2019-12-12 11:05:05 +11:00
b20eaf3306 ttfw: Fix exception message when an error occurs finding files to flash 2019-12-12 11:05:05 +11:00
9fa87f04da unit_test.py: Allow identifying a unit test which has : in the name 2019-12-12 11:05:05 +11:00
0978fc1b84 unit_test: Log each test case to console as we run it
Include a dump of the test tags
2019-12-12 11:05:05 +11:00
d35debcd99 unit_test: Print the timeout value when an 'expect' times out 2019-12-12 11:05:04 +11:00
50aad77f3a driver: Rename "local" tests to "single board" tests, add some description to the names 2019-12-12 11:05:04 +11:00
b18e7b94a2 ci: Keep build artifacts for 4 days 2019-12-12 09:39:27 +11:00
3b52eddf6b Merge branch 'bugfix/optimize_some_build_system_tests' into 'master'
cmake: some optimizations to build system tests

See merge request espressif/esp-idf!6972
2019-12-12 06:34:54 +08:00
82d9a7b6bf Merge branch 'bugfix/make_clean_kconfig' into 'master'
Don't try to clean the old kconfig tools on Unix

See merge request espressif/esp-idf!6855
2019-12-12 06:32:57 +08:00
b3eb4395c9 Merge branch 'feature/wifi_prov_ext_httpd' into 'master'
wifi_provisioning_softap: Allow applications to start webserver externally

See merge request espressif/esp-idf!6860
2019-12-12 06:32:26 +08:00
64cde1e93c Merge branch 'bugfix/libc_link_issues' into 'master'
newlib: fix linking issues (fcntl, system, raise)

Closes IDF-1220, IDFGH-1811, IDFGH-1417, and IDFGH-2264

See merge request espressif/esp-idf!6971
2019-12-12 06:32:04 +08:00
87a41fabfa esp-tls: check return value of fcntl 2019-12-11 14:53:27 +01:00
23848fd1b9 newlib: define fcntl as strong symbol
Closes https://github.com/espressif/esp-idf/issues/3694
Closes https://github.com/espressif/esp-idf/issues/4407
2019-12-11 14:53:26 +01:00
08286ac20f newlib: add definitions of system, raise
Closes IDF-1220
Closes IDFGH-1811
Closes https://github.com/espressif/esp-idf/pull/4020
2019-12-11 14:52:51 +01:00
7ab43bffde tools: Fix menuconfig for Python 3 2019-12-11 14:29:07 +01:00
3eaf86fbf1 esp_wifi: Fix association req RSN info lengeh too big lead crash 2019-12-11 10:59:18 +00:00
20742db676 Merge branch 'test/ci_check_wifi_lib_md5_fail' into 'master'
ci: fix check wifi lib md5 fail

See merge request espressif/esp-idf!6970
2019-12-11 18:56:23 +08:00
f766866167 cmake: remove intermediary libraries for some component 2019-12-11 16:43:47 +08:00
17876d3d73 cmake: some optimizations to build system tests 2019-12-11 16:43:47 +08:00
ef732fae97 Merge branch 'bugfix/doc_package_versions' into 'master'
doc: Limit sphinxcontrib versions to <2.0.0 as we use Sphinx 1.8.5

See merge request espressif/esp-idf!6973
2019-12-11 14:41:28 +08:00
a6de0e8846 ci: fix job "check_wifi_lib_md5" 2019-12-11 13:10:23 +08:00
f78b2158b1 Merge branch 'bugfix/menuconfig_argv_encoding' into 'master'
menuconfig: fix the MENUCONFIG_STYLE encoding issue and CLI env issue

See merge request espressif/esp-idf!6910
2019-12-11 12:47:32 +08:00
c03642ff89 Merge branch 'bugfix/mdns_send_sdptr_answer' into 'master'
mdns: respond to discovery with the proper pseudo name _services._dns-sd._udp

Closes IDFGH-2219

See merge request espressif/esp-idf!6868
2019-12-11 12:45:30 +08:00
ef0c26bfce doc: Limit sphinxcontrib versions to <2.0.0 as we use Sphinx 1.8.5 2019-12-11 14:34:18 +11:00
960a834bc7 Merge branch 'bugfix/wifi_reauth_eapol' into 'master'
wifi: fix eapol frames encryption during reauth

Closes WIFI-965

See merge request espressif/esp-idf!6652
2019-12-11 11:29:31 +08:00
04e024bfd2 wifi: fix eapol frames encryption during reauth 2019-12-11 11:29:30 +08:00
563227d9f8 Merge branch 'bugfix/gitlab_api_error_with_python3' into 'master'
ci: fix fetch submodule error on python3

See merge request espressif/esp-idf!6961
2019-12-11 07:23:53 +08:00
2ebaf53edc examples: add import prebuilt example 2019-12-10 19:22:25 +08:00
91b421c35f cmake: implement utility to import prebuilt libraries 2019-12-10 19:22:25 +08:00
4100f2e84f Merge branch 'optimize_tcp_random_close' into 'master'
optimize tcp random close

Closes WIFI-1433

See merge request espressif/esp-idf!6907
2019-12-10 16:47:34 +08:00
86c3562c51 Merge branch 'bugfix/nimble_apps_conn_handle' into 'master'
examples/bluetooth/nimble: Correct the connection handle in update and enc_change event

See merge request espressif/esp-idf!6953
2019-12-10 15:54:50 +08:00
9b64ef7850 examples/bluetooth/nimble: Correct the connection handle in update and enc_change event 2019-12-10 15:54:49 +08:00
882f5d0b56 Merge branch 'bugfix/fix_s2_cpp_exceptions' into 'master'
C++: enable exceptions ESP32S2-beta

Closes IDF-1039

See merge request espressif/esp-idf!6579
2019-12-10 15:13:15 +08:00
449755071e Merge branch 'bugfix/freemodbus_fix_merge_conflicts' into 'master'
freemodbus: fix merge issues

See merge request espressif/esp-idf!6825
2019-12-10 14:30:25 +08:00
ba1ee4092a freemodbus: fix merge issues 2019-12-10 14:30:25 +08:00
671fea5c58 Merge branch 'bugfix/freemodbus_multiple_poll_event_processing' into 'master'
freemodbus: fix multiple event processing

See merge request espressif/esp-idf!6675
2019-12-10 14:27:09 +08:00
44444208b7 freemodbus: update poll event processing
update modbus poll event loop processing to process multiple events
2019-12-10 14:27:09 +08:00
486f1a05b3 test: fix incorrect error type in xunit result 2019-12-10 13:50:32 +08:00
f50df36ebf Merge branch 'feature/external_github_prs' into 'master'
Include external github PRs

Closes IDFGH-2291, IDFGH-2306, IDFGH-2315, and IDFGH-2307

See merge request espressif/esp-idf!6931
2019-12-10 12:33:32 +08:00
fdea4b54c6 optimize tcp random close 2019-12-10 11:55:07 +08:00
4ee78f8496 added KConfig option to allow loading CA certs with unsupported extensions
Close https://github.com/espressif/esp-idf/pull/4445
2019-12-10 08:47:26 +05:30
78e4b0ff96 CXX: enable exceptions ESP32S2-beta
Closes IDF-1039

* Enabled test cases for -fno-exceptions to S2-beta again
* Added different reset tag for S2-beta
2019-12-10 10:23:00 +08:00
fe521c9d12 ci: fix fetch submodule error on python3 2019-12-10 09:38:31 +08:00
86e5bea50d Merge branch 'bugfix/server_down_message' into 'master'
tools: Produce user friendly error during install when the server is down

Closes IDFGH-2175

See merge request espressif/esp-idf!6718
2019-12-09 22:48:32 +08:00
9859d8867d Merge branch 'feature/sysview_json_traces' into 'master'
Support for converting SystemView traces to JSON format

See merge request espressif/esp-idf!5674
2019-12-09 22:46:13 +08:00
9e73a038a6 Merge branch 'feature/freertos_authentic_includes' into 'master'
Added freertos property allowing use "authentic" include path

See merge request espressif/esp-idf!6808
2019-12-09 22:39:27 +08:00
2f20ad523c Merge branch 'bugfix/menuconfig_term_warning' into 'master'
Give info and warnings about the TERM environment variable

See merge request espressif/esp-idf!6717
2019-12-09 22:38:24 +08:00
b603322856 Merge branch 'doc/update_several_ble_mesh_docs' into 'master'
doc: update ble mesh docs based on the feature and example update

Closes BLEMESH-78

See merge request espressif/esp-idf!6836
2019-12-09 22:25:20 +08:00
8e28226935 Disable few test cases for ESP32S2BETA
These test cases will be fixed in subsequent MR
2019-12-09 16:30:55 +05:30
a737fd4865 Fix issue with timer usage in FreeRTOS tests 2019-12-09 13:33:45 +05:30
489c815eb8 esp_http_client: add esp_http_client_set_authtype function
Since currently there are APIs to set url/username/password, it would be
good to also allow setting authtype.

Link: https://github.com/espressif/esp-idf/issues/4444
Closes https://github.com/espressif/esp-idf/pull/4454
Signed-off-by: Axel Lin <axel.lin@gmail.com>
2019-12-09 13:33:44 +05:30
6fdc8d7f92 esp_http_client: fix memory leak in esp_http_client_set_username/password
Fix memory in case username/password was set before calling
esp_http_client_set_username/password.

Closes https://github.com/espressif/esp-idf/issues/4444
Fixes: 9fd16c6a5f ("fixes : set_url discards username and password")
Signed-off-by: Axel Lin <axel.lin@gmail.com>
2019-12-09 13:33:44 +05:30
5f6fd238b6 fix: esp_http_client and esp_https_ota can follow 307 Redirects
Closes https://github.com/espressif/esp-idf/pull/4431
2019-12-09 13:33:44 +05:30
594cec54bd Removed relative path for lwip/arpa/inet.h
The relative path breaks compatibility with arduino-esp32 as the path doesn't exist in arduino-esp32.
https://github.com/espressif/arduino-esp32/pull/3425

Closes https://github.com/espressif/esp-idf/pull/4308
2019-12-09 13:33:44 +05:30
5991e7dd7a Merge branch 'bugfix/btdm_fix_doc_and_host_bug_gyc' into 'master'
Bugfix/btdm fix doc and host bug

Closes BCI-86, BCI-33, BT-257, and FCS-217

See merge request espressif/esp-idf!6916
2019-12-09 15:21:50 +08:00
46c53ab8c8 btdm:fix the problem that Not getting complete Identity Address (Public Address) of the Privacy-enabled Bonded Device after bonding. beacuse of the wrong memcpy in LE_KEY callback handler. 2019-12-09 15:21:49 +08:00
66f6d8c3ef esp_netif: store netif before register wifi rxcb 2019-12-09 15:16:00 +08:00
lly
2daa8e6587 doc: update ble mesh docs based on the feature and example update 2019-12-09 14:57:15 +08:00
58355f7e21 Merge branch 'refactor/update_xtensa_header_file' into 'master'
update xtensa header file

Closes IDF-1197

See merge request espressif/esp-idf!6872
2019-12-09 13:08:52 +08:00
f830f66876 Merge branch 'bugfix/mesh_stop_recv_crash' into 'master'
mesh: fix mesh stop recv crash

See merge request espressif/esp-idf!6919
2019-12-09 13:05:36 +08:00
972098c9c5 Merge branch 'bugfix/improve_performance' into 'master'
LW-IP: bugfix for performance lose when update to lw-ip 2.1.2

Closes WIFI-1292

See merge request espressif/esp-idf!6755
2019-12-09 12:40:38 +08:00
e48efd8a4d mesh: fix mesh stop recv crash
Add a mutex.
2019-12-09 03:56:10 +00:00
2fcdbb74f7 fix bug for improve performance 2019-12-09 03:16:12 +00:00
f50626dca6 Merge branch 'feature/ci_optimize_artifact_download' into 'master'
CI: optimize submodule fetch and artifact download

See merge request espressif/esp-idf!6842
2019-12-09 11:09:20 +08:00
01ca687caa esp32s2beta: only support unicore 2019-12-09 09:48:37 +08:00
a86d741fc9 esp_rom: remove esp_rom.c 2019-12-09 09:48:31 +08:00
5efb1140ac esptool: add chip and stub option 2019-12-09 09:48:16 +08:00
2237cc11a3 add IDF_ENV_FPGA option 2019-12-09 09:44:56 +08:00
13cb9f8718 xtensa: update header file 2019-12-09 09:44:56 +08:00
ca0ce7171d CI: reduce number of test jobs 2019-12-08 20:32:11 +08:00
164e8ba21f test: support loadable elf test cases:
loadable elf example is different for 2 reasons:

1. loadable elf binary don't have flasher_args.json, so we can't use normal
to get from CI artifacts
2. it don't have binary and don't need to downloaded binary to DUT. Some
related functions can be ignored
2019-12-08 20:32:11 +08:00
cca08b3d2b CI: remove not exist file from executable-list.txt 2019-12-08 20:32:10 +08:00
a11b15b92b CI: build system do not check submodule for CI 2019-12-08 20:32:10 +08:00
b4863551a9 CI: modify fetch submodule method:
download archive for submodules instead of clone
2019-12-08 20:32:10 +08:00
3224f24ef6 Merge branch 'Bugfix/add_netif_assert_master' into 'master'
fix bug for netif add crash

Closes WIFI-1219

See merge request espressif/esp-idf!6937
2019-12-07 17:33:32 +08:00
33c4fa5c13 Merge branch 'bugfix/btdm_fix_bt_security_info_restore_bug' into 'master'
btdm:BT device security info resetore bug

See merge request espressif/esp-idf!6031
2019-12-07 16:19:58 +08:00
e20e47809d For BT device restore security info from NV to SRAM, should set the ble_hci_handle to a invalid value, otherwise BLE devices may have pairing problem 2019-12-07 16:19:57 +08:00
9894691e11 fix bug for netif add crash 2019-12-07 16:11:30 +08:00
5d1be3bb8b CI: raise import error instead of exit for ble tools 2019-12-07 10:34:54 +08:00
89f8e19850 CI: support only download artifacts by request:
use CI dependencies could waste a lot bandwidth for target test jobs, as
example binary artifacts are very large. Now we will parse required
artifacts first, then use API to download required files in artifacts.
2019-12-07 10:34:54 +08:00
c906e2afee test: update example and unit tests with new import roles:
tiny_test_fw is a python package now. import it using normal way.
2019-12-07 10:34:54 +08:00
4d45932c5e CI: add utility gitlab_api 2019-12-07 10:34:54 +08:00
6cd17c1e8c freertos: added a FreeRTOS property returning "original" include path 2019-12-06 12:16:54 +01:00
d621d0e88e tiny-test-fw: move to tools/esp_python_packages:
make `tiny_test_fw` as a package and move to root path of idf python
packages
2019-12-06 17:29:47 +08:00
f5e60524ac Merge branch 'bugfix/fix_i2c_driver_breakingchange_issue' into 'master'
bugfix(i2c): fix I2C driver breaking change issue

See merge request espressif/esp-idf!6809
2019-12-06 16:50:16 +08:00
d0034f5a12 Merge branch 'bugfix/fix_uart_driver_spinlock_misused_bug' into 'master'
bugfix(UART): fix uart driver spinlock misused bug

See merge request espressif/esp-idf!6870
2019-12-06 11:12:54 +08:00
01cf379621 Merge branch 'doc/add_updates_in_api_guides' into 'master'
add updates to some files in api guides

See merge request espressif/esp-idf!6387
2019-12-05 15:12:12 +08:00
8070746530 add updates to some files in api guides
modified errors in making html

add modifications based on the first review

modified grammar problems of the original text
2019-12-05 15:12:12 +08:00
0be0859e73 Merge branch 'feature/new_gap_char' into 'master'
Enable characteristic 0x2A04 in GAP service

See merge request espressif/esp-idf!5809
2019-12-05 12:17:15 +08:00
a2adcea802 Enable characteristic 0x2A04 in GAP service
Add support to enable Peripheral Preferred Connection Parameters in GAP service and update it correctly
2019-12-05 12:17:14 +08:00
a7aea56977 Merge branch 'feature/interrupt_overhead_improvement' into 'master'
feature/interrupt overhead improvement

Closes IDF-248

See merge request espressif/esp-idf!6328
2019-12-05 10:21:46 +08:00
02bf3fbfcc Merge branch 'bugfix/update_libexpat' into 'master'
expat: Update library from 2.2.5 to 2.2.9

See merge request espressif/esp-idf!6782
2019-12-05 07:38:23 +08:00
3e55baea90 menuconfig: fix the MENUCONFIG_STYLE encoding issue and CLI env issue
1. Call cli with explicit argv

When using debugging tools like `pydbg.py --some_arg idf.py -G Ninga
build`, those tools usually call the python script with sys.argv
modified to correct value. But if the cli is called with argv blank, the
cli will get the argv again, and finally get the original command line,
which is incorrect for debugging.

2. Encode the style unicode string back to ascii in menuconfig cmd

On Windows MSYS python2.7, the unicode string set in os.environ will
cause the subprocess creating to fail. All os.environ values should be
strings.
2019-12-05 01:39:46 +08:00
b81e537b7f apptrace: Extends SystemView heap & log example to run many allocator/freer tasks 2019-12-04 18:04:11 +03:00
884717fb2f apptrace: Adds support for converting SystemView traces to JSON format 2019-12-04 18:04:07 +03:00
b0491307fc target-test: bumping test cases parallel count 2019-12-04 10:41:00 -03:00
57522059aa freertos/tests: fixed wrong header file on isr latency test 2019-12-04 10:41:00 -03:00
0ea6453b1c freertos: changed isr time test case variables to static 2019-12-04 10:41:00 -03:00
3882d986bd components/unity: reverted the inclusion of test protect based on setjmp 2019-12-04 10:40:27 -03:00
8cd2831ec1 components/unity: re-enabled setjmp longjmp block on unity 2019-12-04 10:40:27 -03:00
55cbc213f3 components/freertos: create the test task with highest priority to ensure peer-to-peer ISR to task sync 2019-12-04 10:40:27 -03:00
64a50f0423 components/freertos: fixed isr test failling when run multiple times 2019-12-04 10:40:27 -03:00
f119cc58cf components/freertos: tuned performance value for ISR exit cycles to pass in test in -Og 2019-12-04 10:39:22 -03:00
c64e108a1d components/freertos: removed CONFIG_FREERTOS_ISR_STATS the ISR test is now self contained 2019-12-04 10:39:22 -03:00
bcdc35be59 components/freertos: refactor of isr_latency tests to perform full measurement 2019-12-04 10:39:22 -03:00
8b6b97ec57 freertos/xtensa_context: fixed small typo 2019-12-04 10:39:22 -03:00
e480435879 components/freertos: removed some dead ifdefs 2019-12-04 10:39:22 -03:00
c14fc39b0a components/freertos: fixed typos and licence placement on external code 2019-12-04 10:39:22 -03:00
64f918bd70 freertos/xtensa_context: added conditional compiling option around isr cycle measurement
It is possible to enable and disable the isr time measurement on context save and
it related test via menuconfig by the new option: FREERTOS_ISR_STATS
2019-12-04 10:39:22 -03:00
346b12e29a freertos/test: added spill register timer measurement test 2019-12-04 10:39:22 -03:00
5ce7a33c87 freertos/xtensa_context.S: fix some dread tabs 2019-12-04 10:39:22 -03:00
d7d8b47b89 unity/unity_config.h: changed configuration for setjmp usage
For some reason after use modified context save routine, the local unit test
app were crashed, the reason behind this resides on setjmp usage of test_runner,
since this feature seems to not be used for nothing special (just was a default config),
I changed the unity_config to replace the setjmp macros, this sounds less hacky.
2019-12-04 10:39:22 -03:00
cd11787153 freertos/xt_asm_utils: added documentation of current windows spill solution 2019-12-04 10:39:22 -03:00
768d115e85 freertos/Kconfig: removed isr optimization option from menuconfig 2019-12-04 10:39:22 -03:00
eb740ca8e4 freertos/xtensa_context: modification of interrupt handler is workin, needs stabilization 2019-12-04 10:39:22 -03:00
d185625162 freertos/xtensa_context: added infrastructure to receive the spill register optimized code 2019-12-04 10:39:22 -03:00
de17a1487f mdns: respond to discovery with the proper pseudo name _services._dns-sd._udp
Closes https://github.com/espressif/esp-idf/issues/4369
Closes IDFGH-2219
2019-12-04 12:57:09 +00:00
d24fe09356 Merge branch 'feature/reorganise_bluetooth-bluedroid-hci' into 'master'
Moved HCI examples from bluetooth/bluedroid/hci to bluetooth/hci.

See merge request espressif/esp-idf!6686
2019-12-04 20:28:20 +08:00
0c0430a169 Merge branch 'bugfix/btdm_allow_start_adv_again' into 'master'
component/bt: allow to send stop adv again and fix tx prog crash

See merge request espressif/esp-idf!6573
2019-12-04 20:23:36 +08:00
9b06b5cdf9 Merge branch 'bugfix/idf_py_fallback' into 'master'
idf.py: fix fallback to build system target

See merge request espressif/esp-idf!6874
2019-12-04 16:53:11 +08:00
aac935ec81 bugfix(i2c): fix I2C driver breaking change issue.
1. Fixed I2C driver breaking change issue.
    2. Add I2C UT test case.
2019-12-04 15:51:36 +08:00
562a3980b2 idf.py: fix fallback to build system target 2019-12-04 07:13:31 +00:00
70cfd7e24c Merge branch 'bugfix/ethernet_pm_lock' into 'master'
ethernet: add pm lock

Closes IDF-1053

See merge request espressif/esp-idf!6881
2019-12-04 15:06:12 +08:00
af382a1b8e Merge branch 'bugfix/update_menuconfig' into 'master'
Update kconfiglib from v12.14.0 to v13.3.2

See merge request espressif/esp-idf!6816
2019-12-04 15:06:09 +08:00
ad21456971 Merge branch 'bugfix/doc_rm_mconf' into 'master'
Doc: Remove menuconfig tool which is not used anymore

See merge request espressif/esp-idf!6764
2019-12-04 15:05:00 +08:00
3a54047c66 Merge branch 'bugfix/coex_fix_wifi_scan_and_connect_bugs_master' into 'master'
esp_wifi: fix WiFi scan and connect bugs when coexist with Bluetooth

See merge request espressif/esp-idf!6840
2019-12-04 14:56:39 +08:00
054724596d Merge branch 'feature/add_ir_protocol_example_test' into 'master'
rmt: enable ir protocols example test

Closes IDF-906

See merge request espressif/esp-idf!6856
2019-12-04 14:35:22 +08:00
6563378812 Merge branch 'bugfix/ci_check_first' into 'master'
CI: Do trivial checks first in order to save build time

See merge request espressif/esp-idf!6671
2019-12-04 13:57:35 +08:00
bc36d20371 Merge branch 'feature/idfpy_exit_with_error_deprecated_options' into 'master'
idf.py: add exit_with_error for deprecated commands and options

Closes IDF-949

See merge request espressif/esp-idf!6704
2019-12-04 13:45:37 +08:00
71ae2956cd Merge branch 'bugfix/phy_critical' into 'master'
Bugfix/phy critical

See merge request espressif/esp-idf!6890
2019-12-04 11:26:58 +08:00
38be5c140a Merge branch 'feat/esp_ser_and_sdio_test' into 'master'
essl: new component to communicate with esp serial slave devices

Closes IDF-1002

See merge request espressif/esp-idf!6166
2019-12-04 11:03:14 +08:00
6647e0625d Merge branch 'bugfix/IDFGH-2036' into 'master'
Fix for Windows Defender PS task hanging (IDF tools installation)

Closes IDFGH-2036

See merge request espressif/esp-idf!6796
2019-12-04 03:00:23 +08:00
c066d55554 Merge branch 'bugfix/ci_link_check_deps' into 'master'
ci: remove dependencies from link_check job

See merge request espressif/esp-idf!6900
2019-12-03 23:32:38 +08:00
17b7c9036f sdio_example: use the new esp_ser component and new evboard 2019-12-03 22:58:43 +08:00
d158fa3f5c sdio: add unit test between host and slave 2019-12-03 22:58:42 +08:00
e91c7bcc3a sdspi: revert pin configs when deinit 2019-12-03 22:58:42 +08:00
e2b20f2e4b sdio_slave: fix deinit pin and memory leak issues 2019-12-03 22:58:41 +08:00
087c8f6065 essl: new component to communicate with esp serial slave devices 2019-12-03 22:58:41 +08:00
cf161b1c83 ethernet: add start/stop stress test 2019-12-03 17:58:03 +08:00
b7f16594de expat: Update library from 2.2.5 to 2.2.9 2019-12-03 09:57:29 +00:00
a4addc88f2 ci: remove dependencies from link_check job 2019-12-03 10:40:30 +01:00
ac11545e0a ethernet: warning when double start/stop 2019-12-03 16:10:20 +08:00
57ef88a91f ethernet: add pm lock 2019-12-03 16:10:20 +08:00
e4230d11ca bugfix(UART): fix uart driver spinlock misused bug
1. fix uart driver spinlock misused bug
    2. add uart driver ut test case
    3. undo the change in light_sleep_example_main.c
2019-12-03 16:06:31 +08:00
81b116b1b9 Update kconfiglib from v12.14.0 to v13.3.2
Thank you @ulfalizer for fixing the aquatic color theme in upstream
kconfiglib.

Now "xterm" or "screen" values of TERM environment variable is
sufficient to use our default blue menuconfig. "xterm-256color" or
"screen-256color" was necessary before this fix.

See https://github.com/espressif/esp-idf/issues/4387#issuecomment-557823262
2019-12-03 07:33:02 +00:00
7c8139734d Merge branch 'doc/ota_flashenc_config' into 'master'
docs: Add note that flash encryption is required in OTA app updates

See merge request espressif/esp-idf!6835
2019-12-03 15:03:46 +08:00
6bb09224b5 docs: Add note that flash encryption is required in OTA app updates 2019-12-03 15:03:46 +08:00
0ac47a6269 Merge branch 'feature/ethernet-kit-v1.1-cn' into 'master'
Feature/ethernet kit v1.1 cn

See merge request espressif/esp-idf!6379
2019-12-03 14:29:44 +08:00
1ffcb54444 Merge branch 'bugfix/fix_esp32-s2_rtc_io_issue' into 'master'
bugfix(gpio): fix esp32 s2 rtc io issue and gpio testcase issues

See merge request espressif/esp-idf!6832
2019-12-03 11:17:41 +08:00
c43fe5e52e rmt: enable ir protocols example test 2019-12-03 10:45:53 +08:00
e94c2a04c1 components/bt: Fix AVRC metadata length error 2019-12-03 02:44:49 +00:00
78891a9571 Merge branch 'feature/add_kconfig_for_jsmn' into 'master'
jsmn configuration added

Closes IDFGH-2274

See merge request espressif/esp-idf!6873
2019-12-03 10:43:06 +08:00
be3e52b49c doc: Finalize Ethernet get-started guide. Add Chinese translation. 2019-12-03 02:22:06 +00:00
134a627ad8 esp_wifi: fix WiFi scan and connect bugs when coexist with Bluetooth
1. Fix WiFi scan leads to poor performance of Bluetooth.
2. Improve WiFi connect success ratio when coexist with Bluetooth.
3. Check if WiFi is still connected when CSA or beacon timeout happen.
4. add coex pre init
2019-12-02 18:20:40 +08:00
506c46fddc idf.py: add exit_with_error for deprecation 2019-12-02 10:41:23 +01:00
b52b49c8b6 CI: Do check first in order to save build time 2019-12-02 09:58:31 +01:00
d1541c74a6 Give info and warnings about the TERM environment variable 2019-12-02 09:49:21 +01:00
f9335a1785 Merge branch 'bugfix/invalid_mmie_issue' into 'master'
esp_wifi: fix invalid mmie issue

See merge request espressif/esp-idf!6887
2019-12-02 16:44:15 +08:00
bcce4e3052 fix bug that phy_enter_critical cannot effect on dual-core
Sometimes, libphy.a call phy_enter_critical() to protect accessing
critical sections, such like operating on I2C, but it may not effect
when both the CPU core call it. It may cause accessing I2C blocking
and cannot recover by esp_restart(), until do HW reboot.
2019-12-02 14:56:18 +08:00
f696a29664 Merge branch 'bugfix/hfp_hci_sco' into 'master'
component bt/ Bugfix for HFP hci audio crash

See merge request espressif/esp-idf!6864
2019-12-02 13:55:57 +08:00
4e687db2ca Merge branch 'bugfix/wifi_wpa2_ent_example' into 'master'
Minor bugfix in wpa2_enterprise_example

See merge request espressif/esp-idf!6875
2019-12-02 13:54:51 +08:00
cde8df7887 Minor bugfix in wpa2_enterprise_example 2019-12-02 13:54:51 +08:00
0855fba8a6 Merge branch 'bugfix/reduce_ci_job_number'
Manually merge !6863
2019-12-02 15:01:10 +11:00
cf5c070e72 Merge branch 'NimBLE/fix_send_after_controller_ready' into 'master'
NimBLE: Fix erroneous behaviour of NimBLE porting layer when controller is not ready to receive

See merge request espressif/esp-idf!6756
2019-12-01 15:22:51 +08:00
656005ef3d NimBLE: Fix erroneous behaviour of NimBLE porting layer when controller is not ready to receive 2019-12-01 15:22:51 +08:00
68dc6b2158 jsmn: define macros in build system 2019-11-29 18:05:24 +08:00
460b1d6bb5 esp_wifi: Update wifi lib
Add fix to "Invalid MMIE" issue.
2019-11-29 14:47:36 +05:30
adf8a96602 fix hci sco crash bug for HFP 2019-11-29 06:51:18 +00:00
1263a38038 jsmn configuration added 2019-11-28 16:44:16 +03:00
5ba70e713a Merge branch 'test/http_server_advanced_tests' into 'master'
test: Refactor http_server advanced_tests to use regular import method

See merge request espressif/esp-idf!6803
2019-11-28 19:25:52 +08:00
da4cb76f5a test: Refactor TFW load_source() method to only take the file path
Fixes issues where example tests for persistent_sockets and advanced_tests both
loaded a module named "client", causing a race condition.
2019-11-28 19:25:52 +08:00
c8f483034d Merge branch 'bugfix/fix_nullptr_ref_esp_event_possibility' into 'master'
esp_event: fix possibility of null ptr dereference

See merge request espressif/esp-idf!6839
2019-11-28 17:22:55 +08:00
105267d537 Doc: Remove menuconfig tool which is not used anymore 2019-11-28 10:07:49 +01:00
e2e2de95b4 Merge branch 'feature/check_wifi_lib_md5_on_host' into 'master'
esp_wifi: check header files MD5 on host

See merge request espressif/esp-idf!6656
2019-11-28 16:48:53 +08:00
abd7031f71 Merge branch 'bugfix/btdm_fix_the_ble_throuthput_client_crash_bug_gyc' into 'master'
example/ble_throughput fix the throughput clinet crash bug when open the CONFIG_GATTC_WRITE_THROUTHPUT option

Closes BT-421

See merge request espressif/esp-idf!6830
2019-11-28 11:30:57 +08:00
979b05f933 example/ble_throughput fix the throughput clinet crash bug when open the CONFIG_GATTC_WRITE_THROUTHPUT option 2019-11-28 11:30:56 +08:00
d6ddae3693 Merge branch 'bugfix/ramdom_tcp_crash' into 'master'
fix bug for random tcp crash

Closes WIFI-1433

See merge request espressif/esp-idf!6837
2019-11-28 11:30:02 +08:00
6b6b42a0b5 ci: reduce the number of UT jobs 2019-11-28 10:44:31 +08:00
b8af7dd7cb Merge branch 'feature/esp32s2beta_spi_flash_driver' into 'master'
Use new SPI flash driver abstraction layers

See merge request espressif/esp-idf!5504
2019-11-28 09:20:01 +08:00
e6ad330018 ble_mesh_wifi_coexist example: Disable Wi-Fi RX IRAM optimisation
Otherwise IRAM usage is too high in this example.
2019-11-28 09:20:00 +08:00
ecaf816c0b Merge branch 'bugfix/freemodbus_fix_clang_warnings' into 'master'
freemodbus: fix clang warnings of freemodbus stack

See merge request espressif/esp-idf!5193
2019-11-28 07:06:19 +08:00
a9b7f74f7f Merge branch 'bugfix/macos_link_toomany_open_files' into 'master'
build system: explicitly disable LTO plugin to reduce the number of simultaneously open files

Closes IDF-923 and IDFGH-1764

See merge request espressif/esp-idf!6776
2019-11-28 01:38:53 +08:00
5d377e5b6e esp_wifi: update to include MD5 symbols 2019-11-27 23:08:57 +08:00
4872dcea2e wpa_supplicant: remove header file MD5 unit test 2019-11-27 23:00:11 +08:00
680c48f86f esp_wifi: remove MD5 related unit tests 2019-11-27 23:00:11 +08:00
568f0af61a esp_wifi: check header files MD5 on host 2019-11-27 23:00:11 +08:00
1fbeb8c9a4 Merge branch 'bugfix/hfp_ag' into 'master'
component bt/ Bugfix for hfp ag

See merge request espressif/esp-idf!6742
2019-11-27 22:48:59 +08:00
f76ac480c1 Merge branch 'fix/supplicant_md5sum_mismatch' into 'master'
wpa_supplicant: Fix MD5 mismatch in esp_wifi_driver.h

See merge request espressif/esp-idf!6843
2019-11-27 22:47:17 +08:00
77b23951e7 fix bug for ramdom tcp crash 2019-11-27 13:39:54 +00:00
897ee41a51 Change this MR from adding example to bugfix in HFP AG Component 2019-11-27 13:35:35 +00:00
7c18299571 Add AG component API_REFERENCE
Expose esp_hf_indchange_notification to this example.
2019-11-27 13:35:35 +00:00
0c6e1f7ef8 Fix the audio crash bugs
Fix voice recognition bugs

Fix audio memory leak bug.
2019-11-27 13:35:35 +00:00
a47c07d319 Update the README.md 2019-11-27 13:35:35 +00:00
78cbdfa332 HFP AG Example 2019-11-27 13:35:35 +00:00
f9ec0a7172 wifi_provisioning_softap: Allow applications to start webserver externally
If an application wants to use webserver, instead of creating another
webserver instance, the wifi provisioning manager can re-use the same.
The webserver handle can be passed using this new API.

Signed-off-by: Piyush Shah <piyush@espressif.com>
2019-11-27 18:42:43 +05:30
5618cf5100 wpa_supplicant: Fix MD5 mismatch in esp_wifi_driver.h
Make cosmetic changes in esp_wifi_driver.h in both IDF
and wifi library to match the md5sum.
2019-11-27 12:43:04 +00:00
880197307a Windows setup: fix Defender detection and add desktop shortcut option
* use Environment::Exit() to avoid PS process hanging
* old-fashioned exceptions
* try-catch-finally necessary
* disable Windows Defender Task when Defender module not installed
* cleanup script checks Defender module existence too
* fixed uninstall of Start Menu LNK
* use Command Prompt instead of Command Line wording
+ Desktop shortcut
* iterate through PSMODULEPATH when looking for WD module
JIRA IDFGH-2036
2019-11-27 13:40:51 +01:00
ca8e9a7589 Merge branch 'feature/touch_driver_hal_support' into 'master'
Refactor the touch sensor driver

See merge request espressif/esp-idf!6687
2019-11-27 20:08:45 +08:00
3a468a1ffd Refactor the touch sensor driver 2019-11-27 20:08:44 +08:00
fb369577d9 component/bt: allow adv stop again when adv is already stoped and fix crash when tx prog sometimes 2019-11-27 10:03:06 +00:00
c487df288c Merge branch 'bugfix/hfp_hci_audio_crash' into 'master'
component bt/ Bugfix for HFP hci audio crash

See merge request espressif/esp-idf!6739
2019-11-27 17:48:52 +08:00
af4c455417 bugfix(gpio):fix esp32 s2 rtc io issue
* Modify the function implementation of ESP32-S2 RTC GPIO
  On ESP32 those PADs which have RTC functions must set pullup/down/capability via RTC register.
  On ESP32-S2, Digital IOs have their own registers to control pullup/down/capability, independent with RTC registers.
* Add ESP32-S2 support of unit test
* Modify the pull-up test of unit test
* Modify the interrupt test of unit test
* Modify input and output mode test of unit test
2019-11-27 17:18:20 +08:00
59a04e21b0 Don't try to clean the old kconfig tools on Unix 2019-11-27 10:13:01 +01:00
89f1786754 Merge branch 'bugfix/eth_remove_dep_on_netif' into 'master'
ethernet: remove dependency on esp_netif && add reference counter

Closes IDF-1104

See merge request espressif/esp-idf!6711
2019-11-27 16:08:31 +08:00
3a8b346263 Merge branch 'component_bt/osi_fixed_queue' into 'master'
component bt/: Bugfix for pointer type in file fixed_queue.c

Closes BT-492

See merge request espressif/esp-idf!6831
2019-11-27 15:56:49 +08:00
dcd99b0ad1 enlarge example cmake build job parallel num 2019-11-27 14:14:08 +08:00
c3ee156df0 ethernet: move netif glue && add ref counter
1. move netif glue into single file
2. add reference counter for Ethernet driver
2019-11-27 10:36:32 +08:00
e349f86d18 Merge branch 'bugfix/ble_mesh_device_with_wrong_name_on_ios' into 'master'
ble_mesh: fix ble mesh device with wrong name on iOS

Closes BLEMESH-54

See merge request espressif/esp-idf!6516
2019-11-27 10:30:25 +08:00
91b7a7beaf Merge branch 'bugfix/timer_intr_status_get' into 'master'
bugfix(timer): fix get intr status function

See merge request espressif/esp-idf!6807
2019-11-27 09:13:16 +08:00
64c8b640a1 Merge branch 'feature/log_component_noos' into 'master'
log: make compatible with non-OS builds

See merge request espressif/esp-idf!6787
2019-11-27 08:34:22 +08:00
c810f3c3b2 Merge branch 'bugfix/menuconfig_colors' into 'master'
Make menuconfig colors configurable

Closes IDFGH-2238

See merge request espressif/esp-idf!6795
2019-11-27 08:30:19 +08:00
fd27c0a113 Merge branch 'bugfix/bootloader_unicore_cache_enable' into 'master'
bootloader: revert support for booting dual-core apps on single-core bootloader

See merge request espressif/esp-idf!6609
2019-11-27 08:01:59 +08:00
b034c52a93 Merge branch 'feature/uart_hal_support' into 'master'
Driver(uart):  Uart HAL driver refactor

Closes IDF-608

See merge request espressif/esp-idf!4849
2019-11-27 07:57:02 +08:00
f287f59ae3 build system: move -fno-rtti link option next to the compile option
Previous commit has added `link_options` to the root CMakeLists.txt,
can use it to collect such global link options now.
2019-11-26 19:12:56 +01:00
f49a78d543 build system: explicitly disable LTO plugin
... to reduce the number of simultaneously open files at link time.

When plugin support is enabled in the linker, BFD's (and the
corresponding file handles) are cached for the plugin to use. This
results in quite a large number of simultaneously open files, which
hits the default limit on macOS (256 files).

Since we aren't using LTO now, disable it explicitly when invoking the
linker.

Closes IDF-923
Closes IDFGH-1764
Closes https://github.com/espressif/esp-idf/issues/3989
2019-11-26 19:12:56 +01:00
9e49a5dc34 Merge branch 'bugfix/include_cpp_guard_headers_in_app_trace' into 'master'
bugfix/esp32: add cpp guard headers for app_trace component

See merge request espressif/esp-idf!6827
2019-11-26 23:47:03 +08:00
f1116be195 bugfix for osi_fixed_queue pointer type 2019-11-26 21:16:47 +08:00
bcfe684951 bugfix(timer): add a macro to control making the XTAL related functions 2019-11-26 12:39:46 +00:00
856d9f7d89 bugfix(timer): recover get raw interrupt status function 2019-11-26 12:39:46 +00:00
320608c85a bugfix/esp32: add cpp guard headers for app_trace component so that its
API's can be can be used in cpp files.
2019-11-26 17:44:15 +05:30
f27ae9b0e2 feature: Add uart hal support. 2019-11-26 20:01:50 +08:00
1dd2443758 Merge branch 'docs/openocd_cmd_line_fixup' into 'master'
docs: Fix up some OpenOCD cmdline-s

See merge request espressif/esp-idf!6814
2019-11-26 19:44:22 +08:00
def05480b8 docs: Fix up some OpenOCD cmdline-s 2019-11-26 19:44:22 +08:00
899f3decab Merge branch 'feature/wpa3_SAE_support' into 'master'
wpa_supplicant: Add SAE authentication support for WPA3 Personal

Closes IDF-715

See merge request espressif/esp-idf!5903
2019-11-26 18:59:19 +08:00
7948a9f6f0 Merge branch 'bugfix/fix_i2c_driver_ut_issue_esp32s2' into 'master'
bugfix(i2c): fix esp32-s2 i2c driver UT issue

See merge request espressif/esp-idf!6820
2019-11-26 18:52:59 +08:00
6e14b6265b freemodbus: fix merge issues 2019-11-26 11:25:12 +01:00
bd2fc9f832 Make menuconfig colors configurable
Closes https://github.com/espressif/esp-idf/issues/4387
2019-11-26 10:40:34 +01:00
cf4c95532f freemodbus: fix clang warnings 2019-11-26 10:37:14 +01:00
a3b47da377 Merge branch 'bugfix/freemodbus_fix_supported_targets' into 'master'
freemodbus: fix supported targets ci issue

See merge request espressif/esp-idf!6823
2019-11-26 17:16:44 +08:00
4f9742d90c freemodbus: fix supported targets ci issue 2019-11-26 09:07:47 +01:00
81c9ca52ed Merge branch 'feature/ws_config_agent_header' into 'master'
ws_client: Add User-Agent and additional headers to esp_websocket_client

See merge request espressif/esp-idf!6777
2019-11-26 14:42:01 +08:00
a29f667b87 Merge branch 'bugfix/kconfig_write_empty_files' into 'master'
tools: Write Kconfig files always

See merge request espressif/esp-idf!6763
2019-11-26 13:58:49 +08:00
0d5056f683 Merge branch 'bugfix/idf_tool_git_worktree' into 'master'
tools: Don't use git work-tree in idf_tools.py and try to parse IDF version from C header

Closes IDFGH-2203

See merge request espressif/esp-idf!6743
2019-11-26 13:57:12 +08:00
e679b3c79e wifi: Add PMF and WPA3 documentation 2019-11-26 11:00:20 +05:30
f2e37c4ca8 wpa_supplicant: Support WPA3 4-way handshake, add config option
1. Add changes in 4-way handshake path to allow SAE key mgmt.
2. Support for configuring WAP3 at init time, added Kconfig option.
3. Handle and propagate error conditions properly.
4. Link changes from WiFi library.
2019-11-26 10:59:55 +05:30
2345895302 Merge branch 'feature/freemodbus_master_ascii_support' into 'master'
freemodbus: add support for master ascii mode

Closes IDFGH-1639

See merge request espressif/esp-idf!6032
2019-11-26 13:16:27 +08:00
67f62a79c1 freemodbus: add modbus master ascii
add support of modbus master ascii
rename base dir name of master and slave example to be mb_slave, mb_master to avoid conflict with sdio/slave example test
add Kconfig option to enable ASCII and RTU mode separately
update ASCII options + remove cast for errors
added baudrate for examples into Kconfig
updated magic numbers for timer timeout
put ascii private definitions into one file
2019-11-26 13:16:25 +08:00
e8089c1edb Merge branch 'bugfix/spi_slave_dma_free_chan' into 'master'
spi_slave.c:fix DMA channel set to zero which might gets conflict with assert

See merge request espressif/esp-idf!6748
2019-11-26 13:11:50 +08:00
1669dc40d1 spi_slave.c:fix DMA channel set to zero which might gets conflict with assert
close #2740
2019-11-26 13:11:48 +08:00
da07b2b4a7 wpa_supplicant: Add SAE handshake support for WPA3-PSK
Under WPA3-Personal, SAE authentication is used to derive PMK
which is more secure and immune to offline dictionary attacks.
1. Add modules to generate SAE commit/confirm for the handshake
2. Add modules that build and parse SAE data in Auth frames
3. Add WPA3 association and key mgmt definitions
4. Invert y-bit while solving for ECC co-ordinate -
     Once an X co-ordinate is obtained, solving for Y co-ordinate
     using an elliptical curve equation results in 2 possible values,
     Y and (P - Y), where p is the prime number. The co-ordinates are
     used for deriving keys in SAE handshake. As par the 802.11 spec
     if LSB of X is same as LSB of Y then Y is chosen, (P - Y) otherwise.
     This is not what is implemented, so fix this behavior to obtain the
     correct Y co-ordinate.
2019-11-26 04:24:57 +00:00
aceb141d2b wpa_supplicant: Adding SAE modules with testcase
This change ports SAE(Simultaneous Authentication of Equals)
feature from wpa_supplicant and makes it work with mbedtls
crypto APIs. Currently only group 19 is supported. A sample
SAE handshake is included in the testcase. Other minor
changes for DH groups are also included.
2019-11-26 04:24:57 +00:00
54eeb77a56 Merge branch 'feature/support_pmf' into 'master'
Feature/support pmf

See merge request espressif/esp-idf!5708
2019-11-26 12:13:43 +08:00
f0f20e0496 bugfix(i2c): fix esp32-s2 i2c driver UT issue 2019-11-26 12:01:18 +08:00
649f27c620 Merge branch 'bugfix/idfpy_cmake_cache_encoding' into 'master'
idf.py: add encoding option

Closes IDFGH-1905

See merge request espressif/esp-idf!6589
2019-11-26 11:50:15 +08:00
09fb1aa008 Merge branch 'docs/netif_mighration_guide' into 'master'
esp_netif: added tcpip_adapter migration guide

See merge request espressif/esp-idf!6753
2019-11-26 10:49:49 +08:00
52c5cc038a bugfix for HFP hci audio crash 2019-11-26 02:34:09 +00:00
680415b9ce Merge branch 'bugfix/ci_openocd_ignore_error' into 'master'
CI: ignore a non-fatal error in the loadable ELF file example

See merge request espressif/esp-idf!6810
2019-11-26 08:10:43 +08:00
e092d6f858 coredump: Makes compatible with legacy binary core dumps
Also:
 - improves coredump versioning scheme
 - Moves some API funtions to respective flash/UART dependent code
2019-11-25 22:44:51 +03:00
c56a954976 Merge branch 'bugfix/idfpy_unknown_target_message' into 'master'
idf.py: Fix error message for unknown target

See merge request espressif/esp-idf!6817
2019-11-26 00:10:09 +08:00
dc4a5d06e3 idf.py: Fix error message for unknown target 2019-11-25 15:41:34 +01:00
557234d625 Merge branch 'budfix/fix_i2c_driver_ut' into 'master'
bugfix(i2c): fix i2c driver ut issue.

See merge request espressif/esp-idf!6805
2019-11-25 21:31:35 +08:00
686abe6a2f CI: ignore a non-fatal error in the loadable ELF file example 2019-11-25 13:57:39 +01:00
8eef8654a6 Merge branch 'bugfix/idfpy_verbose_flag' into 'master'
idf.py: Fix --verbose flag

See merge request espressif/esp-idf!6812
2019-11-25 20:46:37 +08:00
262ed0e72b idf.py: Fix regression ignorance of --verbose flag 2019-11-25 11:47:55 +01:00
1a012b7ad2 esp_netif: docs update to include tcpip_adapter migration guide
added migration guide link to the esp-netif page and network page
added redirects from tcpip_adapter to new esp_netif
2019-11-25 08:32:11 +01:00
af3f821fd7 docs: update wifi documentation per recent update of esp-idf-template project to use a plain hello-world application 2019-11-25 08:24:59 +01:00
5286c8308c bugfic(i2c): fix i2c driver ut issue. 2019-11-25 07:03:02 +00:00
bb139d2b83 esp_event: fix possibility of null ptr dereference
Closes https://github.com/espressif/esp-idf/issues/4373
2019-11-25 14:27:10 +08:00
f2a1a6105a Merge branch 'feat/mcpwm_hal'
Manual merge of !6626
2019-11-25 17:18:48 +11:00
129c9311ca Merge branch 'bugfix/menuconfig_confirm' into 'master'
Menuconfig: Don't ask to save configuration when nothing has changed

Closes IDFGH-2148

See merge request espressif/esp-idf!6643
2019-11-25 13:42:27 +08:00
dbae85dde8 Merge branch 'bugfix/timer_driver_ut' into 'master'
driver/timer: fix software reset UT (again)

See merge request espressif/esp-idf!6801
2019-11-25 12:54:52 +08:00
bf80a50c85 Merge branch 'bugfix/idf_tools_add_ULP_for_armel' into 'master'
tools: Add ULP utils for ARMEL

See merge request espressif/esp-idf!6800
2019-11-25 12:13:42 +08:00
75ea0df916 Add encryption/decryption support for PMF
1. Add CCMP, AES crypto modules for unicast protected Mgmt frames
2. Add support for computing SHA256 MIC on Bcast Mgmt frames
3. Add support for storing iGTK during 4-way handshake.
4. Provide APIs to MLME for utilizing the SW crypto modules
5. Link PMF changes from WiFi library submodule
2019-11-25 04:11:09 +00:00
773e095a65 Add support for PMF configuration and negotiation
1. Add APIs for configuring PMF through set config.
2. Map Supplicant and Wifi Cipher types.
3. Add support for PMF negotiation while generating RSN IE.
2019-11-25 04:11:09 +00:00
ddef4f9129 Merge branch 'feature/set_dhcp_timeout' into 'master'
Add feature for set dhcp time out

Closes WIFI-797 and IDF-1100

See merge request espressif/esp-idf!6370
2019-11-25 12:04:20 +08:00
6dd36fd571 Merge branch 'refactor/hal_gpio_driver'
Manual merge of !5597
2019-11-25 10:49:40 +11:00
f34edba8f3 Merge branch 'feature/adc_driver_hal_support'
Manual merge of !6044
2019-11-25 10:22:06 +11:00
82d89afe1f driver/timer: fix software reset UT (again) 2019-11-24 21:10:50 +01:00
538540ce21 mcpwm: add HAL layer support
Also improved the unit tests a bit.
2019-11-25 00:36:30 +08:00
1fb2fd89de mcpwm: fix the fault handling and capture issues
1. The fault signal 3 for unit 2 is corrected to the right value

2. Now `mcpwm_fault_set_oneshot_mode` will clear the status before, no
need to reset the peripheral.

3. The capture feature relies on the prescaler, but it's only
initialized in the mcpwm_init funciton, which is used to initialize a
PWM channel. This means, the capture may not work correctly if no PWM
channel is enabled.

   Now the prescaler is also updated when `mcpwm_capture_enable` is
called.
2019-11-25 00:36:30 +08:00
0f6dd34971 mcpwm: enable some unit tests again 2019-11-25 00:36:30 +08:00
d839f39ed8 Merge branch 'feature/ci_optimize_assign_test' into 'master'
CI: optimize assign test

See merge request espressif/esp-idf!6785
2019-11-24 19:22:41 +08:00
60994329ce Merge branch 'bugfix/idf_tools_download_on-request_tools' into 'master'
idf_tools.py: fix downloading for tools which have "on_request" options

See merge request espressif/esp-idf!6757
2019-11-24 19:11:33 +08:00
0ed38ca24d idf_tools.py: fix downloading for tools which have "on_request" options for some platforms.
'install' and 'download' options can be used for 'required' or 'all' tools
2019-11-24 19:11:33 +08:00
11837f7f5d tools: Add ULP utils for ARMEL 2019-11-24 12:02:50 +07:00
857d10a926 unit-test-app: print config name in test script 2019-11-23 20:40:23 +08:00
3c99de352c tiny-test-fw: only load module from the same file one time:
we should only load one module once.
if we load one module twice, python will regard the same object loaded in the first time and second time as different objects.
it will lead to strange errors like `isinstance(object, type_of_this_object)` return False
2019-11-23 20:40:23 +08:00
9665c6ef66 unit-test-app: fix test script error when handling multiple unit test configs in one config file:
If we have multiple configs, we need to flash DUT with different binaries. But if we don't close DUT before apply new config, the old DUT will be reused, so new config name will not be applied.
2019-11-23 20:40:23 +08:00
1c65f1aed3 ci: reduce the number of unit test jobs 2019-11-23 20:40:23 +08:00
cb4c25bc67 ci: use more flexible assign for unit test cases 2019-11-23 20:39:19 +08:00
757e2d021e tiny-test-fw: print useful debug info when assign test:
* total requirements (number of required jobs vs tags)
* unused CI jobs
* missing jobs (number of missing jobs vs tags)
2019-11-23 20:39:19 +08:00
b12a8bce5f ci: optimize unit test assignment:
Currently we use config and test function as filter when assign cases to one CI job. It's not necessary as the runner can run test with different configs / test functions. Now we will try to assign as many cases to a job as possible, to reduce the amount of jobs required.
2019-11-23 20:39:19 +08:00
74ca3fc571 tiny-test-fw: revise unit test job config file:
`overwrite` should be included by each case config
2019-11-23 20:39:19 +08:00
b7b4cd3418 Merge branch 'bugfix/timer_group_reset_ut' into 'master'
timer: remove check for POWERON_RESET in the test case, add esp_reset_reason API for s2beta

See merge request espressif/esp-idf!6747
2019-11-23 14:04:41 +08:00
719c8eb627 Merge branch 'bugfix/esp_netif_early_fixes' into 'master'
esp-netif: fixed early issues on esp-netif

See merge request espressif/esp-idf!6792
2019-11-22 20:19:20 +08:00
676b5e0deb log: refactoring to make compatible with no-FreeRTOS builds 2019-11-22 11:41:35 +01:00
6fda3df953 Merge branch 'bugfix/gpio_pin_bit_mask_truncation' into 'master'
driver: fix gpio pin_bit_mask truncation in sdspi_host and others

See merge request espressif/esp-idf!6746
2019-11-22 17:41:05 +08:00
0deeae38a9 Merge branch 'bugfix/fix_timer_deleted_and_run_broken_callback' into 'master'
esp_timer: fix the bug that when timeout of timer happens try to run callback,...

Closes WIFI-1214

See merge request espressif/esp-idf!6765
2019-11-22 17:37:51 +08:00
acdb2a5dc0 ci: add test job with ESP32S2BETA_IDF tag 2019-11-22 10:36:51 +01:00
d9433ef692 mdns: fixed forgotten merge conflicts in debug code 2019-11-22 10:31:06 +01:00
c5a6bc9985 esp_netif: added missing C++ guards
Closes https://github.com/espressif/esp-idf/issues/4389
2019-11-22 10:31:06 +01:00
a3b79e9202 refactor(gpio): add hal gpio driver 2019-11-22 17:24:53 +08:00
2eea2dbeb4 Add feature for set dhcp time out 2019-11-22 17:24:16 +08:00
e4f641f5a9 Merge branch 'bugfix/i2s_driver_apll_test_regression' into 'master'
i2s: fix regression in retrieval of chip revision causing apll test to fail

See merge request espressif/esp-idf!6786
2019-11-22 17:06:29 +08:00
989825908b Merge branch 'feature/esp32s2beta_ulp_projbuild' into 'master'
Support esp32s2beta ULP in build system

See merge request espressif/esp-idf!5412
2019-11-22 15:59:44 +08:00
f49b192a5e refactor the adc driver 2019-11-22 15:42:16 +08:00
25c0752682 i2s: fix regression in retrieval of chip revision causing apll test to fail 2019-11-22 11:46:38 +05:30
b38bc2f8f5 s2 support for make build removed. 2019-11-22 09:03:23 +03:00
845b2d1cfe Jumps change back to jumpr. because example supports esp32 only. 2019-11-22 09:03:23 +03:00
1518c410bc A switch between esp32 and esp32s2betta added to the ULP build process.
The new bin utils will have extension esp32s2ulp-elf, and they have to be placed to the bin directory.
2019-11-22 09:03:13 +03:00
a8d3e3ab4a Merge branch 'feature/dac_driver_hal_support' into 'master'
dac: add hal for dac driver

See merge request espressif/esp-idf!5591
2019-11-22 13:59:32 +08:00
6a91c8d440 Changes in menuconfig options to not compile any host when using hci
examples as no host is required there.
2019-11-22 11:14:50 +05:30
a104bc22ae README fixes 2019-11-22 11:11:37 +05:30
85b66801b1 Moved HCI examples from bluetooth/bluedroid/hci to bluetooth/hci. 2019-11-22 11:11:37 +05:30
f64ee5aba3 Merge branch 'feature/coredump_data_in_elf_format' into 'master'
coredump: change data format to ELF

Closes IDF-43

See merge request espressif/esp-idf!4398
2019-11-22 13:25:44 +08:00
27ce4d13df coredump: change data format to ELF 2019-11-22 13:25:43 +08:00
7eb89ae868 Merge branch 'feature/idfpy_unknown_targets_fallback' into 'master'
idf.py: run build system target for unknown sub-commands

Closes IDF-748

See merge request espressif/esp-idf!6644
2019-11-22 13:22:23 +08:00
03ac1aaafd dac: refactor driver add hal 2019-11-22 11:44:46 +08:00
0e0994092e Merge branch 'feature/esp32s2beta_fix_rtc_peripheral_driver' into 'master'
Driver: fix touch driver and deep sleep example

See merge request espressif/esp-idf!6476
2019-11-22 11:39:41 +08:00
ea29c101cd Merge branch 'bugfix/fix_iram_intr_alloc_test' into 'master'
ccomp_timer: fix broken unit test

See merge request espressif/esp-idf!6779
2019-11-22 08:41:50 +08:00
dc00c360ab Merge branch 'bugfix/esp32s2beta_crtbegin' into 'master'
esp32s2beta: fix crash at startup due to toolchain crtbegin being linked

See merge request espressif/esp-idf!6783
2019-11-22 07:01:32 +08:00
477e66103c Merge branch 'feature/esp32s2beta_apptrace_port' into 'master'
esp32s2: Adds apptrace support

Closes IDF-510 and IDF-1032

See merge request espressif/esp-idf!5610
2019-11-22 05:33:35 +08:00
8ff801766a Merge branch 'docs/update_oocd_config_on_cmd_line' into 'master'
Updates OpenOCD configuration file names in documentation

See merge request espressif/esp-idf!6226
2019-11-22 05:32:35 +08:00
9200250f51 Add User-Agent and additional headers to esp_websocket_client
Merges https://github.com/espressif/esp-idf/pull/4345
2019-11-21 21:14:29 +01:00
ad986849a6 timer: remove check for POWERON_RESET in the test case
The test case may run after an RTC_WDT_RESET (if we are on rev. 0
ESP32), or software reset (when running test cases locally).

Also moving the test case next to the other timer group driver tests.
2019-11-21 20:03:26 +01:00
ea99137e62 esp32s2beta: implement esp_reset_reason API 2019-11-21 20:03:26 +01:00
38520d3b65 Merge branch 'feature/build_apps_script' into 'master'
tools: add build_apps.py, script to build multiple apps

Closes IDF-641

See merge request espressif/esp-idf!6101
2019-11-22 02:54:28 +08:00
951ed739f7 soc/cpu: add non-xtensa-specific replacement of xthal_get_ccount 2019-11-21 19:22:35 +01:00
910f49942e examples: fix test function name in cpp_rtti example 2019-11-21 15:36:06 +01:00
d0e1edcd53 examples: add 2 CI build/test configurations for system/console 2019-11-21 15:36:06 +01:00
871ea650f6 examples: fix sdkconfig warnings 2019-11-21 15:36:06 +01:00
dbae5c93f0 examples: fix loadable elf test 2019-11-21 15:36:06 +01:00
ebd7004a31 examples: update wifi/iperf to use the new builder 2019-11-21 15:36:06 +01:00
30d21adcca ci: don't add build_examples_make as a target_test dependency 2019-11-21 15:36:06 +01:00
e1aee5ad09 ci: reimplement build_examples_cmake using {find,build}_apps.py 2019-11-21 15:36:06 +01:00
0e6e7f49be tiny-test-fw: add build config and target options 2019-11-21 15:36:06 +01:00
7ac8f28dda tools: add build warnings checking script 2019-11-21 15:36:06 +01:00
9d15c1fd40 tools: add {find,build}_apps.py, scripts to build multiple apps
This commit adds a pair of scripts, find_apps.py and build_apps.py.
These scripts are intended to be used in various CI jobs, building
multiple applications with different configurations and targets.

The first script, find_apps.py, is used to prepare the list of builds:
1. It finds apps for the given build system.
2. For each app, it finds configurations (sdkconfig files) which need
   to be built.
3. It filters out the apps and configurations which are not compatible
   with the given target.
4. It outputs the list of builds into stdout or a file. Currently the
   format is a list of lines, each line a JSON string. In the future,
   the tool can be updated to output YAML files.

The lists of builds can be concatenated and processed with standard
command line tools, like sed.

The second script, build_apps.py, executes the builds from the list.
It can execute a subset of builds based on --parallel-count and
--parallel-index arguments.

These two scripts are intended to replace build_examples_make,
build_examples_cmake, and the custom unit-test-app logic (in the
Makefile and idf_ext.py).

Closes IDF-641
2019-11-21 15:36:06 +01:00
e1452f5d6c lw-ip: silence a warning related to CONFIG_LWIP_TCP_WND_DEFAULT value 2019-11-21 15:36:06 +01:00
096dc8fc2b esp32s2beta: rename output linker script 2019-11-21 15:29:00 +01:00
29623c46b4 Merge branch 'feature/i2c_hal_support' into 'master'
feature: Add i2c hal support.

Closes IDF-611

See merge request espressif/esp-idf!5500
2019-11-21 21:58:22 +08:00
50fe7e540e esp_timer: fix the bug that when timeout of timer happens try to run callback, and high priority task delete the timer and break the callback 2019-11-21 13:54:50 +00:00
28286183d1 feature(I2C): Add i2c hal support. 2019-11-21 20:34:07 +08:00
246242dbd5 driver: fix sens_struct.h;
driver: fix timer wakeup dsleep;
example: fix EXT1 wakeup dsleep;
example: fix touch pad wakeup dsleep;
2019-11-21 20:31:34 +08:00
1be70588f3 Merge branch 'bugfix/idf_tools_guess_idf_path' into 'master'
idf_tools.py: when guessing IDF_PATH, set it in the enviroment

Closes IDF-1141 and IDFGH-2189

See merge request espressif/esp-idf!6752
2019-11-21 20:30:08 +08:00
43411da465 Merge branch 'bugfix/freertos_critical_section_compliance' into 'master'
Changes in uart and esp_timer for critical section compliance with vanilla FreeRTOS

See merge request espressif/esp-idf!6733
2019-11-21 19:25:14 +08:00
a3162754aa Merge branch 'feature/ledc_hal_support' into 'master'
feat(ledc): refactor ledc driver

See merge request espressif/esp-idf!5746
2019-11-21 19:19:43 +08:00
04324e4c3c esp32s2beta: re-enable entering the debugger on panic 2019-11-21 11:52:10 +01:00
f21261d39c esp32s2beta: don't use crtbegin from the toolchain
Similar to 22514c1dd9 for esp32
2019-11-21 11:52:10 +01:00
fdd05b7bef Merge branch 'feature/timer_group_hal_support' into 'master'
feat(timer): refactor timer group driver

See merge request espressif/esp-idf!5592
2019-11-21 17:05:11 +08:00
857dec108d feat(ledc): refactor ledc driver
1. add hal and low-level layer for ledc driver
2. support esp32s2beta ledc
2019-11-21 16:25:22 +08:00
be749395c4 Menuconfig: Don't ask to save configuration when nothing has changed
Closes https://github.com/espressif/esp-idf/issues/4303
2019-11-21 06:47:11 +00:00
9f9da9ec96 feat(timer): refator timer group driver
1. add hal and low-level layer for timer group
2. add callback functions to handle interrupt
3. add timer deinit function
4. add timer spinlock take function
2019-11-21 14:14:19 +08:00
8c3cb232f0 Merge branch 'refactor/hal_sigmadelta_driver' into 'master'
refactor(sigmadelta): add hal sigmadelta driver

See merge request espressif/esp-idf!5599
2019-11-21 13:35:07 +08:00
6540877f23 test_utils: move ccomp timer interrupt allocation/free to init/deinit 2019-11-21 11:59:46 +08:00
e62b831867 refactor(sigmadelta): add hal sigmadelta driver 2019-11-21 11:53:07 +08:00
03d24b034e Merge branch 'feature/rtcio_driver_hal_support' into 'master'
rtcio: add hal for driver

See merge request espressif/esp-idf!5628
2019-11-21 11:47:22 +08:00
0c2bf7c8bc rtcio: add hal for driver 2019-11-21 10:40:49 +08:00
b30b0e59fa Merge branch 'feature/add_rmt_hal' into 'master'
rmt: add hal layer and new examples

Closes IDF-841, IDF-844, and IDF-857

See merge request espressif/esp-idf!5649
2019-11-21 09:53:54 +08:00
bc3233782b Merge branch 'feature/remove_gcc5_support' into 'master'
global: remove gcc 5.2 support

Closes IDF-1131

See merge request espressif/esp-idf!6608
2019-11-21 09:08:41 +08:00
e673817530 ccomp_timer: fix broken unit test 2019-11-21 08:45:11 +08:00
e510e1779d Merge branch 'bugfix/gcov_in_components' into 'master'
Fixes libgcov and libapp_trace cross dependency linking issue

Closes IDF-834

See merge request espressif/esp-idf!6250
2019-11-21 07:09:04 +08:00
95b9b41258 Merge branch 'bugfix/ethernet_add_reference_counter' into 'master'
ethernet: add reference counter for mac and phy && add gpio config outof Kconfig

Closes IDF-1056

See merge request espressif/esp-idf!6682
2019-11-21 06:58:13 +08:00
87c979ae09 docs: add idf.py fallback commands and subcommand options 2019-11-20 12:23:03 +01:00
9a2af7ae33 global: remove gcc 5.2 support 2019-11-20 11:17:27 +01:00
f9d5b67b81 Merge branch 'refactor/hal_i2s_driver' into 'master'
refactor(i2s): add hal i2s driver

Closes IDFGH-2097

See merge request espressif/esp-idf!5601
2019-11-20 17:45:21 +08:00
206fa14d68 Merge branch 'doc/jtag_debugging_at_firm_compatibility' into 'master'
Add information on compatibility issue between JTAG and AT firmware.

See merge request espressif/esp-idf!6710
2019-11-20 15:01:57 +08:00
1d06b6b07e Add information on compatibility issue between JTAG and AT firmware. 2019-11-20 15:01:56 +08:00
5bc644bbdf Merge branch 'bugfix/example_ble_hid_device_demo_fix_error_mask' into 'master'
example/ble_hid_device_demo fix the wrong mask value according to HID protocol

Closes BCI-127

See merge request espressif/esp-idf!6758
2019-11-20 12:46:20 +08:00
357cc19da3 rmt: refactor examples 2019-11-20 10:54:21 +08:00
8fd8695ea1 rmt: add HAL layer 2019-11-20 10:54:21 +08:00
72ad9ab5eb doc: move common Ethernet config explanation into a single file 2019-11-20 10:36:45 +08:00
05d71319de ethernet: add gpio number into config structure 2019-11-20 10:36:45 +08:00
f3d0429a9e ethernet: add reference counter for mac and phy 2019-11-20 10:36:45 +08:00
bcf1f992ff Merge branch 'ci/fix_iperf_example_test_failure' into 'master'
ci: fix iperf example test and LEDC unit test error

See merge request espressif/esp-idf!6754
2019-11-20 10:34:41 +08:00
bc9267aa24 Merge branch 'feature/use_cpu_time_for_tests' into 'master'
Cache compensated timer

See merge request espressif/esp-idf!6087
2019-11-20 08:33:27 +08:00
412b202741 Merge branch 'bugfix/ws_client_fix_wait_forever_timeout' into 'master'
ws_client: fix handling timeouts by websocket client.

Closes IDFGH-2161

See merge request espressif/esp-idf!6683
2019-11-20 07:44:25 +08:00
bd49b3f315 Merge branch 'bugfix/soc_missing_tests' into 'master'
soc: fix unit tests not included in the build

See merge request espressif/esp-idf!6723
2019-11-20 00:32:43 +08:00
8c76a3c10d refactor(i2s): add hal i2s driver 2019-11-19 22:19:19 +08:00
e533c88760 tools: Write Kconfig files always
Write COMPONENT_KCONFIGS_SOURCE_FILE and
COMPONENT_KCONFIGS_PROJBUILD_SOURCE_FILE files always even when
COMPONENT_KCONFIGS or COMPONENT_KCONFIGS_PROJBUILD are empty variables
because kconfiglib expects them to exist.
2019-11-19 15:11:11 +01:00
18c594e250 idf.py: run build system target for unknown commands 2019-11-19 13:28:00 +01:00
a74988ae3b Merge branch 'bugfix/cpp_extern' into 'master'
Add extern C header guards to some files

Closes IDFGH-2025 and IDFGH-2093

See merge request espressif/esp-idf!6611
2019-11-19 19:01:29 +08:00
7494877b1c Merge branch 'refactor/hal_pcnt_driver' into 'master'
refactor(pcnt): add hal pcnt driver

See merge request espressif/esp-idf!5600
2019-11-19 17:22:49 +08:00
9e0b9fcf4e Merge branch 'bugfix/btdm_run_out_of_frame_element' into 'master'
components/bt: Fix assert due to no free element from

Closes BT-461

See merge request espressif/esp-idf!6574
2019-11-19 17:01:23 +08:00
62a0659368 Merge branch 'bugfix/warning_fix_latest_freertos' into 'master'
Fixed warnings for components driver, esp32 and mbedtls

See merge request espressif/esp-idf!6673
2019-11-19 16:48:54 +08:00
2af64d132f example:ble_hid_device_demo fix the wrong mask value according to HID protocol 2019-11-19 16:24:36 +08:00
af945096b2 Merge branch 'bugfix/confgen_gen_source_from_build' into 'master'
Generate source files for kconfiglib from the build system

See merge request espressif/esp-idf!6433
2019-11-19 14:19:49 +08:00
6f633b2d5b Merge branch 'bugfix/btdm_disable_some_secrity_mask' into 'master'
components/bt: Disable some unsupported security mask

See merge request espressif/esp-idf!6724
2019-11-19 12:15:25 +08:00
ca217e04ec ci: reduce the required num of jobs for ESP32S2 beta LEDC cases 2019-11-19 11:51:26 +08:00
f8476c042d Merge branch 'feature/transport_ssl_support_alpn' into 'master'
tcp_transport: added functionality for using ALPN with SSL

Closes IDF-1160

See merge request espressif/esp-idf!6684
2019-11-19 11:36:09 +08:00
3761441b0e Merge branch 'bugfix/remove_stale_files' into 'master'
Remove accidentally merged and stale files

See merge request espressif/esp-idf!6658
2019-11-19 11:28:53 +08:00
613b9b613d ci: fetch all submodules for iperf example test 2019-11-19 11:18:59 +08:00
9fa3974447 idf_tools.py: when guessing IDF_PATH, set it in the enviroment
This allows the processes launched from idf_tools.py to use the value
of IDF_PATH. One such example is the installation of Python packages,
when requirements.txt uses IDF_PATH to refer to the esp-windows-curses
package.

Closes https://github.com/espressif/esp-idf/issues/4341
2019-11-18 16:22:25 +01:00
5b6b624e1f driver: fix gpio pin_bit_mask truncation in sdspi_host and others
Closes https://github.com/espressif/esp-idf/issues/4348
2019-11-18 13:42:22 +01:00
8a02feb671 tools: Don't use git work-tree in idf_tools.py
Closes https://github.com/espressif/esp-idf/issues/4355
2019-11-18 13:15:39 +01:00
93a8603c54 Merge branch 'feature/builtin_type_exceptions_test' into 'master'
C++: Throw builtin type exception test

See merge request espressif/esp-idf!6570
2019-11-18 19:34:05 +08:00
e1f982921a ws_client: fix handling timeouts by websocket client.
tcp-transport component did not support wait forever. this update uses value of -1 to request this state.
websocket client uses timeouts in RTOS ticks. fixed recalculation to ms (including special value of -1) to use correctly tcp-transport component

Closes https://github.com/espressif/esp-idf/issues/4316
2019-11-18 10:59:41 +00:00
1626f827d3 docs: Updates OpenOCD configuration file names 2019-11-18 13:33:32 +03:00
a0aab66509 Merge branch 'bugfix/idf_as_lib_build_on_macos' into 'master'
examples: fix idf as library example build on macOS

See merge request espressif/esp-idf!6638
2019-11-18 17:55:23 +08:00
f59170fcb9 Merge branch 'bugfix/fatfs_missing_tests' into 'master'
fatfs: fix unit tests not included in the build

See merge request espressif/esp-idf!6720
2019-11-18 17:36:20 +08:00
f04e45b340 soc: remove invalid esp32s2beta tests
Need to update them later, ref: IDF-1169
2019-11-18 16:05:37 +07:00
a032ce7cd7 ci: Add test configs for 32kHz crystals 2019-11-18 16:05:37 +07:00
7b0be33a7a soc: fix unit tests not included in the build
Regression from 9eccd7c082
2019-11-18 15:58:49 +07:00
29b2235506 Merge branch 'doc/mdns_zh_CN' into 'master'
zh_CN translation of mdns service

See merge request espressif/esp-idf!4590
2019-11-18 16:42:20 +08:00
be43bfe0c1 Merge branch 'bugfix/ledc_ut_esp32s2beta' into 'master'
bugfix(LEDC): fix ledc CI issue for esp32s2beta

Closes IDF-1011

See merge request espressif/esp-idf!6530
2019-11-18 16:19:42 +08:00
b1a72866ca refactor(pcnt): add hal pcnt driver 2019-11-18 14:35:46 +08:00
79f578ca41 Merge branch 'bugfix/example_blufi_fix_the_send_ble_before_connect_bug' into 'master'
example/blufi: Fix the wrong wifi storage mode and check if ble is connected before sending a ble message.

Closes BCI-120

See merge request espressif/esp-idf!6708
2019-11-18 14:21:40 +08:00
34083c1463 example/blufi: Fix the wrong wifi storage mode and check if ble is connected before sending a ble message. 2019-11-18 14:21:40 +08:00
45944da8ae Merge branch 'bugfix/esp32s2beta_flash_cache' into 'master'
Bugfix/esp32s2beta flash cache

See merge request espressif/esp-idf!6561
2019-11-18 14:16:16 +08:00
70a93ca0c6 Merge branch 'bugfix/docs_adc_attenuation' into 'master'
docs: Replaced 'attenuaton' with 'attenuation'

See merge request espressif/esp-idf!6672
2019-11-18 12:10:56 +08:00
1487bd2edd docs: Replaced 'attenuaton' with 'attenuation' 2019-11-18 12:10:55 +08:00
c4dc63c4d8 ci: add jobs for tests 2019-11-18 10:29:42 +08:00
550c0ef234 vfs: use ccomp timer in performance test 2019-11-18 10:29:02 +08:00
df26ab13e2 test_utils: implement performance timer 2019-11-18 10:29:01 +08:00
fb3d648e07 Merge branch 'feature/unit_example_test_no_submodules' into 'master'
ci: don't fetch all submodules in unit_test and example_test

See merge request espressif/esp-idf!6688
2019-11-18 09:32:49 +08:00
cd730b94be C++: added unit tests for builtin type exceptions 2019-11-18 08:53:50 +08:00
2e570e78c6 components/bt: Disable some unsupported security mask 2019-11-17 13:42:09 +08:00
5e55ffc95a fix dummy issue in spi mem and make some spiflash api called from idf 2019-11-15 15:59:07 +00:00
f3424afaab bugfix: fix spi flash read when wrap enabled 2019-11-15 15:59:07 +00:00
7b2348baad fix bug that wrap mode not disabled in none-QIO mode 2019-11-15 15:59:07 +00:00
8bea8dacbc esp32s2beta: fix some macro and add flash wrap size condition 2019-11-15 15:59:07 +00:00
70df578752 Merge branch 'bugfix/wifi_scan_example_redo' into 'master'
wifi: minor changes in scan example

See merge request espressif/esp-idf!6591
2019-11-15 23:56:17 +08:00
504172e851 wifi: minor changes in scan example 2019-11-15 23:56:16 +08:00
9399dc4fd8 Merge branch 'bugfix/btdm_fix_the_ble_throuthput_server_crash_bug_gyc' into 'master'
example/ble_throughput fix the throughput server crash bug when running with throughput client

Closes BT-421

See merge request espressif/esp-idf!6649
2019-11-15 23:55:10 +08:00
4cd56b19d7 example/ble_throughput fix the throughput server crash bug when running with throughput client 2019-11-15 23:55:09 +08:00
a9c162664c Merge branch 'feature/get_remote_name' into 'master'
Feature/ Read Remote Device's Name

See merge request espressif/esp-idf!6562
2019-11-15 23:47:02 +08:00
84d5cc1c17 Generate source files for kconfiglib from the build system 2019-11-15 15:25:09 +00:00
98c629987f tools: Produce user friendly error during install when the server is down
Closes https://github.com/espressif/esp-idf/issues/4329
2019-11-15 15:21:39 +01:00
28b7f11f93 fatfs: fix unit tests not included in the build
Regression from 9baa7826.
2019-11-15 15:04:57 +01:00
f53f450380 nvs_flash: build nvs_encr.cpp only if relevant config option is enabled 2019-11-15 15:58:31 +05:30
ecf09382da uart: critical section compliant API in ISR context 2019-11-15 15:58:31 +05:30
d0a37704a3 esp_timer: use freertos critical section compliant APIs
Some modules use esp_timer from interrupt context and hence
with vanilla FreeRTOS it should use correct critical section
API
2019-11-15 15:57:55 +05:30
c741dd0535 Fixed warnings for components driver, esp32 and mbedtls 2019-11-15 08:51:16 +00:00
c8a37c296a ci: don't fetch all submodules in unit_test and example_test 2019-11-15 07:59:44 +00:00
59d818c387 Merge branch 'bugfix/mdns_task_include' into 'master'
mdns: add missing include of esp_task.h

See merge request espressif/esp-idf!6706
2019-11-15 15:50:31 +08:00
7c1fceb810 Merge branch 'docs/fix_esp_local_control_formatting' into 'master'
docs/en: fix formatting for esp_local_control component

See merge request espressif/esp-idf!6678
2019-11-15 13:41:26 +08:00
83b468f707 Merge branch 'feature/idfpy_hidden_commands' into 'master'
idf.py: add support for subcommands hidden from help

See merge request espressif/esp-idf!6646
2019-11-15 12:41:43 +08:00
a9c1970c03 Merge branch 'bugfix/put_more_rx_code_to_iram' into 'master'
wifi: Put some rx code to iram

Closes WIFI-490 and WIFI-1041

See merge request espressif/esp-idf!6490
2019-11-15 10:58:22 +08:00
5884b80908 mdns: add missing include of esp_task.h 2019-11-14 18:02:26 +01:00
503c37e013 Merge branch 'bugfix/mdns_configure_task_params' into 'master'
mdns: add configuration values for task priority, affinity and internal service timeouts

See merge request espressif/esp-idf!6580
2019-11-14 21:30:50 +08:00
9e8fa4bb18 Merge branch 'feature/esp_netif_interface_update' into 'master'
tcpip_adapter refactor: ready for review

Closes IDF-39

See merge request espressif/esp-idf!5373
2019-11-14 21:27:53 +08:00
2c7f949257 Merge branch 'bugfix/fix_the_bug_in_espnow_example' into 'master'
espnow: fix the bug for calling esp_wifi_set_channel

See merge request espressif/esp-idf!6690
2019-11-14 19:26:27 +08:00
lly
093cc494b9 ble_mesh: fix ble mesh device with wrong name on iOS 2019-11-14 17:03:46 +08:00
e380c59c74 Merge branch 'feat/ble_mesh_4_1_new_features' into 'master'
ESP BLE Mesh 4.1 new features

Closes BLEMESH-1, BLEMESH-2, BLEMESH-3, BLEMESH-4, BLEMESH-39, and BLEMESH-43

See merge request espressif/esp-idf!6134
2019-11-14 16:47:49 +08:00
9efbe1bb47 Merge branch 'bugfix/support_worktree_on_cmake' into 'master'
cmake: support git worktree

See merge request espressif/esp-idf!6581
2019-11-14 16:00:47 +08:00
b7334b0366 esp_wifi: Turn off wifi iram optimization by default, when using both Bluetooth and psram 2019-11-14 15:20:53 +08:00
e248a4fe6e components/bt: Fix assert due to no free element from 2019-11-14 06:59:23 +00:00
9691a755f6 zh_CN translation of mdns service 2019-11-14 13:28:04 +08:00
30b2e02088 bugfix(LEDC):fix ledc CI issue for esp32s2beta. 2019-11-14 12:20:29 +08:00
3f0e851a39 Feature/ Read Remote Device's Name 2019-11-14 03:33:37 +00:00
17d0ada00a Merge branch 'bugfix/idfpy_before_flash_option' into 'master'
idf.py: Add --before flag to esptool.py call

See merge request espressif/esp-idf!6577
2019-11-14 11:13:48 +08:00
30ff7198b8 apptrace: Renames Kconfig options 2019-11-13 15:24:01 +03:00
5909d3676c esp32s2: Adds apptrace support
Closes IDF-510.
Closes IDF-1032.
2019-11-13 15:24:01 +03:00
5e7f43f3d1 esp_wifi: Put some rx code to iram 2019-11-13 11:44:23 +00:00
76f612e14f ci: increased number of parallel jobs to have enough runners for unit
tests
2019-11-13 12:36:26 +01:00
e535376257 tools: updated generator of error codes to names to ignore tcpip_adapter
compatibility types since the error codes are reused in esp-netif and in
tcpip_adapter mapped to the same number.
2019-11-13 12:36:26 +01:00
9f2a45f15f esp_netif: add dhcp state transition unit tests for default wifi interfaces 2019-11-13 12:36:26 +01:00
f91d69efb2 esp_netif: rename DHCP flags for client and server 2019-11-13 12:36:26 +01:00
064bed710e esp_netif: fix esp_netif_stop() to stop DHCP client if configured 2019-11-13 12:36:26 +01:00
d0afdaaf24 esp_eth: moved starting link timer to eth driver start 2019-11-13 12:36:26 +01:00
4857e92e2c esp_mesh: creation of wifi network interfaces for esp-mesh examples moved to used common esp_wifi_default API 2019-11-13 12:36:26 +01:00
7f5cda1b82 tcpip_adapter: updated tcpip_adapter compatablity layer to include all
public API and keep 100% backward compatibility
update build of tcpip adapter when ethernet disabled
2019-11-13 12:36:25 +01:00
7ef385963c esp_netif: minor update of coding style based on clang-tidy
guidelines and fix some copyright notices
2019-11-13 12:36:25 +01:00
f839a1328c esp_netif: added locking for netif list management, unit tests to use unique if_keys, updated comments 2019-11-13 12:36:25 +01:00
6e0d274f58 esp_netif: example init code fixed to assert only variables, not
function calls so it won't be skipped if compiled without asserts
2019-11-13 12:36:25 +01:00
20add7da60 esp_netif: extract wifi_netif module as an abstraction to wifi universal interface defined by if handle and callback 2019-11-13 12:36:25 +01:00
359f6b3a21 esp_netif: add consistency checks for configs and interface key duplication 2019-11-13 12:36:25 +01:00
cf710a3cb1 esp_netif: include tcpip_adapter legacy header by default to provide *implicit* compatiblity 2019-11-13 12:36:25 +01:00
3f60837de2 esp_eth: make esp_eth_driver_start public API so application could start ethernet when used without esp-netif 2019-11-13 12:36:25 +01:00
549ee87912 esp_netif: moving default netifs to wifi, moved sta_list to a separate header -- note will fail unit tests 2019-11-13 12:36:25 +01:00
d471266b46 esp_netif: documentation udpated and grouped the esp-netif API
structure. Updated rst documenentation and diagram of esp-netif
cooperation with other components.
2019-11-13 12:36:25 +01:00
eb94d87935 esp_netif: address failures on tcpip-task ipc call, deinit lwip netif and ip address issues 2019-11-13 12:36:25 +01:00
3a19bf055d esp_netif and examples: using wifi driver handle, update examples and tests to pass the CI 2019-11-13 12:36:25 +01:00
4366347fd4 esp_event: fix petty include dependency issue 2019-11-13 12:36:25 +01:00
ba13275c6b esp_netif: update default DHCP IP addresses to be in line with old interface, added loopback implementation, explicit esp-netif init, sanity checks for parameters added 2019-11-13 12:36:25 +01:00
b834c99148 examples: modify other examples and tests to use esp_netif instead of tcpip_adapter 2019-11-13 12:36:25 +01:00
0eec84bc4f mesh_examples: use esp_netif instead of tcpip_adapter 2019-11-13 12:36:25 +01:00
7f4c8a0b4f ethernet_examples: use esp_netif instead of tcpip-adapter 2019-11-13 12:36:25 +01:00
19e24fe61e mdns: update mdns to use esp-netif for mdns supported services such as STA, AP, ETH
removes also include dependency on lwip to use esp_netif defined address fields and structures
2019-11-13 12:36:25 +01:00
c00123c77b provisioning: examples updated to use esp_netif instead of tcpip_adapter 2019-11-13 12:36:25 +01:00
204492bd78 examples: wifi getting started examples to use esp_netif_init() and
create default netif instances for station and AP
2019-11-13 12:36:25 +01:00
a49b934ef8 examples: protocol examples which use common connection component
updated to use esp_netif_init instead of tcpip_adapter in initialization code
2019-11-13 12:36:25 +01:00
21464465ea examples: common component initialization code to use new esp_netif
instead of tcpip_adapter
2019-11-13 12:36:25 +01:00
ffe043b1a8 esp_netif: Introduction of esp-netif component as a replacement of tcpip_adpter
- provides object oriented access to network intefaces
- not limited to default netifs
- more generic abstraction to network input output functions
- event handler registration removed from component responsibility
- backward compatibility layer for legacy tcpip_apapter APIs

Closes IDF-39
2019-11-13 12:36:25 +01:00
ec9f245dd3 examples: removed ip4addr_ntoa and used prefered IP2STR for displaying IP addresses 2019-11-13 12:36:25 +01:00
d57890cdff Merge branch 'bugfix/unicore_crash_in_xtaskresumeall' into 'master'
freertos: modify configASSERTs around scheduler state check

See merge request espressif/esp-idf!6685
2019-11-13 19:20:31 +08:00
b9da410cbb espnow: fix the bug for calling esp_wifi_set_channel(), this function only can be called after Wi-Fi started and sniffer enabled. 2019-11-13 16:40:30 +08:00
4ccac94816 freertos: modify configASSERTs around scheduler state check
Regression introduced in commit 79e74e5d5f

It is possible that some FreeRTOS APIs are invoked prior to
scheduler start condition (e.g. flash initialization in unicore mode).
In that condition these asserts should not trigger (scheduler state being yet to be started),
hence changes per this fix.
2019-11-13 10:44:09 +05:30
77585bd14e spiffs: fix build issue on clean project
From issue:

I did some poking around in components/spiffs/project_include.cmake and
it looks like what is failing is it isn't getting an offset from
parttool.py. I think what the problem is that the parttool.py cannot
determine the offset of the storage partition as I can't run menuconfig
to set the custom partitions.

I have tested that this problem is solvable by manually setting the
custom partitions in sdkconfig and that is a workaround but there should
be at least a better error message in the configuration when it cannot
find the partition as this would also happen if the partition name was
misspelled.

Closes https://github.com/espressif/esp-idf/issues/4236
2019-11-13 12:31:50 +08:00
ed85046138 tcp_transport: added functionality for using ALPN with SSL
Closes IDF-1160
2019-11-13 11:33:13 +08:00
5b83b198c6 gcov: Fixes libgcov and libapp_trace cross dependency linking issue
Closes IDF-834
2019-11-12 18:42:08 +03:00
02e084e2b5 examples: Collects coverage info in component 2019-11-12 18:42:02 +03:00
eca812249b Merge branch 'bugfix/freemodbus_revert_uart_isr_in_ram_by_default' into 'master'
freemodbus: fix issue with CONFIG_UART_ISR_IN_IRAM set by default

See merge request espressif/esp-idf!6655
2019-11-12 22:16:56 +08:00
cfdd5f0ef7 freemodbus: configure timer handler placement
place timer interrupt handler into flash by default;
add default settings for timer and UART interrupts to place them into IRAM into example defaults;
CONFIG_FMB_TIMER_PORT_ENABLED default = n, when enabled, the UART_ISR_IN_IRAM set to y
2019-11-12 22:16:55 +08:00
bfe5662387 Merge branch 'bugfix/common_example_uart_init' into 'master'
fix common example connect and stdin/stdout

See merge request espressif/esp-idf!6642
2019-11-12 22:10:50 +08:00
ca4a8a61c4 Merge branch 'bugfix/CMake_esp_https_ota_dependencies' into 'master'
components/esp_https_ota: Changes in public requirement list for CMake

Closes IDFGH-2066

See merge request espressif/esp-idf!6558
2019-11-12 19:43:26 +08:00
ef3016d0d3 Remove accidentally merged and stale files 2019-11-12 11:43:36 +07:00
b4653cf391 Merge branch 'bugfix/update_can_target_test' into 'master'
CAN: Reenable example tests, update job and environment labels.

See merge request espressif/esp-idf!6487
2019-11-12 11:09:50 +08:00
12de58bfac Merge branch 'bugfix/config_assert_thread_safety' into 'master'
freertos: Fix configASSERT thread safety

Closes IDFGH-2055

See merge request espressif/esp-idf!6612
2019-11-12 10:59:00 +08:00
2e0d6d0e6a uart: make uart_driver_install() more backward compatible, so if the interrupt handler configured to be in IRAM and not flagged in intr_alloc_flags argument, then the flag is gracefully updated rather then error return 2019-11-11 15:27:09 +00:00
208feef3c9 asio: fix asio test code to start the test after ip address received from common example code
Previously set to wait until IP address got from tcpip_adapter, but since common example connect code blocks until both IP4 and IPv6 address received it could happen that test code might have started connection to the ASIO counter-part while ESP32 still waiting for IPv6 address
2019-11-11 15:27:09 +00:00
8325a2952a Merge branch 'bugfix/wifi_set_assoc_ie' into 'master'
wpa_supplicant: Set assoc_ie_len based on generated RSN/WPA IE

Closes WIFI-1380

See merge request espressif/esp-idf!6636
2019-11-11 23:22:15 +08:00
e543dbfe79 wpa_supplicant: Set assoc_ie_len based on generated RSN/WPA IE 2019-11-11 23:22:14 +08:00
53604dad25 Merge branch 'doc/add_chinese_translation_for_support_policy' into 'master'
add chinese translation for support period policy

See merge request espressif/esp-idf!6597
2019-11-11 10:40:30 +08:00
806229492e add chinese translation for support period policy 2019-11-11 10:40:30 +08:00
2dbad4fe7b idf.py: add support for subcommands hidden from help 2019-11-08 17:54:10 +01:00
c6f38f04f8 mdns: add configuration values for task priority, affinity and internal service timeouts
closes https://github.com/espressif/esp-idf/issues/4217
2019-11-08 16:29:40 +01:00
8b38d79dd3 Merge branch 'feature/windows_ccache_enable' into 'master'
tools: export IDF_CCACHE_ENABLE on Windows by default

Closes IDF-955

See merge request espressif/esp-idf!6607
2019-11-08 18:57:26 +08:00
ae777b026f Merge branch 'bugfix/cmake_uninit_vars_case_error' into 'master'
cmake: Fix some uninitialized variable issues

See merge request espressif/esp-idf!6632
2019-11-08 18:54:33 +08:00
83dbf9d6d6 Merge branch 'bugfix/partition_cmake_md5' into 'master'
cmake: fix partition_table cmake when using md5 checksum

See merge request espressif/esp-idf!5399
2019-11-08 18:51:59 +08:00
79d242edd3 Merge branch 'bugfix/py_requirements' into 'master'
Fix Python requirement for setuptools

See merge request espressif/esp-idf!6588
2019-11-08 18:03:20 +08:00
932758813a Merge branch 'bugfix/http_client_buffer_overflow' into 'master'
Fix HTTP client buffer overflow

Closes IDF-694

See merge request espressif/esp-idf!6599
2019-11-08 18:02:33 +08:00
65c67faa6a Merge branch 'bugfix/freemodbus_fix_nvs_access_failure' into 'master'
modbus master example fix nvs access failure

Closes IDF-1054, IDFGH-1840, and IDFGH-1943

See merge request espressif/esp-idf!6241
2019-11-08 16:55:42 +08:00
1ab9e81729 freemodbus: fix nvs access failure
place timer handler functions into IRAM
update timer port handlers
fix communication issues
fix offset issue in example
add kconfig option to place handlers into IRAM
2019-11-08 16:55:42 +08:00
705e4189db examples: fix idf as library example build on macOS
GCC prefixes underscore on symbol names on macOS, and so the set
undefined symbol `-u app_main` won't work. However, this is unecessary,
as the source file that defines it is specified directly to the
executable, and not through a static library.

Closes https://github.com/espressif/esp-idf/issues/4168
2019-11-08 16:04:05 +08:00
6f761dd62d cmake: Fix some uninitialized variable warnings 2019-11-08 12:50:28 +08:00
4352265fa0 cmake: Fix case error passing extra CMake args to sub-projects
Bug in commit f4ea7c5a where the wrong variable case was used when passing
through to sub-projects
2019-11-08 11:56:13 +08:00
lly
2bba9d7700 ble_mesh: miscellaneous modifications
1. Clean up client_common.c
2. Clean up esp_ble_mesh directory
3. Update Kconfig.in
4. Format esp_ble_mesh files
2019-11-08 11:10:52 +08:00
lly
30aa236219 ble_mesh: adapt ble mesh with nimble host 2019-11-08 11:10:52 +08:00
lly
dfcfe467c9 ble_mesh: update ble mesh examples 2019-11-08 11:10:52 +08:00
lly
547081cc3c ble_mesh: add events for configuration server model 2019-11-08 11:10:52 +08:00
lly
f906b7caf3 ble_mesh: add Generic/Sensor/Time and Scenes/Lighting Server models 2019-11-08 11:10:52 +08:00
lly
287f80ec01 ble_mesh: add proxy client functionality 2019-11-08 11:10:52 +08:00
lly
c6286529eb ble_mesh: add ble mesh friend node event 2019-11-08 11:10:52 +08:00
lly
fdfe59d369 ble_mesh: add low power node api and event 2019-11-08 11:10:52 +08:00
lly
afc00fb5f5 ble_mesh: add heartbeat message recv callback 2019-11-08 11:10:52 +08:00
lly
2511024e44 ble_mesh: modify health server model callbacks 2019-11-08 11:10:52 +08:00
lly
729af38346 ble_mesh: add separate advertising buffers for relay packets 2019-11-08 11:10:52 +08:00
ba72de2099 Merge branch 'bugfix/i2s-bootloader-random-disable' into 'master'
bugfix(bootloader): fix  bootloader_random_disable bug

Closes IDFGH-1747 and IDFGH-1739

See merge request espressif/esp-idf!6522
2019-11-08 11:04:15 +08:00
1a29ddbd33 cmake: fix partition_table cmake when using md5 checksum 2019-11-08 02:59:22 +00:00
75488f1806 Merge branch 'bugfix/cmake_secure_boot' into 'master'
secure boot: CMake bug fixes

See merge request espressif/esp-idf!6523
2019-11-08 10:58:04 +08:00
d459f7bfe0 Merge branch 'bugfix/dockerfile_set_idf_branch' into 'master'
tools/docker: use correct branch and commit of IDF when building

Closes IDF-1120

See merge request espressif/esp-idf!6584
2019-11-08 03:08:45 +08:00
44af11c1b1 Merge branch 'bugfix/nvs_flash_missing_tests' into 'master'
NVS: Added nvs tests, minor corrections

Closes IDF-1135

See merge request espressif/esp-idf!6621
2019-11-07 23:01:58 +08:00
dd7dd08bfb Merge branch 'bugfix/tinyfw_local_test' into 'master'
tiny-test-fw: restore the ability to run tests locally

See merge request espressif/esp-idf!6620
2019-11-07 21:27:58 +08:00
c37cb2b5dc Merge branch 'doc/lwip_apis' into 'master'
lw_ip: Add lw_IP API Guide

Closes IDF-35

See merge request espressif/esp-idf!6473
2019-11-07 19:32:38 +08:00
1d15ce9ab3 Merge branch 'bugfix/load_elf_example_test' into 'master'
CI: Don't download s2beta builds into example tests

See merge request espressif/esp-idf!6610
2019-11-07 18:46:16 +08:00
a771b94183 lwip: Add lwIP API Guide
Try to provide a full overview of lwIP features as implemented in esp-lwip and ESP-IDF
2019-11-07 18:12:47 +08:00
86fd13230e CI: Don't download esp32s2beta builds into example tests 2019-11-07 06:56:03 +00:00
d8242fe976 nvs: Added nvs tests, minor corrections
* closes IDF-1135:
  same namespace was used in different tests which
  could lead to conflicts when re-running tests
* removes duplicated functions declarations
* correct argument order for test case macros
2019-11-07 10:23:47 +08:00
1f323ca107 Merge branch 'feature/cxx_rtti_support' into 'master'
C++: allow enabling RTTI, add example

Closes IDFGH-751

See merge request espressif/esp-idf!6342
2019-11-07 01:00:32 +08:00
8d527243d9 tools/docker: use correct branch and commit of IDF when building 2019-11-06 17:58:23 +01:00
bda386c51a Merge branch 'bugfix/fix_the_bug_for_API_CHECK_ENABLED' into 'master'
esp_wifi: fix the bug for API_CHECK_ENABLE

See merge request espressif/esp-idf!6583
2019-11-06 23:42:41 +08:00
6306ea5a92 tiny-test-fw: fix running tests which use IDFDUT class 2019-11-06 15:31:16 +01:00
18c9e306c2 examples/system: add C++ RTTI example 2019-11-06 15:30:44 +01:00
959ca74a29 C++: add an option to enable RTTI support
Closes https://github.com/espressif/esp-idf/issues/1684
2019-11-06 15:29:19 +01:00
bf37f8a03c 1. modify esp_wifi.h to support esp_netif feature
2. fix the bug for API_CHECK_ENABLE
2019-11-06 12:48:02 +00:00
1f22910468 Merge branch 'bugfix/unused_myrand_test_rsa' into 'master'
rsa test: fix a warning

See merge request espressif/esp-idf!6617
2019-11-06 20:41:19 +08:00
f8bfa69060 rsa test: fix a warning 2019-11-06 18:21:39 +07:00
10abced362 Merge branch 'feature/update_toolchain_esp-2019r2' into 'master'
Introduce esp-2019r2 toolchain for both ESP32 and ESP32s2 targets

See merge request espressif/esp-idf!6575
2019-11-06 16:10:51 +08:00
5b33d6cf94 Merge branch 'feature/mbedtls_add_faster_modexp' into 'master'
mbedtls: Add a new (X^Y) mod M implementation (HAC 14.94)

Closes IDF-965

See merge request espressif/esp-idf!6418
2019-11-06 15:51:28 +08:00
796dd96757 Merge branch 'feature/hwcrypto_perf_ut' into 'master'
mbedtls: enable HW SHA by default, add SHA performance test

See merge request espressif/esp-idf!6320
2019-11-06 12:16:23 +08:00
e34bb7460f secure boot: In Reflashable mode, make sure the bootloader digest updates
... whenever the bootloader.bin is updated
2019-11-06 12:13:24 +08:00
79e74e5d5f freertos: Fix configASSERT thread safety
This commit fixes thread safety issues with configASSERT() calls
regarding the value of uxSchedulerSuspended. A false negative
occurs if a context switch to the opposite core occurs in between
the getting the core ID and the assesment.

Closes https://github.com/espressif/esp-idf/issues/4230
2019-11-05 21:58:02 +08:00
2026340752 clk.h: add extern C guards
Closes https://github.com/espressif/esp-idf/issues/4215
2019-11-05 14:56:16 +01:00
5f0d257240 Added Cpp compatibility for components/spi_flash/include/esp_flash_spi_init.h
Merges https://github.com/espressif/esp-idf/pull/4260
2019-11-05 14:52:57 +01:00
a8e3ad6bd9 bootloader: revert support for booting dual-core apps on single-core bootloader 2019-11-05 14:42:43 +01:00
c75bdcb429 tools: export IDF_CCACHE_ENABLE on Windows by default 2019-11-05 11:45:27 +01:00
ca79a5ecb3 idf.py: add python path to flash instructions
Closes https://github.com/espressif/esptool/issues/449
2019-11-05 11:07:03 +01:00
7e5d30cda4 idf.py: add encoding option
Merges https://github.com/espressif/esp-idf/pull/4106

Signed-off-by: Sergei Silnov <sergei.silnov@espressif.com>
2019-11-05 10:36:37 +01:00
1d904fdd81 http_client: added comments to http header generation function 2019-11-05 09:53:29 +01:00
9c0844da3f http_client: possible buffer overflow fixed when determining last header item to be written
closes IDF-694
2019-11-05 09:44:06 +01:00
e8d3b80e4b mbedtls: Add an UT for performance RSA key operations
(New) - Montgomery exponentiation: Z = X ^ Y mod M  (HAC 14.94)
keysize = 2048 bits
RSA key operation (performance): public [21894 us], private [199119 us]
RSA key operation (performance): public [18768 us], private [189051 us]
RSA key operation (performance): public [16242 us], private [190821 us]
keysize = 3072 bits
RSA key operation (performance): public [39762 us], private [437480 us]
RSA key operation (performance): public [36550 us], private [449422 us]
RSA key operation (performance): public [40536 us], private [443451 us]
keysize = 4096 bits
RSA key operation (performance): public [65671 us], private [885215 us]
RSA key operation (performance): public [60770 us], private [880936 us]
RSA key operation (performance): public [68951 us], private [872027 us]

(Old) - Sliding-window exponentiation: Z = X ^ Y mod M  (HAC 14.85)
keysize = 2048 bits
RSA key operation (performance): public [93206 us], private [280189 us]
RSA key operation (performance): public [93060 us], private [278893 us]
RSA key operation (performance): public [97520 us], private [283252 us]
keysize = 3072 bits
RSA key operation (performance): public [293614 us], private [858157 us]
RSA key operation (performance): public [289902 us], private [843701 us]
RSA key operation (performance): public [291495 us], private [845232 us]
keysize = 4096 bits
RSA key operation (performance): public [653192 us], private [1912126 us]
RSA key operation (performance): public [656661 us], private [1901792 us]
RSA key operation (performance): public [641390 us], private [1938911 us]
2019-11-05 16:33:11 +08:00
5ed8388f6b mbedtls: Add Montgomery exponentiation implementation (HAC 14.94)
It gave us a better performance of RSA operations. (2~11 times)

The old modexp implementation (Z = X ^ Y mod M) loaded all the data into
the hw registers and was waiting for completion, but due to
the hardware RSA implementation, the calculations always started with 4096 bit,
which took a lot of time.
Measurement results (measurements were made for keys: 2048, 3072 and 4096 bits)
(Old) - Sliding-window exponentiation (HAC 14.85):
keysize = 2048 bits
RSA key operation (performance): public [93206 us], private [280189 us]
keysize = 3072 bits
RSA key operation (performance): public [293614 us], private [858157 us]
 keysize = 4096 bits
RSA key operation (performance): public [653192 us], private [1912126 us]

Instead (Old) - Sliding-window exponentiation (HAC 14.85) was implemented
(New) - Montgomery exponentiation (HAC 14.94) which showed
better performance on private and public keys.
keysize = 2048 bits
RSA key operation (performance): public [14504 us], private [149456 us]
keysize = 3072 bits
RSA key operation (performance): public [35073 us], private [392743 us]
keysize = 4096 bits
RSA key operation (performance): public [58650 us], private [787186 us]

For this reason, the old implementation was removed
and the MBEDTLS_HARDWARE_MPI option was turned on by default.

Why the MPI_INTERRUPT option is removed:
the old implementation used calculations on the hardware and
it took a lot of time (10ms - 500ms). And in order not to stand idle
while waiting for completion, an interrupt option was added.
This made it possible to carry out other tasks during the calculation,
and this one to block. The new method is free from such a drawback and
the maximum duration of one RSA HW operation does not exceed 70us (usually 2-70 μs).
This option is no longer needed.

Closes: IDF-965
2019-11-05 16:33:11 +08:00
9d33ad5e25 cmake: support git worktree
Use rev-parse to get the HEAD directory instead of manually looking for
it. This method works in the main repository, worktrees and submodules.

Closes https://github.com/espressif/esp-idf/issues/4136
2019-11-05 15:32:35 +08:00
03d07741fd Merge branch 'bugfix/esp32s2beta_vfs_performance' into 'master'
VFS: Fix performance test for esp32s2beta

Closes IDF-1024

See merge request espressif/esp-idf!6549
2019-11-05 12:42:52 +08:00
302510cd80 Merge branch 'feature/add_env_tag_for_32khz_xtal_uts' into 'master'
soc(esp32&esp32s2beta): Add test_env for 32kHz XTAL unit tests

See merge request espressif/esp-idf!6555
2019-11-05 12:05:24 +08:00
ffdb57e04d Merge branch 'bugfix/http_client_message_complete_callback_invocation' into 'master'
Fix issue in http client regarding `message_complete` callback invocation

Closes IDFGH-2040

See merge request espressif/esp-idf!6413
2019-11-05 12:02:10 +08:00
b4a02c57c2 bugfix(i2s_bootloader_random_disable): fix bug about i2s bootloader_random_disable
bootloader_random_disable disables the ADC incorrectly, causing the ADC to sometimes fail to work. Fix this bug

closes https://github.com/espressif/esp-idf/issues/3973
2019-11-05 10:36:53 +08:00
8b48a8e72e Merge branch 'feature/efuse_example' into 'master'
examples: Add an example efuse API usage and the group writing mode

Closes IDF-773

See merge request espressif/esp-idf!5810
2019-11-05 10:13:21 +08:00
70b6f5397f Fix Python requirement for setuptools 2019-11-04 16:18:37 +01:00
ad79772e7e Merge branch 'bugfix/cmake_sdkconfig_issues' into 'master'
cmake: fix sdkconfig related issues

Closes IDF-1086

See merge request espressif/esp-idf!6436
2019-11-04 18:30:49 +08:00
13ff57f133 Merge branch 'feature/ipc_runs_with_caller_priority' into 'master'
esp_common: IPC works with the priority of the caller's task

Closes IDF-78

See merge request espressif/esp-idf!6191
2019-11-04 18:29:14 +08:00
f80004a74e Merge branch 'feat/spi_flash_verify_encrypted_write' into 'master'
spi_flash: support to verify written encrypted data

Closes IDF-142

See merge request espressif/esp-idf!6467
2019-11-04 18:26:07 +08:00
c5ef1cae04 Merge branch 'feature/perfmon' into 'master'
Performance monitor component

See merge request espressif/esp-idf!4705
2019-11-04 18:25:14 +08:00
c6f1a32c5c Merge branch 'bugfix/add_swp_to_gitignore' into 'master'
.gitignore: added *.swp in gitignore

See merge request espressif/esp-idf!6563
2019-11-04 18:15:57 +08:00
87ab9df398 .gitignore: added *.swp in gitignore 2019-11-04 18:15:57 +08:00
9ac55b5e55 Merge branch 'fix/ci_ut_psram_wroverb' into 'master'
ci: fix one ut issue when using Wrover-B module with newer ver of PSRAM

See merge request espressif/esp-idf!6553
2019-11-04 18:12:44 +08:00
71b73e61e1 mbedtls: Enable SHA hardware acceleration by default 2019-11-04 10:48:08 +01:00
589a1f216f mbedtls: add SHA performance test
Results with this revision:

SHA256 rate 2.599MB/sec Debug 240MHz SW
SHA256 rate 1.147MB/sec Release 80MHz SW
SHA256 rate 3.469MB/sec Release 240MHz SW
SHA256 rate 2.687MB/sec Release 240MHz SW + PSRAM workaround

SHA256 rate 9.433MB/sec Debug 240MHz HW rev1
SHA256 rate 3.727MB/sec Release 80MHz HW rev1
SHA256 rate 10.961MB/sec Release 240MHz HW rev1
SHA256 rate 9.966MB/sec Release 240MHz HW rev1 + PRAM workaround

SHA256 rate 10.974MB/sec Debug 240MHz HW rev3
SHA256 rate 4.362MB/sec Release 80MHz HW rev3
SHA256 rate 13.207MB/sec Release 240MHz HW rev3

Debug = Og, assertions enabled
Release = O2, assertions disabled
2019-11-04 10:48:08 +01:00
c2db6a14c4 Introduce esp-2019r2 toolchain for both ESP32 and ESP32s2 targets
Adds support of POSIX libs like regex.h

closes https://github.com/espressif/esp-idf/issues/2407
closes https://github.com/espressif/esp-idf/issues/4257
ref https://github.com/espressif/esp-idf/issues/271

Also there are some changes in the toolchain's changelog
2019-11-04 16:14:57 +07:00
49193beb6d Merge branch 'bugfix/reenable_esp_event_tests' into 'master'
esp_event: reenable esp_event tests

See merge request espressif/esp-idf!6371
2019-11-04 15:07:34 +08:00
0e9c2cdc93 Merge branch 'bugfix/esp32s2beta_enable_protocol_examples' into 'master'
Bugfix/esp32s2beta enable protocol examples

Closes IDF-1027

See merge request espressif/esp-idf!6566
2019-11-04 14:46:57 +08:00
e1a6846ac3 examples/ota: disable WiFi power save mode for optimal performance 2019-11-04 12:15:19 +05:30
a51fe89778 Update OTA Documentation to clarify grammar.
The sentence about CONFIG_BOOTLOADER_APP_ROLLBACK_ENABLE was worded strangely.
I updated it to better explain the functionality.

Closes https://github.com/espressif/esp-idf/pull/4228
2019-11-04 12:15:19 +05:30
4dcffdb0a9 esp_http_client: fix issue where http parser was not invoking message_complete callback
https://github.com/espressif/esp-idf/issues/2625
https://github.com/espressif/esp-idf/issues/4209
2019-11-04 12:15:19 +05:30
917a406c0a Logging improvements in OTA example and component 2019-11-04 12:15:19 +05:30
de9549936d examples: fix handle passed to esp_https_ota_is_complete_data_received 2019-11-04 12:15:19 +05:30
b7c2c93ecc Merge branch 'bugfix/wifi_internal_memory' into 'master'
wifi: Include DMA reserved pool when allocating internal-only memory

Closes WIFI-883

See merge request espressif/esp-idf!6545
2019-11-04 13:55:49 +08:00
efb51d1075 Merge branch 'feature/ethernet-kit-v1.1' into 'master'
Provide Ethernet-Kit V1.1 Getting Started Guide

See merge request espressif/esp-idf!6259
2019-11-04 10:44:00 +08:00
0abb3b99c1 Update missing description of board A and B connectors. Add a note about incorrect GPIO pin labels on the silkscreen besides the function switch. 2019-11-04 10:44:00 +08:00
2dd74d4b7a ci: remove semicolon for cmake build system test 2019-11-03 16:52:06 +08:00
42d4f39a9a cmake: consider sdkconfig defaults value from environment 2019-11-03 16:43:58 +08:00
b0bb53de06 ci: test multiple sdkconfig defaults 2019-11-03 16:43:58 +08:00
bf1df9b5b5 cmake: do not check if sdkconfig exists 2019-11-03 16:43:58 +08:00
d43cc4fa4b cmake: allow multiple sdkconfig defaults to be specified 2019-11-03 16:43:58 +08:00
f356d54365 esp_event: revert changes in !5702 2019-11-03 16:19:30 +08:00
748b79e94a ci: fix one ut issue when using Wrover-B module with newer ver of PSRAM
The workaround for PSRAM that will occupy an SPI bus is enabled only when:

1. used on 32MBit ver 0 PSRAM.
2. work at 80MHz.

The test used to only check 32MBit by the config option, but for PSRAM
on Wrover-B module seems to use a newer version of 32MBit PSRAM.  So it
expects the workaround to be enabled, but actually not.

This commit split the unit test into two parts:

1. check all SPI buses are available, for all configs except psram_hspi
and psram_vspi, run on regular runners (including Wrover and Wrover-B).
a hidden option is enabled so that the compiler knows it's not building
psram_hspi or psram_vspi.

2. check the specified bus are acquired, for config psram_hspi and
psram_vspi. This only run on special runner (legacy Wrover module).
2019-11-03 03:07:37 +00:00
363b573e60 Merge branch 'bugfix/fix_tkip_ccmp_replay_attack_detection_algorithm' into 'master'
esp_wifi: fix tkip/ccmp replay detection algorithm

Closes WIFI-1012

See merge request espressif/esp-idf!6388
2019-11-02 23:42:10 +08:00
c9dfdc0566 esp_wifi: fix TKIP/CCMP replay attack detection algorithm 2019-11-02 14:49:21 +00:00
e6ad82a0b2 idf.py: Add --before flag to esptool.py call
Merges https://github.com/espressif/esp-idf/pull/4125
2019-11-01 20:00:56 +01:00
fc9eddad5c Merge branch 'bugfix/test_build_system_rsync' into 'master'
ci: fix regression in build system tests

See merge request espressif/esp-idf!6576
2019-11-01 23:55:23 +08:00
88b5a9c4d6 ci: fix regression in build system tests
On macOS, rsync --exclude option accepts absolute paths as well as
relative ones. On Linux, it doesn't, which results in endless recursive
copying of test_build_system directory.
2019-11-01 15:43:21 +01:00
28b10e633d Merge branch 'bugfix/esp32s2beta_uxTopUsedPriority' into 'master'
freertos: fix defining uxTopUsedPriority for esp32s2beta

See merge request espressif/esp-idf!6378
2019-11-01 18:51:00 +08:00
d7e9d87aef Merge branch 'bugfix/bugs_in_a2dp_task' into 'master'
components/bt: Not post message to a2dp ctrl queue from btc queue, just call it.

Closes BT-436

See merge request espressif/esp-idf!6019
2019-11-01 18:46:21 +08:00
9ffd444e52 Merge branch 'feature/ci_macos_build_system_test' into 'master'
ci: add CMake build system test for macOS

See merge request espressif/esp-idf!6552
2019-11-01 18:41:30 +08:00
84bbafb6a4 VFS: Fix performance test for esp32s2beta 2019-11-01 09:40:16 +00:00
0dafdd2984 Merge branch 'bugfix/CMake_esp_https_ota_dependencies' into master
components/esp_https_ota: Changes in public requirement list for CMake and esp_ota_ops.h is included in esp_https_ota.c

bootloader_support is added in public requirements of CMake

bootloader_common.h is included in esp_https_ota.h

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

Closes IDFGH-2066
2019-11-01 12:50:17 +05:30
cb6e2fc858 Merge branch 'feature/wifi_pmk_caching' into 'master'
wifi: Add PMK caching feature for station WPA2-enterprise

Closes IDF-969

See merge request espressif/esp-idf!6156
2019-11-01 15:11:20 +08:00
1c306423ad Merge branch 'doc/ble_mesh_terminology_using_wrong_title' into 'master'
doc: fix wrong title of ble mesh terminology

See merge request espressif/esp-idf!6559
2019-11-01 14:40:43 +08:00
90b18dd4f6 components/bt: Not post message to a2dp ctrl queue from btc queue, just call it. 2019-11-01 14:12:25 +08:00
6071e2f3c7 esp_common: IPC refactor
- esp_ipc_call_and_wait() can work simultaneously on two CPUs.
- This will increase the priority for ipc_task
  if the current task also wants to use it.
- Added the ESP_IPC_USES_CALLERS_PRIORITY option
  to get back the old IPC behaviour.
2019-11-01 13:41:25 +08:00
592946a2cd Merge branch 'bugfix/esp32s2beta_vfs_uart' into 'master'
Fix VFS UART unit tests for esp32s2beta

Closes IDF-1018

See merge request espressif/esp-idf!6301
2019-11-01 13:39:16 +08:00
fd4da421e5 Merge branch 'bugfix/btdm_assert_deinit_a2dp_while_playing' into 'master'
components/bt: Fix assert when deinit A2DP while playing music

Closes BT-471

See merge request espressif/esp-idf!6533
2019-11-01 11:57:01 +08:00
500c247030 protocol examples: enable protocol examples for esp32sbeta
Closes IDF-1027
2019-11-01 11:14:10 +08:00
845003a1c3 ASIO: fixed undefined ref to atomic functions and enabled examples for CI (esp32s2beta)
Implemented the atomic functions needed to compile and link the asio examples on esp32s2beta.
2019-11-01 11:12:47 +08:00
3da93b0a5e Merge branch 'bugfix/win_s2_toolchain' into 'master'
tools: Fix toolchain installer for Windows and macOS

See merge request espressif/esp-idf!6548
2019-10-31 23:29:59 +08:00
daa9955e4a Merge branch 'feature/cxx_rtti_preparation_v3' into 'master'
C++:  re-add provisions for optional RTTI support (v3)

See merge request espressif/esp-idf!6556
2019-10-31 23:26:44 +08:00
e24dda5dfb Merge branch 'bugfix/freemodbus_fix_destroy_functions' into 'master'
freemodbus: fix a bug with destroy function of modbus controller and timer port

Closes IDFGH-2056

See merge request espressif/esp-idf!6493
2019-10-31 23:23:24 +08:00
4bac558ab3 freemodbus: fix a bug with destroy function of modbus controller and fix port destroy functions
adds timer interrupt handle and free it in vMBXXXPortTimerClose() in master and slave timer port
assign modbus controller interface pointer to NULL in destroy function after free
2019-10-31 23:23:24 +08:00
02a756015d Merge branch 'feature/wifi_merge_libs_to_master' into 'master'
esp_wifi: merge esp32s2beta WiFi library and fix WiFi deinit memory leak bug

See merge request espressif/esp-idf!6531
2019-10-31 20:56:39 +08:00
09f699bf37 docs/en: fix formatting for esp_local_control component 2019-10-31 17:24:16 +05:30
4d3356be52 wifi: Add PMK caching feature for station WPA2-enterprise
4. Pmksa cache expiry after dot11RSNAConfigPMKLifetime timeout.
2019-10-31 10:51:30 +00:00
bd5d086475 wifi: Add PMK caching feature for station WPA2-enterprise
1) Added PMK caching module from wpa_supplicant.
2) Modified wpa_sm to
    a) Add entry to PMK cache when first time associated to an AP.
    b) Maintain entry across the associations.
    c) Clear current PMKSA when deauth happens.
    d) Search for an entry when re-associating to the same AP and
       set it as current PMKSA
    e) Wait for msg 1/4 from AP instead of starting EAP authentication.
    f) Check PMKID in msg 1 with current PMKSA/cache.
    g) Use the cached PMK to complete 4-way handshake.
3) Remove config_bss callback as it was redundant and used to cause
   problems for PMK caching flow.

Closes IDF-969
2019-10-31 10:51:30 +00:00
lly
7fde866d8c doc: fix wrong title of ble mesh terminology 2019-10-31 17:06:17 +08:00
c0c75478fa Merge branch 'feature/idfpy_extensions' into 'master'
idf.py: Support extensions for idf.py and move commands to separate files

Closes IDF-1041

See merge request espressif/esp-idf!6416
2019-10-31 15:47:59 +08:00
a29d996191 Merge branch 'bugfix/system_api' into 'master'
system api: Refactor to esp_common, small fixes

Closes IDFGH-2096

See merge request espressif/esp-idf!6544
2019-10-31 15:40:33 +08:00
bf1977e48e http_server: fix sdmmc related build error for esp32s2beta
ESP32S2 does not have sdmmc, disable SD host for esp32s2
2019-10-31 14:42:29 +08:00
937e2fac2d Merge branch 'bugfix/can_critical_section_compliance' into 'master'
CAN: Fix critical section compliance

Closes IDF-986

See merge request espressif/esp-idf!6536
2019-10-31 14:00:36 +08:00
e3ff160733 soc/esp32: Add test_env for 32kHz XTAL unit tests 2019-10-31 13:23:47 +08:00
f9e0e3557f soc/esp32s2beta: Add test_env for 32kHz XTAL unit tests 2019-10-31 13:23:47 +08:00
c45fdf754f C++: prepare RTTI support
Ref. https://github.com/espressif/esp-idf/issues/1684

Also, for full RTTI support, libstdc++.a in the toolchain should be built
in both with RTTI and w/o RTTI options. Multilib with -fno-rtti
flag is used for that.

Note that this commit does not actually enable RTTI support.
The respective Kconfig option is hidden, and will be made visible when
the toolchain is updated.
2019-10-31 11:20:16 +07:00
1768473eb8 bt: Include DMA reserved pool when allocating internal-only memory
Fix for root cause of https://github.com/espressif/esp-idf/issues/3592
2019-10-31 15:19:17 +11:00
d86ec0f367 Revert "C++: add provisions for optional RTTI support"
This reverts commit 499d087c91.
2019-10-31 10:12:16 +07:00
785cc69959 Merge branch 'bugfix/esp32s2beta_ut_sdkconfig_defaults' into 'master'
unit-test-app: fix chip-specific sdkconfig options

See merge request espressif/esp-idf!6063
2019-10-31 02:55:21 +08:00
9279b72a6c idf_tools.py: fix virtualenv issue for macOS with homebrew 2019-10-30 19:44:15 +01:00
f61fd8a664 tools: remove spaces from toolchain URLs 2019-10-30 19:44:15 +01:00
cfe9244a96 ci: add build system test on macOS 2019-10-30 19:44:15 +01:00
058d13c351 ci: fixes for CMake build system test on macOS 2019-10-30 18:59:38 +01:00
bdb08de875 tools: Fix toolchain installer for Windows 2019-10-30 15:43:25 +01:00
2a0285fdb4 Fix VFS UART unit tests for esp32s2beta 2019-10-30 13:45:12 +00:00
a088678dd4 unit-test-app: apply sdkconfig.defaults.esp32 for Make builds 2019-10-30 10:43:38 +01:00
92d4b86182 ci: add tests for sdkconfig.defaults.IDF_TARGET 2019-10-30 10:43:37 +01:00
64c41cfcad make: add support for sdkconfig.defaults.IDF_TARGET 2019-10-30 10:43:37 +01:00
142e49f4cc unit-test-app: fix chip-specific sdkconfig options
DEFAULT_CPU_FREQ and ULP_COPROC_ENABLED options have chip-specific
names, and should be set in a chip-specific sdkconfig.defaults file.
This commit also changes the default CPU frequency for ESP32S2 unit
tests to 240 MHz.
2019-10-30 10:41:30 +01:00
5e6aae3e04 Fix typo and naming format for extensions 2019-10-30 10:34:17 +01:00
1c798393e2 Add idf.py extensions and move core actions to separate files 2019-10-30 10:34:17 +01:00
8501a8119c Merge branch 'feature/esp-ble-mesh-documentation' into 'master'
Provide BLE Mesh documentation

See merge request espressif/esp-idf!6234
2019-10-30 17:01:19 +08:00
2c3548b65e Provide BLE Mesh documentation 2019-10-30 17:01:18 +08:00
cf762d91c2 efuse: Add the batch writing mode
This mode should be used when burning several efuses at one time.
2019-10-30 15:43:40 +08:00
d7fa288a6c examples: Add an example efuse API usage
Added: read, write operations for the common and custom efuse tables.
Writing is possible only for CONFIG_EFUSE_VIRTUAL.

Closes: IDF-773
2019-10-30 15:43:40 +08:00
9d5a7f8df6 Merge branch 'bugfix/btdm_possibly_unable_to_enter_sleep_after_woken_up' into 'master'
bugfix/btdm_possibly_unable_to_enter_sleep_after_woken_up

See merge request espressif/esp-idf!6219
2019-10-30 15:38:58 +08:00
2660cb82ae spi_flash: support to verify written encrypted data
Also add unit test for encrypted_read
2019-10-30 05:49:50 +00:00
f48285de10 wifi: Include DMA reserved pool when allocating internal-only memory
Fix for root cause of https://github.com/espressif/esp-idf/issues/3592
2019-10-30 15:57:17 +11:00
02f6bc5438 Merge branch 'bugfix/ws_client_sending_race' into 'master'
websocket_client: fix locking in ws client task

Closes IDFGH-1973

See merge request espressif/esp-idf!6266
2019-10-30 12:33:59 +08:00
045fbd4574 Merge branch 'feature/kconfiglib_package' into 'master'
Update kconfiglib to upstream version and replace mconf-idf

Closes IDF-314, IDF-739, IDFGH-1857, and IDF-1050

See merge request espressif/esp-idf!6057
2019-10-30 12:13:56 +08:00
3bddf269ab Merge branch 'doc/review_api-ref_periph-sd_pullup' into 'master'
Review the file api-reference/peripherals/sd_pullup_requirements.rst

See merge request espressif/esp-idf!5793
2019-10-30 12:01:42 +08:00
fbbcade397 Merge branch 'bugfix/handler_unregister_itself' into 'master'
esp_event: fix handler unregistering itself

See merge request espressif/esp-idf!6274
2019-10-30 12:00:49 +08:00
d0256a8867 Merge branch 'refactor/lwip_port_layer' into 'master'
clean up TCPIP Stack  port layer

Closes IDFGH-1990 and IDFGH-2041

See merge request espressif/esp-idf!6230
2019-10-30 11:58:49 +08:00
9a602920bd Merge branch 'Bugfix/close_nonblocking_tcp_crash' into 'master'
fix bug for close nonblocking socket crash

Closes WIFI-1052

See merge request espressif/esp-idf!5963
2019-10-30 11:27:57 +08:00
4827723d76 system api: Move common parts into esp_common component
Also mark esp_base_mac_addr_set argument as 'const *'
2019-10-30 14:19:22 +11:00
912bd03a5c system api: Check if Base MAC is a unicast MAC before setting
Closes https://github.com/espressif/esp-idf/issues/4263
Closes IDFGH-2096
2019-10-30 13:52:41 +11:00
b09624e89a esp_wifi: fix WiFi deinit memory leak 2019-10-30 10:12:15 +08:00
053e722574 Merge branch 'bugfix/gh_action_cron_pull_requests' into 'master'
gh_action: add cron job to sync remaining PRs

Closes IDFGH-1872

See merge request espressif/esp-idf!6445
2019-10-30 03:58:07 +08:00
d90dd48e48 Merge branch 'fix/flag_attr_static' into 'master'
esp_attr: Fix multiple definition linker error for operators for C++ build including FLAG_ATTR'ed enum.

Closes IDF-1091

See merge request espressif/esp-idf!6469
2019-10-30 03:56:14 +08:00
faa219acdb freertos: fix defining uxTopUsedPriority for esp32s2beta 2019-10-29 16:38:48 +01:00
d2114d70a0 CAN: Fix critical section compliance
This commit makes the CAN driver ISR use the ISR version
of critical section.
2019-10-29 20:06:39 +08:00
a099b6f7e4 components/bt: Fix assert when deinit A2DP while playing music 2019-10-29 19:47:50 +08:00
9afba2abf5 esp_wifi: merge esp32s2beta WiFi library to master branch 2019-10-29 19:41:33 +08:00
22526c1701 Review the file api-reference/peripherals/sd_pullup_requirements.rst 2019-10-29 18:56:48 +08:00
ee57f5d8f3 fix bug for close nonblocking tcp crash 2019-10-29 18:51:55 +08:00
6e00988608 Merge branch 'bugfix/fix_dhcp_timeout_issue' into 'master'
Bugfix/fix dhcp timeout issue

Closes WIFI-917

See merge request espressif/esp-idf!6300
2019-10-29 18:20:14 +08:00
01887f71e7 Update kconfiglib to upstream version and replace mconf-idf
Special thanks to @ulfalizer for the helpful suggestions regarding
kconfiglib.

"rsource" option is available for relative path includes
Closes https://github.com/espressif/esp-idf/issues/4064
2019-10-29 10:40:04 +01:00
81ddd9e291 CAN: Reenable example tests
This commit updates the CAN example tests and updates the job
and environment labels in the target-test.yml
2019-10-29 17:25:49 +08:00
3b91c1f4b2 Merge branch 'docs/uart_pattern_detection_clarification' into 'master'
docs: Add extra clarification on use of uart pattern detection.

See merge request espressif/esp-idf!6498
2019-10-29 16:55:50 +08:00
14ed4800d1 docs: Add extra clarification on use of uart pattern detection.
Closes https://github.com/espressif/esp-idf/issues/4187
2019-10-29 16:55:49 +08:00
dc5a7c85ff Merge branch 'bugfix/child_cmake_uninitialized_vars' into 'master'
cmake: Set uninitialized variable warnings in ULP & bootloader subprojects

See merge request espressif/esp-idf!6302
2019-10-29 16:00:05 +08:00
7637feb6ef Merge branch 'bugfix/jump_time_54_sec' into 'master'
esp_timer: Fix time jumps back ~ 54sec

Closes IDFGH-396

See merge request espressif/esp-idf!5943
2019-10-29 14:38:15 +08:00
f4ea7c5a46 cmake: Set uninitialized variable warnings in ULP & bootloader subprojects
Fixes issue where PYTHON was not being expanded when running ulp_mapgen.py,
causing Windows launch setting to be used - reported here:
https://esp32.com/viewtopic.php?f=13&t=12640&p=50283#p50283
2019-10-29 05:38:39 +00:00
a45e998534 Merge branch 'doc/support_policy' into 'master'
docs: Add ESP-IDF support period policy

See merge request espressif/esp-idf!6369
2019-10-29 13:24:06 +08:00
8569d51651 Merge branch 'bugfix/fix_i2s_include_head_bug' into 'master'
Bugfix(I2S):  Fix i2s build error

See merge request espressif/esp-idf!6512
2019-10-29 13:19:00 +08:00
28eae0d467 lwip: cleanup lwip port layer
1. add sys_mbox_trypost_fromisr
2. define sys_msleep
3. simpify semaphore take
2019-10-29 13:11:14 +08:00
65d18eab93 Add config option for LWIP TCP_TMR_INTERVAL
Merges https://github.com/espressif/esp-idf/pull/4213
2019-10-29 13:11:14 +08:00
9e2f44b3c2 lwip: add missing source file
Merges https://github.com/espressif/esp-idf/pull/4186
2019-10-29 13:11:14 +08:00
938069de75 gh_action: add cron job to sync remaining PRs 2019-10-29 13:10:00 +08:00
055cc251b7 Merge branch 'feature/esp32s2beta_merge' into 'master'
esp32s2beta: Merge support to master

Closes IDF-513, IDF-756, IDF-758, IDF-999, IDF-753, IDF-749, IDF-754, IDF-840, and IDF-755

See merge request espressif/esp-idf!6100
2019-10-29 13:02:01 +08:00
d2e62a1602 Merge branch 'NimBLE/update_to_nimble-1.2.0_release' into 'master'
NimBLE: Update NimBLE submodule to latest `nimble-1.2.0-idf` release

See merge request espressif/esp-idf!6350
2019-10-29 12:52:05 +08:00
c5339779a7 NimBLE: Update NimBLE submodule to latest nimble-1.2.0-idf release 2019-10-29 12:52:05 +08:00
67a2f558df Merge branch 'feature/esp_tls_add_wolfssl_and_segregate_files' into 'master'
feature/esp_tls :segregate esp_tls , seperate mbedtls api and add wolfssl support for esp32

See merge request espressif/esp-idf!6095
2019-10-29 12:49:40 +08:00
e8881352c5 secure boot: Fix bug where verification key was not embedded in app 2019-10-29 12:46:09 +11:00
21d49a7e0d Merge branch 'bugfix/coex_semaphore_take_in_isr_lock' into 'master'
fix bug that semaphore may schedule out in ISR locking

See merge request espressif/esp-idf!6425
2019-10-28 18:43:37 +08:00
4987a5ad90 fix bug that semaphore may schedule out in Critical Section
1. Since BLE full-scan feature for BLE mesh change the controller code cause this problem,
it cause coex semaphore take in "interrupt disable", then it may cause task schedule
and cause crash in freertos
2. Fix newlib lock ISR context and critical section check
3. Fix bt controller ISR context and critical section check
2019-10-28 18:43:35 +08:00
988f0c8feb ESP_TLS: Generalizing error messages for esp_tls
:Replace mbedtls specific error messages
2019-10-28 16:05:31 +05:30
f7eaa5f946 ESP_TLS: Restructuring esp_tls
1)Segregating mbedtls API into seperate file and cleaned esp_tls.c
2)Added support for wolfssl for CMake and make
3)Added support for debug_wolfssl (with menuconfig option)
4)Added info on wolfssl in ESP-TLS docs
2019-10-28 16:05:22 +05:30
36cd75d7ed spi_flash tests: Fix exclusion of new API tests in legacy mode 2019-10-28 18:58:05 +11:00
894a3b4771 spi_flash: Remove duplicate spi_flash_rom_patch in CMakeLists.txt 2019-10-28 18:58:05 +11:00
eea0a6bc56 examples: Add ESP32 DUT class to ext_flash_fatfs example test 2019-10-28 18:58:05 +11:00
c6d22c9d65 esp32s2beta: Change default version to "A"
Fixes CI, and most customers should have version "A".
2019-10-28 18:58:05 +11:00
6e1aa985e7 ci: Increase INT_WDT_TIMEOUT_MS for PSRAM configs
This shouldn't be necessary, it's a workaround for a bug
in the config system.
2019-10-28 18:58:05 +11:00
1f62d4be74 esp32s2beta: Updated the beta chip version config to match the markings 2019-10-28 18:58:05 +11:00
5ffb42b4dd esp_wifi: support esp32s2beta A, B and marlin3 chip 2019-10-28 18:58:05 +11:00
5491365874 Fix build error semphr.h:74:3: error: #error "include FreeRTOS.h" must appear in source files before "include semphr.h"
FreeRTOS.h must always be included before semphr.h

Merges https://github.com/espressif/esp-idf/pull/4251
2019-10-28 12:21:26 +08:00
758db1e008 Merge branch 'bugfix/fix_mesh_proxy_adv_with_wrong_dev_name' into 'master'
ble_mesh: using bt device name in mesh proxy adv

Closes BLEMESH-51

See merge request espressif/esp-idf!6438
2019-10-26 20:45:10 +08:00
ea0f0b1700 Merge branch 'feature/btdm_add_api_to_set_channel_classification' into 'master'
Feature/btdm add api to set channel classification

Closes BT-450

See merge request espressif/esp-idf!6229
2019-10-26 20:42:58 +08:00
eef065374e Merge branch 'bugfix/btdm_disable_bt_gatt' into 'master'
components/bt: Disable BR/EDR GATT

Closes BT-456

See merge request espressif/esp-idf!6420
2019-10-26 20:42:37 +08:00
87e1dfa31e Merge branch 'bugfix/btdm_check_avrc_connected_error' into 'master'
components/bt: Fix error in checking AVRC connected

See merge request espressif/esp-idf!6415
2019-10-26 20:42:04 +08:00
a334ace26a Merge branch 'doc/handle_github_prs' into 'master'
address typos fix from PR

Closes IDFGH-2054

See merge request espressif/esp-idf!6481
2019-10-26 20:24:57 +08:00
e461668ea6 Merge branch 'bugfix/mdns_invalid_hostname_queries' into 'master'
mdns: fix crash for hostname queries

See merge request espressif/esp-idf!6480
2019-10-26 20:24:29 +08:00
66c0a107c8 lwip: fix DHCP timeout truncation bug
Change the DHCP timeout type from u16 to u32 to fix DHCP timeout value
truncation issue.
2019-10-25 21:07:37 +08:00
1ed77e3a8d esp_event: remove extra line from source file 2019-10-25 13:14:05 +08:00
7ce75a42c7 Merge branch 'master' into feature/esp32s2beta_merge 2019-10-25 15:13:52 +11:00
3d1170031b mdns: fix crash for hostname queries
Receiving TXT, PTR, SDPTR and SRV record type queries would crash the application if the hostname
 was used as instance name.

Closes https://github.com/espressif/esp-idf/issues/4224
2019-10-25 03:56:38 +00:00
ed984cc9b5 components/bt: Add API and EVT for BLE set channels(BLE) 2019-10-25 11:39:35 +08:00
eaf5f6a319 components/bt: Add API and EVT for set AFH channels(BR/EDR) 2019-10-25 11:39:22 +08:00
521f436315 esp_event: test that handlers can unregister themselves 2019-10-25 11:39:16 +08:00
3c253295eb esp_event: iterate loop nodes safely as well 2019-10-25 11:39:16 +08:00
4c97906fc8 esp_event: fix crash when unregistering a handler instance in itself
When a handler instance is the last one in the list und unregisters
itself, the handler iterator will be invalidated by entering free'd
memory. Same applies for event base and id, if they become empty.

Merges https://github.com/espressif/esp-idf/pull/4139
2019-10-25 11:38:32 +08:00
f974811150 Merge branch 'feature/hf_ag' into 'master'
Feature: BT/HFP AG.

Closes BT-346 and BT-428

See merge request espressif/esp-idf!6306
2019-10-25 10:57:43 +08:00
11aa4ef1ef components/bt: bugfix that bluetooth controller may not be able to enter sleep after end of wake up request 2019-10-25 02:52:12 +00:00
d6201066a3 components/bt: Fix error in checking AVRC connected 2019-10-25 02:50:31 +00:00
93f86b8a6d components/bt: Disable BR/EDR GATT 2019-10-25 02:49:51 +00:00
caa59da5de Merge branch 'bugfix/can_reset_mode_entry' into 'master'
can: Fix reset mode entry and exit calls

See merge request espressif/esp-idf!6442
2019-10-25 10:31:08 +08:00
36d440bd59 ci: Temporarily ignore CAN example test failures
Due to internal CI issue.
2019-10-25 12:49:42 +11:00
434d1d29d1 can: Fix reset mode entry and exit calls
This commit fixes multiple bugs caused by incorrect calls to
can_enter_reset_mode() and can_exit_reset_mode. Example test
scripts also updated to match new runners.
2019-10-25 03:40:43 +08:00
bbb4e0e8f8 Fix typo (tree/three) in uart.rst
Merges https://github.com/espressif/esp-idf/pull/4237
2019-10-24 21:20:24 +08:00
bae5062175 Merge branch 'doc/review_hw-ref-toctree-issues' into 'master'
Make "H/W Reference" toctree symmetrical

See merge request espressif/esp-idf!6449
2019-10-24 16:56:12 +08:00
7c5011f411 websocket_client: fix locking mechanism in ws-client task and when sending data
closes https://github.com/espressif/esp-idf/issues/4169
2019-10-24 07:09:31 +00:00
8661f5f2e7 Merge branch 'nimble/esp_ble_mesh_adv_fix' into 'master'
nimble: Miscellaneous changes

See merge request espressif/esp-idf!6471
2019-10-24 14:38:02 +08:00
a26dfe70aa nimble: Miscellaneous changes
1. Update NimBLE submodule as per changes in adv interval and stop port
2. Make changes in ESP BLE Mesh NimBLE host code for the same
2019-10-24 14:38:01 +08:00
3caa54e546 Merge branch 'feature/add_ping_example' into 'master'
add ping example

Closes WIFI-1196 and IDF-1068

See merge request espressif/esp-idf!6340
2019-10-24 11:37:38 +08:00
4322c863e2 Merge branch 'bugfix/docs_rst_fix_quotation' into 'master'
docs: quotation mark fix in recently added comment

See merge request espressif/esp-idf!6459
2019-10-24 11:18:50 +08:00
5780ac3207 esp_attr: Fix multiple definition linker error for operators for C++ build including FLAG_ATTR'ed enum.
Closes: https://github.com/espressif/esp-idf/pull/4021
Closes: https://github.com/espressif/esp-idf/issues/4016
2019-10-23 17:31:24 +08:00
ba74534efb Merge branch 'bugfix/esp_tls_check_buffer_size' into 'master'
esp-tls: Asserting maximum output buffer in tls-write.

See merge request espressif/esp-idf!6317
2019-10-23 14:45:28 +08:00
c474a7c56e Merge branch 'feature/wifi_redo_scan_example' into 'master'
esp_wifi: Additional code snippets in esp_wifi_scan_example

Closes WIFI-1248

See merge request espressif/esp-idf!6310
2019-10-23 14:12:33 +08:00
019502a36e esp_wifi: Additional code snippets in esp_wifi_scan_example 2019-10-23 14:12:32 +08:00
9f93067649 Merge branch 'bugfix/select_with_sdmmc_mount' into 'master'
VFS: Fix bug which occurs when driver is installed during a select() call

Closes IDFGH-1259

See merge request espressif/esp-idf!6359
2019-10-23 14:05:49 +08:00
b525fa2c0a Merge branch 'doc/review_api-ref_periph-spi_master' into 'master'
Review the file api-reference/peripherals/spi_master.rst.

See merge request espressif/esp-idf!5540
2019-10-23 14:04:04 +08:00
04dbe663be Merge branch 'feature/heap_caps_get_size_free' into 'master'
add heap_caps_get_allocated_size

See merge request espressif/esp-idf!6375
2019-10-23 14:02:50 +08:00
740f334b4b Merge branch 'bugfix/fix_embed_files_docs_with_cmake' into 'master'
docs: cmake docs fixes

See merge request espressif/esp-idf!5391
2019-10-23 13:19:47 +08:00
5bec9fb010 Merge branch 'bugfix/random_en_dis_for_app' into 'master'
bootloader_support: Fix using shared CLK_EN and RST_EN regs for random

See merge request espressif/esp-idf!6198
2019-10-23 13:18:01 +08:00
b216e3b5c8 Merge branch 'feature/lwip_support_mdns_queries' into 'master'
lw-IP: support mdns queries

See merge request espressif/esp-idf!5242
2019-10-23 13:10:41 +08:00
bf1d32d008 Merge branch 'feature/esptool_v2.8' into 'master'
esptool: Bump to v2.8 release

See merge request espressif/esp-idf!6437
2019-10-23 06:03:00 +08:00
b1fbf97802 docs: quotation mark fix in recently added comment 2019-10-22 21:26:37 +02:00
b125bb50ea esp_common: IPC works with the priority of the caller's task
Closes: IDF-78
2019-10-22 22:19:34 +08:00
bdaf201bd0 Make "H/W Reference" toctree symmetrical
Update the toctree of "H/W Reference" to make its contents symmetrical for easier and more intuitive navigation.
2019-10-22 21:27:10 +08:00
d3ee6b6225 Merge branch 'doc/add_chinese_translation_for_flash_encryption' into 'master'
add chinese translation into flash encryption

See merge request espressif/esp-idf!6185
2019-10-22 19:37:28 +08:00
9ecc34e086 add chinese translation into flash encryption 2019-10-22 19:37:28 +08:00
93223ae3f0 Merge branch 'docs/Update_CN_Getting_Started_Legacy_With_Changes_in_EN' into 'master'
Sync CN translation with EN updates regarding GNU make to cmake

See merge request espressif/esp-idf!6309
2019-10-22 17:57:38 +08:00
56ce449e7f SYNC CN translation with the lastest EN translation, to make CMAKE the default system
update CN translation
2019-10-22 17:57:37 +08:00
f0c6bb431f ci: mqtt ssl test updated to output larger data in form of binary partition
Testing with predefined buffer sizes for MQTT as well as mbedTLS to
exercise fragmenting outgoing data on both layers. Example test compares
received partition with the actual binary file.
2019-10-22 08:49:42 +00:00
a9e63d947b esp-tls: Added support for fragmenting outgoing data in tls_write(), for cases of out data being larger than the maximum out buffer of underlying tls-stack. 2019-10-22 08:49:42 +00:00
lly
2350b15451 ble_mesh: using bt device name in mesh proxy adv 2019-10-22 15:04:19 +08:00
c60370b67f esptool: Update esptool version to match master 2019-10-22 16:44:16 +11:00
d1b2c490cd esptool: Bump to v2.8 release 2019-10-22 16:39:54 +11:00
7bdd5f639b doc: add api reference for icmp_echo 2019-10-22 04:38:09 +00:00
dc6acf0033 icmp: add example and unitest 2019-10-22 04:38:09 +00:00
fa32a4bd93 ping: refactor with new esp_ping_xxx APIs
This refactor is only for backwards compatible.
2019-10-22 04:38:09 +00:00
a77e69c408 lwip: add icmp echo example
It piggybacks on the console example to add ping support and CLI.

Merges https://github.com/espressif/esp-idf/pull/4093
2019-10-22 04:38:09 +00:00
6c3527e2e6 Merge branch 'bugfix/fix_args_to_spiffsgen_in_make_buildsystem' into 'master'
spiffs: fix issue with args to spiffsgen in make

See merge request espressif/esp-idf!6434
2019-10-22 12:36:49 +08:00
746322b7d6 spiffs: fix issue with args to spiffsgen in make 2019-10-22 11:35:19 +08:00
59aa07d5d9 Merge branch 'bugfix/btdm_fix_lmp_sniff_req_timeout' into 'master'
components/bt: Fix LMP sniff req timeout

See merge request espressif/esp-idf!6351
2019-10-22 11:20:14 +08:00
8675a818f9 Merge branch 'master' into feature/esp32s2beta_merge 2019-10-22 13:51:49 +11:00
4c3c109e60 Merge branch 'feature/nimble_host_esp_ble_mesh' into 'master'
components/bt: Add support of NimBLE host in ESP BLE Mesh

See merge request espressif/esp-idf!6358
2019-10-21 20:18:25 +08:00
f58d7d14c7 components/bt: Add support of NimBLE host in ESP BLE Mesh 2019-10-21 20:18:21 +08:00
5b0d262489 Merge branch 'bugfix/not_restoring_ble_mesh_cfg_val' into 'master'
ble_mesh: fix not restoring ble mesh cfg value

See merge request espressif/esp-idf!6275
2019-10-21 20:16:45 +08:00
8b56496efa VFS: Fix bug which occurs when driver is installed during a select() call
Closes https://github.com/espressif/esp-idf/issues/3554
2019-10-21 11:59:38 +02:00
341ef5e8b2 add heap_caps_get_size_free 2019-10-21 16:47:36 +08:00
deda0091d9 Review the file api-reference/peripherals/spi_master.rst. 2019-10-21 16:13:16 +08:00
27a4802f92 Merge branch 'bugfix/remove_mbedtls_would_block' into 'master'
Remove check for would_block in mbedtls

See merge request espressif/esp-idf!6384
2019-10-21 15:33:59 +08:00
c4fddc8590 Merge branch 'support/heap_caps_total_size_api' into 'master'
Add api to get total heap size in bytes for given capability

See merge request espressif/esp-idf!6362
2019-10-21 14:55:58 +08:00
d3020b217d Add api to get total heap size in bytes for given capability 2019-10-21 14:55:58 +08:00
bb38d181a1 Merge branch 'bugfix/vfs_fat_sdmmc_mount' into 'master'
Fix memory leak upon failure of esp_vfs_fat_sdmmc_mount()

Closes IDFGH-1969

See merge request espressif/esp-idf!6282
2019-10-21 10:33:37 +08:00
c7d8ef52ca Merge branch 'fix/esp_flash_no_qe' into 'master'
esp_flash: fix the QE write issue in high freq, and support UT for external chips

Closes IDF-888

See merge request espressif/esp-idf!5736
2019-10-20 13:59:30 +08:00
6373196a41 Merge branch 'bugfix/mdns_BCT_fix' into 'master'
mdns: fixes to have the BCT passing with latest IDF/lw-IP

See merge request espressif/esp-idf!6286
2019-10-19 17:10:02 +08:00
4b7a50d584 Merge branch 'bugfix/spi_flash_read_changes_for_less_than_16_bytes' into 'master'
Bugfix/spi flash read changes for less than 16 bytes

Closes IDFGH-1798

See merge request espressif/esp-idf!6126
2019-10-19 14:56:43 +08:00
56f73d7720 flash_ops: fix spi_flash_read with source buffer not from internal memory and size < 16
Closes https://github.com/espressif/esp-idf/issues/4010
2019-10-19 14:56:43 +08:00
1821873a1d Merge branch 'feature/follow_symlinks_in_spiffsgen' into 'master'
spiffs: follow symlinks in spiffsgen

See merge request espressif/esp-idf!6280
2019-10-18 18:49:35 +08:00
5ca7cbfcc4 Merge branch 'bugfix/ci_test_idf_monitor' into 'master'
CI: Adjust the test parameters of IDF Monitor tests

See merge request espressif/esp-idf!6377
2019-10-18 18:01:11 +08:00
5db1f5fdfb docs: Add ESP-IDF support period policy 2019-10-18 18:25:20 +11:00
fe94e63de3 Merge branch 'bugfix/modify_buffer_number_type_from_u8_to_u16' into 'master'
esp_wifi: modify WiFi buffer number type from uint8_t to uint16_t

See merge request espressif/esp-idf!6355
2019-10-18 14:24:20 +08:00
d44e3d9f56 docs: cmake docs fixes 2019-10-18 12:51:46 +08:00
87c3decc12 Remove check for would_block in mbedtls
Basically, in the portability layer, it is checked if the socket is
NON-block, and if not, then even the EAGAIN and EWOULDBLOCK errors are
diverted to a RECV error. This causes a problem for sockets with
receive timeouts set. When such a timeout is set, the condition for
NON_BLOCK isn't met and hence a hard error is returned.

Searching for EAGAIN and EWOULDBLOCK in lwip returns only 3 results
(accept, recvfrom, close) and all of them look to be genuine cases for
EWOULDBLOCK. So removing this check to make receive timeout with TLS
work.
2019-10-17 16:36:18 +05:30
acf114895d Merge branch 'doc/review_api-ref_periph-spi_slave' into 'master'
Doc/review api ref periph spi slave

See merge request espressif/esp-idf!5625
2019-10-17 18:13:09 +08:00
05180dfb4c Merge branch 'bugfix/mqtt_reference_latest_version' into 'master'
mqtt: updated to latest version to include latest fixes and features

See merge request espressif/esp-idf!6294
2019-10-17 18:01:58 +08:00
e8af0f264c Merge branch 'feature/cxx_rtti_preparation_v2' into 'master'
C++: add provisions for optional RTTI support (v2)

See merge request espressif/esp-idf!6341
2019-10-17 16:22:06 +08:00
42e59c317a Merge branch 'bugfix/mqtt_example_url_update' into 'master'
MQTT: update default broker URL for examples

Closes IDF-1052

See merge request espressif/esp-idf!6214
2019-10-17 16:12:29 +08:00
ae21d669b9 Merge branch 'master' into feature/esp32s2beta_merge 2019-10-17 18:22:08 +11:00
0f1923ab22 Merge branch 'bugfix/o2_build_warnings' into 'master'
Fix -O2 build warnings

Closes IDFGH-1945 and IDFGH-1946

See merge request espressif/esp-idf!6311
2019-10-17 13:09:28 +08:00
5ee27aeec8 Merge branch 'feature/openeth_driver' into 'master'
ethernet: support OpenCores ethernet MAC

Closes IDF-891

See merge request espressif/esp-idf!6252
2019-10-17 13:05:27 +08:00
84f5322d05 Merge branch 'nimble/update_no_of_conn' into 'master'
NimBLE: Set the default number of max connections to the controller's value

See merge request espressif/esp-idf!6353
2019-10-17 12:54:37 +08:00
10fd2ae653 NimBLE: Set the default number of max connections to the controller's value
Also, update the NimBLE submodule to remove unwanted logging stuff
2019-10-17 12:54:34 +08:00
89d2e2a5e3 Merge branch 'feature/example_netbios' into 'master'
add netbios support in restful server example

Closes IDF-1070

See merge request espressif/esp-idf!6346
2019-10-17 12:54:01 +08:00
b7fd8166d5 Merge branch 'bugfix/ws_opcodes_fix' into 'master'
ws_client: fix for not sending ping responses, updated to pass events also for...

See merge request espressif/esp-idf!6111
2019-10-17 12:36:08 +08:00
dd326447c1 Merge branch 'feature/can_support_low_bit_rates' into 'master'
can:  Support for lower bit rates for ESP32 ECO2 and ECO3

Closes IDF-1045

See merge request espressif/esp-idf!6363
2019-10-17 12:33:18 +08:00
820fd6447d can: Add support for lower bit rates
This commit adds support for lower bit rates in the CAN Driver for
ESP32 Rev 2 or later chips.
2019-10-17 12:33:17 +08:00
d3157910e0 ci: Fix "local variable referenced before assignment" if connecting to DUT fails 2019-10-17 14:38:49 +11:00
7016cb8864 Merge branch 'doc/add_doc_for_socket_error_usage' into 'master'
doc: add LW-IP socket error usage

See merge request espressif/esp-idf!5856
2019-10-17 06:17:34 +08:00
dfdf04644f Support WiFi both on esp32 and esp32s2beta 2019-10-17 09:12:37 +11:00
0744b6fadb CI: Adjust the test parameters of IDF Monitor 2019-10-16 12:38:47 +02:00
007d01c10a esp_timer: Fix System time jumps back ~54secs
Closes: https://github.com/espressif/esp-idf/issues/2513
2019-10-16 18:33:14 +08:00
d80fae2c88 esp32: Add UTs to check the System time does not jump back 2019-10-16 16:06:39 +08:00
65940cc0da Merge branch 'feature/log_system_time' into 'master'
log: Add menuconfig option to log system time rather than RTOS time

See merge request espressif/esp-idf!6103
2019-10-16 14:56:14 +08:00
633a8376db Merge branch 'bugfix/ethernet_unitest_crash' into 'master'
ethernet: fix crash in unit test

See merge request espressif/esp-idf!6284
2019-10-16 13:05:16 +08:00
d767475fd0 Merge branch 'bugfix/ws_buffer_overflow_fix' into 'master'
tcp_transport: fix possible buffer overflow in ws transport connect

Closes IDF-692

See merge request espressif/esp-idf!5887
2019-10-16 13:04:39 +08:00
50cb3ad622 ci: Update unit test jobs to match master 2019-10-16 15:16:46 +11:00
d0f615e6f8 Merge branch 'fix/tcp_server_example' into 'master'
Bugfix of tcp_server example.

Closes IDFGH-1306

See merge request espressif/esp-idf!5211
2019-10-15 23:04:47 +08:00
2c7165f783 Review the file api-reference/peripherals/spi_slave.rst 2019-10-15 22:13:03 +08:00
c6934d6175 MQTT: update default broker URL for examples
The MQTT broker URL used as default in the examples has ceased operation. All examples and documention have been updated to point to the new domain mqtt.eclipse.org.
This also required an update of the python example test scripts to use TLS 1.2
2019-10-15 09:35:23 +00:00
2e6398affa Merge branch 'docs/Update_CN_hW_Reference_With_Changes_in_EN' into 'master'
Update board getting started guides to make cmake default

See merge request espressif/esp-idf!6295
2019-10-15 17:15:17 +08:00
c70d234ee6 Update board getting started guides to make cmake default 2019-10-15 17:15:15 +08:00
07e0254f06 lwip: autoip: used Kconfig parameters instead of constants to be in line with previous esp-lwip port and to have the BCT passed 2019-10-15 07:07:00 +00:00
7f410a0bcb mdns: fix possible race condition when checking DHCP status on WIFI_EVENT_STA_CONNECTED event.
tcpip_adapter_dhcpc_get_status() returns the actual internal value of dhcp client without any locking or TCP/IP stack context call, so when CONNECTED event fired with default settings it started DHCP client in TCP/IP stack context and at the same time mdns event handler checking actual DHCP state, which could still be INIT (not STARTED). Purpose of this check is to enable PCB if DHCP was stopped before setting network interface up (typically static IP settings), so the solutin is to check against TCPIP_ADAPTER_DHCP_STOPPED state
2019-10-15 07:07:00 +00:00
f3cb91ef71 mdns: updated example test to exercise also hostnames resolved by lwip gethostbyname and getaddrinfo 2019-10-15 07:02:19 +00:00
81cd406683 lwip: support mdns queries 2019-10-15 07:02:19 +00:00
a89000855e esptool: Update submodule adding ESP32-S2 beta support 2019-10-15 16:55:39 +11:00
f5238d5e42 Merge branch 'feature/esp32s2beta' into feature/esp32s2beta_merge 2019-10-15 15:03:45 +11:00
496ede9bcd Merge branch 'master' into feature/esp32s2beta_merge 2019-10-15 14:59:27 +11:00
7e3676f307 Merge branch 'bugfix/debug_logs_cleanup' into 'master'
Bugfix/debug logs cleanup

See merge request espressif/esp-idf!6209
2019-10-14 23:37:51 +08:00
ac0b4c184d wpa_supplicant: Make hexdump logs more compact
When running with wpa debug prints enabled data/key hexdumps are
printed to the log in a really verbose format (one byte per line).

Make these printouts more compact. 16 bytes per line.
2019-10-14 23:37:51 +08:00
1ab458b60b Merge branch 'bugfix/console_command_exit_error_check' into 'master'
console: fix wrong param passed to esp_err_to_name

See merge request espressif/esp-idf!6360
2019-10-14 23:10:01 +08:00
b76756b5ab Merge branch 'feature/idf_monitor_detect_port' into 'master'
idf_monitor: Autodetect port

Closes IDFGH-1995

See merge request espressif/esp-idf!6345
2019-10-14 22:19:56 +08:00
93bca1dc2b Merge branch 'hfp_bugfix' into 'master'
component/bt: Fix bugs in HFP feature

Closes BT-427

See merge request espressif/esp-idf!6197
2019-10-14 21:47:56 +08:00
8b777ace9f Merge branch 'bugfix/apps_esp_ble_mesh' into 'master'
ESP BLE Mesh: Minor fix - Print the address and the on/off value appropriately

See merge request espressif/esp-idf!6322
2019-10-14 21:42:36 +08:00
04325d2876 ESP BLE Mesh: Minor fix - Print the address and the on/off value appropriately
The new value should be printed in the set function and not the previous
one.
2019-10-14 21:42:35 +08:00
bf87d0949b Merge branch 'bugfix/btdm_osi_queue_gycfix_master' into 'master'
Component/bt : Added handling of osi memory calloc failure

See merge request espressif/esp-idf!6140
2019-10-14 21:35:41 +08:00
d56e7ec037 esp_wifi: modify WiFi buffer number type from uint8_t to uint16_t
Modify WiFi receiving buffer number type from uint8_t to uint16_t to support
configuring more than 255 buffers.
2019-10-14 21:30:45 +08:00
b6a7b35b61 Merge branch 'bugfix/fix_sta_wpa2_enterprise_issue' into 'master'
esp_wifi: fix a station wpa2 enterprise issue

Closes WIFI-1042

See merge request espressif/esp-idf!6287
2019-10-14 21:27:05 +08:00
81e88764d5 console: fix wrong param passed to esp_err_to_name 2019-10-14 19:49:19 +08:00
eb104aa16f esp_flash: fix the quad issue for some GD flash chips
The GD flash with product ID 40H, is already used in Wrover-nosufix modules.
2019-10-14 17:25:59 +08:00
1e1d50376b esp_flash: add unit test for external flash and QE toggling
Tests for external flash chips used to controlled by macros, one bin for
one chip. And tests are done manually. This commit refactored the test
so that all 3 chips can all run in single test.
2019-10-14 17:25:58 +08:00
15d311bb80 esp_flash: rename internal variables for better readability
chip_drv in HAL are renamed as host
2019-10-14 17:25:58 +08:00
571864e8ae esp_flash: fix set qe bit and write command issues
There used to be dummy phase before out phase in common command
transactions. This corrupts the data.

The code before never actually operate (clear) the QE bit, once it finds
the QE bit is set. It's hard to check whether the QE set/disable
functions work well.

This commit:

1. Cancel the dummy phase

2. Set and clear the QE bit according to chip settings, allowing tests
   for QE bits. However for some chips (Winbond for example), it's not
   forced to clear the QE bit if not able to.

3. Also refactor to allow chip_generic and other chips to share the same
   code to read and write qe bit; let common command and read command share
   configure_host_io_mode.

4. Rename read mode to io mode since maybe we will write data with quad
   mode one day.
2019-10-14 17:25:58 +08:00
abf9345b85 ws_client: fix for not sending ping responses, updated to pass events also for PING and PONG messages, added interfaces to send both binary and text data
closes https://github.com/espressif/esp-idf/issues/3982
2019-10-14 11:05:27 +02:00
26b69f1363 New Clean Commit for AG.
Only Support single AG control block.
2019-10-14 07:54:09 +00:00
8fbece32a9 Merge branch 'bugfix/msys2_toolchain_path_note' into 'master'
docs: update windows msys2 installer notes to unzip all-in-one toolchain to path without spaces

See merge request espressif/esp-idf!6181
2019-10-14 15:31:49 +08:00
5ce95f2bfd Merge branch 'bugfix/ci_weekend_test_update' into 'master'
CI: weekend test fixes

See merge request espressif/esp-idf!6235
2019-10-14 15:30:33 +08:00
92a507c0aa Merge branch 'bugfix/ws_client_fix_event_blocking' into 'master'
ws_client: fixed posting to event loop with websocket timeout

See merge request espressif/esp-idf!5901
2019-10-14 15:17:34 +08:00
5d59895067 Merge branch 'bugfix/ws_client_fixed_path_query_uri' into 'master'
websocket_client: fix URI parsing to include also query part in websocket connection path

See merge request espressif/esp-idf!6201
2019-10-14 15:01:59 +08:00
d4edc6a40a Merge branch 'bugfix/mdns_answer_ip6_size' into 'master'
mdns: use constant size of AAAA answer instead of lw_IP struct size

Closes WIFI-771

See merge request espressif/esp-idf!6188
2019-10-14 14:59:16 +08:00
e1d61d03de components/bt: Fix LMP sniff req timeout 2019-10-14 14:56:07 +08:00
555cc11a25 tcp_transport: fix possible buffer overflow in ws transport connect
closes IDF-692
2019-10-14 06:50:22 +00:00
84c72863e1 add netbios support in restful server example 2019-10-14 14:26:43 +08:00
640eac84fa mqtt: updated to latest version to include latest fixes, support for global CA store, extended error structure to receive mqtt specific errors. updated idf ssl example to use this error struct
https://github.com/espressif/esp-mqtt/issues/135
2019-10-14 06:26:14 +00:00
72040f2c44 idf_monitor: Autodetect port
Closes https://github.com/espressif/esp-idf/issues/4191
2019-10-14 08:06:43 +02:00
e2897f4d4a Merge branch 'doc/esp_ringbuf_acquire_complete' into 'master'
esp_ringbuf: add documents for SendAcquire and SendComplete

See merge request espressif/esp-idf!6165
2019-10-14 11:34:12 +08:00
c1ccfde6dd Merge branch 'docs/update_bootloader_chip_revision_print' into 'master'
bootloader_support: fix logging prints around chip revision

See merge request espressif/esp-idf!6324
2019-10-14 11:29:49 +08:00
31dac92e5f ethernet: support OpenCores ethernet MAC
OpenCores Ethernet MAC has a relatively simple interface, and is
already supported in QEMU. This makes it a good candidate for enabling
network support when running IDF apps in QEMU, compared to the
relatively more complex task of writing a QEMU model of ESP32 EMAC.

This driver is written with QEMU in mind: it does not implement or
handle things that aren't implemented or handled in the QEMU model:
error flags, error interrupts. The transmit part of the driver also
assumes that the TX operation is done immediately when the TX
descriptor is written (which is the case with QEMU), hence waiting for
the TX operation to complete is not necessary.

For simplicity, the driver assumes that the peripheral register
occupy the same memory range as the ESP32 EMAC registers, and the
same interrupt source number is used.
2019-10-13 17:05:26 +02:00
e763a3a96f ci: add test build with -O2 -NDEBUG, cleanup 2019-10-13 16:21:08 +02:00
6e423d5cf6 drivers/can: fix skipped function calls when assertions disabled
When CONFIG_FREERTOS_ASSERT_DISABLE is set, the function calls wrapped
inside the assertion macros would be removed from the code.

Closes https://github.com/espressif/esp-idf/issues/4143
2019-10-13 15:37:19 +02:00
0be585179e spiffs: fix warning when building at release optimization level
Closes https://github.com/espressif/esp-idf/issues/4144
2019-10-13 15:37:19 +02:00
499d087c91 C++: add provisions for optional RTTI support
Ref. https://github.com/espressif/esp-idf/issues/1684

This change allows RTTI to be enabled in menuconfig. For full RTTI
support, libstdc++.a in the toolchain should be built without
-fno-rtti, as it is done now.

Generally if libstdc++.a is built with RTTI, applications which do not
use RTTI (and build with -fno-rtti) could still include typeinfo
structures referenced from STL classes’ vtables. This change works
around this, by moving all typeinfo structures from libstdc++.a into
a non-loadable section, placed into a non-existent memory region
starting at address 0. This can be done because when the application
is compiled with -fno-rtti, typeinfo structures are not used at run
time. This way, typeinfo structures do not contribute to the
application binary size.

If the application is build with RTTI support, typeinfo structures are
linked into the application .rodata section as usual.

Note that this commit does not actually enable RTTI support.
The respective Kconfig option is hidden, and will be made visible when
the toolchain is updated.
2019-10-13 14:46:44 +02:00
99659091fb bootloader_support: fix logging prints around chip revision 2019-10-11 14:35:22 +05:30
37fdcc1eb5 esp_ringbuf: add documents for SendAcquire and SendComplete 2019-10-11 15:44:27 +08:00
420ee45279 Merge branch 'feature/handle_icy_uris' into 'master'
Modified http_parser to handle ICY uris.

See merge request espressif/esp-idf!6207
2019-10-11 14:06:16 +08:00
9f9cc717e3 Merge branch 'refactor/ethernet_remove_blocking_in_timer_callback' into 'master'
Ethernet: optimize and bugfix

Closes IDF-1051

See merge request espressif/esp-idf!6213
2019-10-11 13:07:38 +08:00
742d4689dd Modified http_parser to handle ICY uris.
ICY URIs e.g `http://uk1.internet-radio.com/proxy/vombat?mp=/;` need to
be handled differently.

For basic use case, these URIs are similar to HTTP with exception that they reply with `ICY 200` etc in place of `HTTP/1.1 200`.

In http_parser, we now also parse ICY URIs to be able to handle these similar to HTTP.

Signed-off-by: Vikram Dattu <vikram.dattu@espressif.com>
2019-10-11 05:04:08 +00:00
d2ad0f0774 Merge branch 'test/add_wifi_init_unit_test_case' into 'master'
add wifi init unit test cases

Closes IDF-77

See merge request espressif/esp-idf!4200
2019-10-11 13:00:59 +08:00
fc018987eb add wifi init unit test cases 2019-10-11 13:00:57 +08:00
51b4e97e42 Merge branch 'fix/cmake_req_private_comp' into 'master'
cmake: Fix cmakelists to add required private components

See merge request espressif/esp-idf!5428
2019-10-11 12:58:45 +08:00
13c128fd31 Ethernet: optimize and bugfix
1. simplify deallocate in esp_eth_mac_new_esp32, esp_eth_mac_new_dm9051
2. remove blocking operation in os timer callback
3. check buffer size in ethernet receive function
2019-10-11 12:15:17 +08:00
4e1ccd8b6f doc: add LWIP socket error usage 2019-10-11 12:09:10 +08:00
f0bfd33a10 ethernet: fix crash in unit test 2019-10-11 02:14:12 +00:00
lly
35353de137 ble_mesh: fix not callback net_key when device is provisioned 2019-10-11 09:51:02 +08:00
0e3cdce8f7 esp_wifi: fix the bug that wpa2 enterprise sta can connect open AP 2019-10-11 09:39:35 +08:00
19c644f7fd Fix memory leak upon failure of esp_vfs_fat_sdmmc_mount()
Closes https://github.com/espressif/esp-idf/issues/4165
2019-10-10 14:28:43 +00:00
25c55405d4 Merge branch 'bugfix/wifi_lib_ci' into 'master'
ci: fix ci issues of wifi lib

See merge request espressif/esp-idf!6288
2019-10-10 22:25:36 +08:00
6499d36441 Merge branch 'NimBLE/fix_esp_nimble_hci_delay' into 'master'
NimBLE: Misc changes in NimBLE porting layer and menuconfig option

See merge request espressif/esp-idf!6243
2019-10-10 17:20:15 +08:00
19375a674e NimBLE: Misc changes in NimBLE porting layer and menuconfig option
- Minor fix to remove while loop & delay while transmitting data from
  host to controller.
- Add menuconfig option to enable predefined public-private keypair for
  debugging (Vol. 3, Part H, 2.3.5.6.1)
2019-10-10 17:20:15 +08:00
74e39c9cff Merge branch 'docs/Update_CN_Getting_Started_With_Changes_in_EN' into 'master'
Add translation for getting started guide - batch 1

See merge request espressif/esp-idf!6147
2019-10-10 16:52:07 +08:00
b0f2bb2adc Add translation for getting started guide - batch 1 2019-10-10 16:52:07 +08:00
ae236c33a2 Merge branch 'bugfix/ut_adjtime' into 'master'
newlib: Fix UT - test time adjustment happens linearly

See merge request espressif/esp-idf!6245
2019-10-10 11:08:46 +08:00
6df8658b5b Merge branch 'bugfix/fixes_from_kconfiglib_update' into 'master'
Fix of menuconfig bug for MSYS2 and a couple of cosmetic changes

See merge request espressif/esp-idf!6255
2019-10-10 11:06:29 +08:00
f8a3da024a Merge branch 'bugfix/treat_unreg_components_as_unresolved' into 'master'
CMake: Treat unregistered components as unresolved

See merge request espressif/esp-idf!5700
2019-10-09 23:53:57 +08:00
fc9a63f0b7 Merge branch 'feature/cxx_coding_style' into 'master'
doc: Added basic C++ style guide

See merge request espressif/esp-idf!6216
2019-10-09 23:52:18 +08:00
751b60b171 Merge branch 'feature/add_psram_workaround_option' into 'master'
make psram workaround depend on chip revison

Closes IDF-1004

See merge request espressif/esp-idf!6113
2019-10-09 23:41:09 +08:00
b7bfcf3c93 Revised tcp_server example.
Fixed error caused by unnecessary reopening of listening socket.
Extracted packet retransmit logic to separate function.
Added robust implementation for sending data

Closes https://github.com/espressif/esp-idf/pull/3597
2019-10-09 14:34:28 +02:00
262b1c9f65 Merge branch 'bugfix/coap_mbedtls_add_define_check_for_apln' into 'master'
ESP32/coap_mbedtls:add macro checks

See merge request espressif/esp-idf!6262
2019-10-09 16:46:46 +08:00
3e9a054626 ESP32/coap_mbedtls:add macro checks
Closes https://github.com/espressif/esp-idf/issues/4156
2019-10-09 16:46:46 +08:00
c6129b81f2 ci: fix ci issues of wifi lib
sync esp_wifi.h to wifi lib
2019-10-09 15:07:19 +08:00
2d4761f548 Merge branch 'doc/zh_CN_repo_README' into 'master'
add zh_CN translation of README in esp-idf repo

Closes IDF-957

See merge request espressif/esp-idf!6217
2019-10-09 13:48:35 +08:00
e33153f633 Added basic C++ style guide
* C++ style guide
* Changed headings to "Title Case"
2019-10-09 12:25:48 +08:00
27aaff798b Merge branch 'feature/esp32s2beta_merge_fix_bootloader_ld' into 'feature/esp32s2beta'
bootloader: Fix bootloader ld for esp32s2beta

See merge request espressif/esp-idf!6187
2019-10-09 12:21:25 +08:00
18183871de add zh_CN translation of README in esp-idf repo 2019-10-09 11:50:06 +08:00
9550607b33 Merge branch 'bugfix/alt_exit_idf_monitor' into 'master'
idf_monitor: Exit with CTRL+X in menu

Closes IDFGH-1971 and IDFGH-1930

See merge request espressif/esp-idf!6260
2019-10-09 09:39:51 +08:00
a986283997 spiffs: follow symlinks in host test 2019-10-08 17:55:59 +08:00
6153a0ab62 spiffs: follow symlinks feature during partition in spiffsgen 2019-10-08 17:55:59 +08:00
lly
673f58fe03 ble_mesh: fix not restoring ble mesh cfg value 2019-10-08 16:34:05 +08:00
46a65a35d6 Merge branch 'bugfix/missing_build_targets_cmake' into 'master'
esptool_py: add missing phony build targets for CMake

Closes IDFGH-370

See merge request espressif/esp-idf!5838
2019-10-08 16:24:40 +08:00
416d14ca6b Merge branch 'feat/spi_internal_header' into 'master'
spi: move deprecated functions into internal header

See merge request espressif/esp-idf!5985
2019-10-08 16:19:46 +08:00
b61c3d5d0f Merge branch 'bugfix/examples_disconnect_before_restart' into 'master'
examples: disconnect from Wi-Fi before restart (and don't try to reconnect!)

See merge request espressif/esp-idf!6267
2019-10-08 16:16:25 +08:00
6435c9f3d5 idf_monitor: Exit with CTRL+X in menu
Currently, the only way of exiting the idf_monitor program is to hit the CTRL+] button, if your keyboard doesn't have that key unless you hit another modifier key, it's not super trivial to exit.

This change adds the option to exit with CTRL+T (for menu) then hitting X (or CTRL+X) for exiting.

Closes https://github.com/espressif/esp-idf/pull/4167
Closes https://github.com/espressif/esp-idf/issues/4129
2019-10-08 08:15:51 +00:00
bf056c30d2 Merge branch 'bugfix/restful_server_make_flash' into 'master'
examples/restful_server: fix Makefile syntax for flashing SPIFFS

Closes IDFGH-1841

See merge request espressif/esp-idf!6263
2019-10-08 16:14:40 +08:00
56fcafc346 Fix cmake typo 2019-10-08 08:11:53 +00:00
d24086c529 tools: Fix idf.py menuconfig characters in MSYS2 2019-10-08 08:11:53 +00:00
d3ed17acd7 Cosmetic Kconfig fixes 2019-10-08 08:11:53 +00:00
267ca19ae8 bootloader: Fix dram_seg 2019-10-08 16:07:53 +08:00
9f0a44f5c0 component/bt: Fix bugs in HFP feature 2019-10-08 07:07:45 +00:00
8c1f3cb6b2 Merge branch 'feature/esp32s2beta_isr_table' into 'feature/esp32s2beta'
soc: Add interrupt numbers mapping for esp32s2beta

See merge request espressif/esp-idf!6204
2019-10-08 12:45:26 +08:00
1fb461a24c Merge branch 'feature/esp32s2beta_fix_test_posix_timers_clock' into 'feature/esp32s2beta'
newlib: Fix test_posix_timers_clock for esp32s2beta

See merge request espressif/esp-idf!6170
2019-10-08 12:43:20 +08:00
4d7c955041 Merge branch 'bugfix/freertos_xTaskNotifyGive' into 'master'
freertos: remove semicolon in xTaskNotifyGive

See merge request espressif/esp-idf!6208
2019-10-08 12:21:40 +08:00
afbe1ba878 spi: move deprecated functions into internal header
Resolves https://github.com/espressif/esp-idf/issues/4132
2019-10-08 11:51:39 +08:00
20456e697c Merge branch 'bugfix/rtc_wdt_timeout' into 'feature/esp32s2beta'
soc: Fix setting timeout for RTC_WDT

See merge request espressif/esp-idf!6172
2019-10-08 09:57:07 +08:00
23e9224be6 log: Add menuconfig option to log system time rather than RTOS time
Merges https://github.com/espressif/esp-idf/pull/3958
2019-10-08 12:03:45 +11:00
5768102d4e esp_wifi: fix typo in comments (ESP_ERR_WIFI_NOT_STARTED) 2019-10-07 16:48:32 +02:00
28a440521e examples: gracefully shut down Wi-Fi before restart
This fixes the issue that if Wi-Fi is stopped from a shutdown handler,
the code in connect.c tries to reconnect, and fails because Wi-Fi is
already stopped.
Also make the error check in connect.c less strict.
2019-10-07 16:47:49 +02:00
271e6c4c9c websocket_client: fix URI parsing to include also query part in websocket connection path
closes https://github.com/espressif/esp-idf/issues/4090
2019-10-07 16:40:38 +02:00
f0563b3844 system_api: call shutdown handlers in reverse order
Similar to how destructors should be called in reverse order to the
constructors.
2019-10-07 16:36:18 +02:00
50505068c4 ws_client: fixed posting to event loop with websocket timeout
Executing event loop `esp_event_loop_run()` with timeout causes delays in receiving events from user code. Fixed by removing the timeout to post synchronously.

closes https://github.com/espressif/esp-idf/issues/3957
2019-10-07 16:34:51 +02:00
d77a7c23da Merge branch 'bugfix/ws_client_fixes' into 'master'
ws_client: various fixes

See merge request espressif/esp-idf!5879
2019-10-07 20:05:41 +08:00
51ce458adb Merge branch 'bugfix/esp_tls_add_header_in_esp_tls_h' into 'master'
ESP32/esp_tls: include esp_err.h in esp_tls.h

See merge request espressif/esp-idf!6256
2019-10-07 19:47:33 +08:00
9f86f969b2 ESP32/esp-tls: include esp_err.h in esp_tls.h
Closes https://github.com/espressif/esp-idf/issues/4100
2019-10-07 19:47:32 +08:00
75f2948e02 examples/restful_server: fix Makefile syntax for flashing SPIFFS
Closes https://github.com/espressif/esp-idf/issues/4050
2019-10-07 13:28:38 +02:00
0c44f8ccbd esp32: Using periph_module_enable instead of the shared regs. 2019-10-07 06:47:00 +00:00
807826f796 bootloader_support: Fix using shared CLK_EN and RST_EN regs for random
bootloader_random_enable() and bootloader_random_disable() functions
can be used in app.
This MR added the protection for shared CLK_EN and RST_EN registers.
2019-10-07 06:47:00 +00:00
2f38a1a362 Merge branch 'bugfix/set_url_discards_username_password' into 'master'
fixes : set_url discards username and password

Closes IDFGH-1586

See merge request espressif/esp-idf!5694
2019-10-04 13:48:55 +08:00
9fd16c6a5f fixes : set_url discards username and password 2019-10-04 10:42:43 +05:30
cf7fe34cc2 ci: fix test assignment issue, rename env tag 2019-10-03 15:00:22 +02:00
a3cbc57c19 examples/flash_encryption: use ESP32 target in example test 2019-10-03 13:42:59 +02:00
569ad7545c esp_event, mdns: fixes for CONFIG_ETH_ENABLED=n 2019-10-03 10:52:53 +02:00
6bddcdac67 bootloader: move esp32 specific code from bootloader_common
Also implements bootloader_clock_get_rated_freq_mhz for esp32s2beta.

Closes IDF-758
2019-10-03 09:38:13 +02:00
de6ea396f1 ws_client: added subprotocol configuration option to websocket client
closes https://github.com/espressif/esp-idf/issues/3893
2019-10-03 07:33:32 +02:00
c0ba9e19fc ws_client: fixed path config issue when ws server configured using host and path instead of uri
closes https://github.com/espressif/esp-idf/issues/3892
2019-10-03 07:33:32 +02:00
adee25d90e ws_client: fixed transport config option when server address configured as host, port, transport rather then uri
closes https://github.com/espressif/esp-idf/issues/3891
2019-10-03 07:33:32 +02:00
ea955e1efc ws_client: fix ping-pong mechanism to use mask, support reception of zero-payload PONG and sending non-zero-payload PING
Closes https://github.com/espressif/esp-idf/issues/3890
Closes https://github.com/espressif/esp-idf/issues/4138
2019-10-03 07:32:17 +02:00
e4fda32726 Merge branch 'feature/uart_isr_iram' into 'master'
uart: add option to put ISR in IRAM

Closes IDF-893

See merge request espressif/esp-idf!5905
2019-10-03 01:21:56 +08:00
8da3c6d65b Merge branch 'bugfix/deprecated_sdkconfig_defaults' into 'master'
Handle deprecated values in sdkconfig.defaults

Closes IDF-1005

See merge request espressif/esp-idf!6203
2019-10-03 01:12:01 +08:00
5830f529d8 Merge branch 'master' into feature/esp32s2beta_merge 2019-10-02 19:01:39 +02:00
f94711c316 uart: add option to put ISR in IRAM 2019-10-02 16:43:02 +00:00
15857d9cbb Handle deprecated values in sdkconfig.defaults
The issue was pointed out also in
https://github.com/espressif/esp-idf/issues/4092
2019-10-02 16:29:25 +00:00
784a0d21ea update mqtt weekend test to use mbedtls asymetric buffer 2019-10-02 16:22:50 +02:00
adbf0bff53 Merge branch 'bugfix/ext_flash_load_partitions' into 'master'
spi_flash: ensure partition table loaded when esp_partition_register_external is called

Closes IDFGH-1916

See merge request espressif/esp-idf!6244
2019-10-02 18:50:54 +08:00
c2a9f0643e Merge branch 'bugfix/changes_in_idf_to_make_compatible_with_wolfssl' into 'master'
Bugfix/changes in idf to make compatible with wolfssl

See merge request espressif/esp-idf!6149
2019-10-02 14:05:10 +08:00
3f9b0d8c2a nghttp: move config.h to private_include dirs 2019-10-01 11:19:44 +00:00
737ab91742 newlib: Fix UT - test time adjustment happens linearly 2019-10-01 03:09:22 +08:00
391d7ee4c7 examples/ext_flash_fatfs: print out data partitions, add CI test 2019-09-30 17:53:14 +02:00
ccde8c7d2f spi_flash: load partition table before adding an external partition
esp_partition_register_external did not call load_partitions, so if
it was called before any call to esp_partition_find, then the main
partition table would never be loaded. Introduce new function,
ensure_partitions_loaded, and call it both from esp_partition_find and
esp_partition_register_external.

Closes https://github.com/espressif/esp-idf/issues/4116
2019-09-30 16:11:09 +02:00
1c1108d47b Merge branch 'bugfix/coex_fix_some_bugs' into 'master'
fix some coexist bugs

See merge request espressif/esp-idf!5200
2019-09-30 16:59:19 +08:00
b494ffaf5b ci: fix test build system when using template repository from a
different branch then master
2019-09-30 09:54:24 +02:00
d735f1d58d ci: fix weekend test confguration update per latest refactoring of
grouping tests
2019-09-30 09:51:41 +02:00
87fb025b97 Merge branch 'NimBLE/add_mbedTLS_option_for_tinycrypt' into 'master'
NimBLE: Add optional mbedTLS support to NimBLE

See merge request espressif/esp-idf!6097
2019-09-30 14:15:43 +08:00
fe08f435dc NimBLE: Add optional mbedTLS support to NimBLE
- Additional menuconfig option to select either mbedTLS or Tinycrypt from NimBLE.
- Addition of `CMAC` and `ECP_RESTARTABLE` to mbedTLS menuconfig option and
  `esp_config.h`.
- Changes NimBLE `component.mk` and `CMakeLists.txt` to support mbedTLS option.
- Minor changes to `app_mesh.c` application.
2019-09-30 14:15:43 +08:00
63019689d6 Coexist: fix some coexist bugs
1. Fix high beacon and broadcast packets loss ratio of WiFi to make
   MDNS test pass.
2. Improve stability of WiFi performance with a little
   sacrifice of throughput.
3. Improve BLE advertising and connection performance with dynamic
   priority. It sacrifices a little WiFi throughput, but achieves balance
   between WiFi and Bluetooth.
2019-09-30 11:49:16 +08:00
ef5c3f3564 Merge branch 'bugfix/fix_wifi_stop_leads_to_watchdog' into 'master'
esp_wifi: fix the bug that WiFi stop leads task watchdog

Closes WIFI-526 and WIFI-746

See merge request espressif/esp-idf!5830
2019-09-30 10:53:37 +08:00
53d57dd736 esp_wifi:
1. Fixed smartconfig ipc crash
2. Fix the WiFi init sequence bug
3. Fixed the bug that WiFi stop leads to task watchdog
2019-09-29 10:44:49 +08:00
9ef656fafd Merge branch 'bugfix/ble_mesh_client_invalid_addr_access' into 'master'
ble_mesh: fix client model invalid address access

See merge request espressif/esp-idf!6212
2019-09-29 10:23:51 +08:00
f44b4911ad Merge branch 'bugfix/fix_cache_disable_access_psram' into 'master'
esp_wifi: Put g_promis_buf to IRAM

See merge request espressif/esp-idf!6142
2019-09-29 10:08:17 +08:00
4dac7c7df8 Merge branch 'refactor/shrink_bootloader_bin_size' into 'master'
bootloader: shrink bin size

Closes IDF-1043

See merge request espressif/esp-idf!6194
2019-09-28 01:40:46 +08:00
c496268b10 Merge branch 'feature/load_elf' into 'master'
Support ELF files loadable with gdb

Closes IDF-335

See merge request espressif/esp-idf!5779
2019-09-27 19:36:25 +08:00
cbab3c34f8 bootloader: shrink bin size
1. write a bootloader version of "getting chip revision" function.
2. reduce wordy log.
2019-09-27 10:58:30 +08:00
9c4b4aec62 Merge branch 'feature/enable_ethernet_unit_test' into 'master'
enable Ethernet unit test

Closes IDF-959

See merge request espressif/esp-idf!6144
2019-09-26 21:28:13 +08:00
lly
7a450222f5 ble_mesh: fix client model invalid address access 2019-09-26 20:11:22 +08:00
5cde268cce docs: fix minor parameter description inconsistency for idf_component_set_property 2019-09-26 10:51:04 +02:00
e381cec35a freertos: remove semicolon in xTaskNotifyGive 2019-09-26 15:27:48 +08:00
6fde73cdc4 esp_wifi: Put g_promis_buf to IRAM 2019-09-26 02:26:10 +00:00
3e18681555 app_trace: Adds general support esp32s2beta chip 2019-09-26 01:03:06 +08:00
c5c41eab46 soc: Add interrupt numbers mapping for esp32s2beta
Closes: IDF-999
2019-09-26 00:22:36 +08:00
3d8798f745 Merge branch 'bugfix/kconfig_corrections' into 'master'
Fix Kconfig issues discovered by upstream Kconfiglib

See merge request espressif/esp-idf!6183
2019-09-25 16:26:18 +08:00
ac0d2dc534 Merge branch 'bugfix/ble_mesh_queue_task_init_check' into 'master'
ble_mesh: check ble mesh queue and task init status

See merge request espressif/esp-idf!6192
2019-09-25 15:08:05 +08:00
7c8c9cbb68 ethernet: enable unit test 2019-09-25 11:58:16 +08:00
976423c8c3 Merge branch 'feature/bluedroid_min_encr_key_size' into 'master'
BT/Bluedroid : Add support to set min encryption key size requirement

See merge request espressif/esp-idf!6122
2019-09-25 11:56:48 +08:00
2c3648b619 BT/Bluedroid : Add support to set min encryption key requirement
- Modifies `smp_utils.c` to add check on encryption key size received from
  peer.
- Modifies `esp_ble_gap_set_security_param` API to add minimum encryption key
  size requirement.
2019-09-25 11:56:47 +08:00
a2b65e1649 Merge branch 'bugfix/btdm_loop_in_feature_req_ext' into 'master'
components/bt: Fix sending LMP_features_req_ext in a loop

See merge request espressif/esp-idf!6022
2019-09-25 11:51:53 +08:00
lly
0792a2fde8 ble_mesh: check ble mesh queue and task init status 2019-09-25 11:09:40 +08:00
e5e31c5d01 mdns: use constant size of AAAA answer in mdns packets instead of deriving from lwip struct size, since the struct could contain also zones
closes WIFI-771
2019-09-24 12:12:58 +02:00
b040386c5b Merge branch 'feature/idf_tools_installer_v2.1' into 'master'
IDF tools installer: extra fixes, bump version to v2.1

See merge request espressif/esp-idf!6176
2019-09-24 17:19:04 +08:00
847537c862 docs: update get-started to use Tools Installer v2.1 2019-09-24 10:39:27 +02:00
5a916ce126 Support ELF files loadable with gdb 2019-09-24 07:19:50 +00:00
38ccf5f28b cmake: Fix cmakelists to add required private components
Fixes: https://github.com/espressif/esp-idf/issues/3710
2019-09-24 10:46:26 +05:30
f7cae13d2a tools: bump windows tools installer version to v2.1
Includes the following changes:

80ad09f23 allow changing the installation path
(a fix for https://github.com/espressif/esp-idf/issues/3806)

9c5284e7b verify that IDF_PATH doesn't contain spaces

aaf3dcbda fix quoting of IDF_TOOLS_PATH
(a fix for https://github.com/espressif/esp-idf/issues/3807)

e6e179294 tools: update idf_exe to 1.0.1
76dc87e9a idf_exe: fix NULL pointer passed to WriteFile
(fixes for https://github.com/espressif/esp-idf/issues/3740)
2019-09-24 06:00:31 +02:00
c780abc6a6 tools: update Windows installer build script
Replace the outdated build_installer.sh with the steps used in CI,
call build_installer.sh from CI. Move the signing part into the new
script, sign_installer.sh.
2019-09-24 06:00:31 +02:00
3bbb758bc5 idf_tools.py: add workaround for PermissionError in os.rename
Closes https://github.com/espressif/esp-idf/issues/4063
Closes https://github.com/espressif/esp-idf/issues/3819
2019-09-24 06:00:31 +02:00
81ffc87371 idf_tools.py: pass --work-tree instead of -C option to git
Older versions of git do not support -C option. Use --work-tree option
instead.

Closes https://github.com/espressif/esp-idf/issues/4018
Merges https://github.com/espressif/esp-idf/pull/4019
2019-09-24 06:00:31 +02:00
6a9288bc73 Merge branch 'bugfix/IDF-306' into 'master'
Installer: support for WD exclusions (IDF Tools)

See merge request espressif/esp-idf!6062
2019-09-24 11:59:00 +08:00
833822c10b Fix Kconfig issues discovered by upstream Kconfiglib 2019-09-23 16:10:57 +02:00
a3a130d0d6 Installer: support for WD exclusions (IDF Tools)
JIRA IDF-306
2019-09-23 14:42:32 +02:00
380801c6fa docs: update windows msys2 installer notes to unzip all-in-one toolchain to path without spaces 2019-09-23 12:00:00 +02:00
c4da959fa7 soc: Fix setting timeout for RTC_WDT 2019-09-23 14:57:26 +08:00
8df2b046f4 Merge branch 'bugfix/gh_action_on_pull_request' into 'master'
gh_action: fix error on new pull request

Closes IDFGH-1824

See merge request espressif/esp-idf!6116
2019-09-23 12:54:21 +08:00
363e41eadf Merge branch 'bugfix/make_cxx_depend_on_pthread' into 'master'
cxx: force pthread to appear later in link line

See merge request espressif/esp-idf!6124
2019-09-23 12:42:50 +08:00
b6a8dfba44 examples/nimble: fix setting DUT class in example tests
Pass dut_class=ESP32DUT in the examples where this was missing.
2019-09-23 06:26:49 +02:00
f991f812ab unit test: Fix bug in idf.py ut-apply-config- targets
Bug was this sequence:

1. old sdkconfig file has some settings (maybe target=esp32s2beta)
2. idf.py builds a new sdkconfig.defaults file with full new settings
3. new settings includes something that conflicts with the old settings (for example,
CONFIG_IDF_TARGET=esp32 and BT_ENABLE=y)
4. confgen tries to apply the new "defaults" to the existing sdkconfig, settings end up a mix of both due to the conflicts

Fix is to generate the sdkconfig file directly.
2019-09-23 06:26:49 +02:00
b0bd4d0f14 Merge branch 'fix/esp_flash_adapter_in_iram' into 'master'
esp_flash: put adapter to legacy functions into IRAM to be back-compatible

See merge request espressif/esp-idf!6135
2019-09-20 18:21:58 +08:00
a68b400b9a Merge branch 'refactor/update_spi_ethernet_api' into 'master'
ethernet: update spi ethernet api

See merge request espressif/esp-idf!6123
2019-09-20 18:15:25 +08:00
f7d80ed9da Hello world example: Print ESP32-S2 Beta for esp32s2beta target 2019-09-20 17:07:34 +10:00
db84ba868c efuse: Add support for esp32s2beta
Updated:
- CI test_esp32s2beta_efuse_table_on_host.
- efuse_table_gen.py.
- esp_efuse_table.csv file and generated headers files.
- splitted esp32 and esp32s2beta parts.
- unit tests and api efuse.
2019-09-20 16:59:46 +10:00
6257828348 app_update: Add support esp32s2beta 2019-09-20 16:57:33 +10:00
6f102125b4 bootloader: Add support esp32s2beta 2019-09-20 16:57:33 +10:00
d06b2a3598 esp32s2beta: Add support esp32s2beta
Added reading MAC address
Closes: IDF-756
2019-09-20 16:57:27 +10:00
a469c179f8 Merge branch 'bugfix/fix_the_for_smartconfig_send_broadcast_to_phone' into 'master'
fix the bug that ESP32 sends broadcast to phone after smartconfig is done

Closes WIFI-1115

See merge request espressif/esp-idf!6071
2019-09-20 14:01:59 +08:00
a25841bc9a newlib: Fix test_posix_timers_clock for esp32s2beta 2019-09-20 14:01:22 +08:00
4411701c2c Merge branch 'doc/add_Chinese_translation_for_documents_in_storage_folder_2st_batch' into 'master'
Add Chinese translation for the 2nd batch of the files in storage folder in api-reference

See merge request espressif/esp-idf!5737
2019-09-20 12:32:55 +08:00
32adfdc307 Add Chinese translation for the 2nd batch of the files in storage folder in api-reference.
1. The translation should be first reviewed by technical reviewers;
2. and then by language reviewers.

For the translation for the first batch of files, please see !MR5620 and !MR5613
2019-09-20 12:32:55 +08:00
b5f74522a3 doc: Add page explaining ESP32-S2 status 2019-09-20 10:28:46 +10:00
adfc06a530 Merge branch 'master' into feature/esp32s2beta_merge 2019-09-20 10:28:37 +10:00
96474f33a6 Merge branch 'bugfix/gnu_make_windows_paths' into 'master'
build: In GNU Make, use "cygpath -m" to avoid backslashes

Closes IDF-961

See merge request espressif/esp-idf!6132
2019-09-19 19:34:01 +08:00
01a8e566b8 Merge branch 'bugfix/cmake_case_insenstive_filesystem' into 'master'
cmake: Account for IDF_PATH case mismatches on case insensitive filesystems

See merge request espressif/esp-idf!6137
2019-09-19 19:33:36 +08:00
83680bd96b Merge branch 'feature/esp32s2beta' into feature/esp32s2beta_merge 2019-09-19 21:08:20 +10:00
546ac64a9e ethernet: update spi-ethernet api 2019-09-19 09:41:21 +00:00
dc5b8a9a8f ethernet: test apps can build with ethernet disabled 2019-09-19 09:41:21 +00:00
d78831ab2b Merge branch 'bugfix/remove_v40_deprecations' into 'master'
Remove features deprecated before ESP-IDF V4.0

Closes IDF-507

See merge request espressif/esp-idf!5841
2019-09-19 16:07:01 +08:00
77eb32b710 make psram workaround depend on chip revison
Since ESP32 revision 3, the PSRAM workaround is not needed.
2019-09-19 13:20:34 +08:00
b48daafb0c Merge branch 'fix/nimble_example_test' into 'master'
nimble_example_test: Fix BlePeripehral Test thread stuck issue

See merge request espressif/esp-idf!5510
2019-09-19 11:11:08 +08:00
bcaaaa1632 Merge branch 'feature/esp32s2beta_wdt' into 'feature/esp32s2beta'
esp32s2beta: Re-enable interrupt WDT, RTC_WDT, Task wdt

See merge request espressif/esp-idf!5786
2019-09-19 11:10:58 +08:00
36ba5bc5ee cmake: Account for IDF_PATH case mismatches on case insensitive filesystems 2019-09-19 12:30:52 +10:00
87995c5f75 bugfix:btmd fix the problem that fixed_queue_enqueue may give the wrong semaphore if list_append fail to calloc a new node 2019-09-18 17:43:35 +08:00
5051bb906a Merge branch 'bugfix/ble_mesh_get_timer_remaining_time' into 'master'
ble_mesh: fix ble mesh get timer remaining time

See merge request espressif/esp-idf!6060
2019-09-18 16:38:24 +08:00
d559ccb23c Merge branch 'bugfix/IDF-997' into 'master'
docs: Update eclipse setup doc with the IDF Eclipse Plugins github link

Closes IDF-997 and IDF-194

See merge request espressif/esp-idf!6105
2019-09-18 15:15:21 +08:00
70d771eb2d esp_flash: put adapter to legacy functions into IRAM to be back-compatible 2019-09-18 15:07:47 +08:00
321af28ff2 Merge branch 'doc/Add_Chinese_translation_to_sdmmc_in_storage_folder' into 'master'
Add Chinese transaltion to sdmmc in storage folder

See merge request espressif/esp-idf!6029
2019-09-18 13:28:16 +08:00
412a766a2a Add Chinese transaltion to sdmmc in storage folder
The translation should be first reviewed by technical reviewer Xiao Xufeng and then by Carrie

The translation for the other documents in storage folder can be found in MR5613, MR5620 and MR5737.
2019-09-18 13:28:16 +08:00
e1496449b1 esp_wifi: Update wifi lib 2019-09-18 10:16:35 +10:00
58577db086 gh_action: fix error on new pull request
1. Disable the broken pull request sync temporarily
2. move python lint from travis to github action
2019-09-17 21:59:31 +08:00
d8ab12e2da Merge branch 'bugfix/fix_http_request' into 'master'
Fix http_request example

See merge request espressif/esp-idf!6064
2019-09-17 21:29:16 +08:00
f1b5c326f4 cxx: force pthread to appear later in link line 2019-09-17 20:08:12 +08:00
3cd687b35a Merge branch 'fix/esp_flash_coredump' into 'master'
esp_flash: fix coredump issues

See merge request espressif/esp-idf!5917
2019-09-17 17:40:30 +08:00
bf68285689 Merge branch 'feature/compile_option_O0' into 'master'
build_system: add new compiler optimization levels

See merge request espressif/esp-idf!5686
2019-09-17 16:54:55 +08:00
d10107a50e idf_test: Disable tests for Wi-Fi auto reconnect
Disable one, remove IDF tag from the other
2019-09-17 18:41:09 +10:00
44c89c0e9f Merge branch 'bugfix/idf_py_dependent_tasks' into 'master'
idf.py: Fix execution order for dependent tasks

Closes IDF-901 and IDFGH-1710

See merge request espressif/esp-idf!5859
2019-09-17 16:26:25 +08:00
41a1eebbd4 docs: Update eclipse setup doc with the IDF Eclipse Plugins github link 2019-09-17 13:42:32 +05:30
4df759ac81 Merge branch 'feature/add_chip_revision_to_image_header' into 'master'
app_image: add chip revision in image header

Closes IDF-811 and IDFGH-1778

See merge request espressif/esp-idf!5926
2019-09-17 12:52:00 +08:00
d371605315 build: In GNU Make, use "cygpath -m" to avoid backslashes
Fixes issues where backslashes in KCONFIG paths are later expanded as shell escape sequences.
2019-09-17 13:47:05 +10:00
7c85a2a987 Merge branch 'doc/add_Chinese_translation_for_touch_pad_in_api-reference' into 'master'
Add Chinese translation for touch_pad.rst in api-reference

See merge request espressif/esp-idf!5445
2019-09-17 11:22:30 +08:00
fb0bf099a3 Add Chinese translation for touch_pad.rst in api-reference:
1. Add link to en/api-reference/peripherals/touch_pad.rst
2. Add Chinese translation to zh_CN/api-reference/peripherals/touch_pad.rst
2019-09-17 11:22:30 +08:00
96b96ae244 Merge branch 'bugfix/cmake_component_names' into 'master'
CMake: Component name related bugfixes

See merge request espressif/esp-idf!5921
2019-09-17 11:16:25 +08:00
d019f479d5 Merge branch 'feature/idf_py_version' into 'master'
idf.py: Add --version option

Closes IDF-702

See merge request espressif/esp-idf!5800
2019-09-17 08:31:59 +08:00
1faa69a01b idf.py: Fix execution order for dependent tasks
Closes https://github.com/espressif/esp-idf/issues/3948

Add tests for idf.py
Move param check from cmake to idf_py test
Refactor task processing for idf.py
Add code comments
Fix an issue when options for dependent tasks are ignored
Add check for dupes in command list
2019-09-16 22:48:57 +08:00
2d03af30ab Add idf.py --version option
Update docs on how to check IDF version
Show dependencies check information only in verbose mode
2019-09-16 20:32:26 +08:00
dd248ffc32 Add chip revision into image header
Check chip id and chip revision before boot app image

Closes https://github.com/espressif/esp-idf/issues/4000
2019-09-16 18:13:53 +08:00
lly
9ee5e3d8ed ble_mesh: fix duplicate memory free during receiving status message 2019-09-16 17:34:08 +08:00
lly
e1b04df763 ble_mesh: make unicast elem lookup O(1) 2019-09-16 14:55:41 +08:00
lly
5b53debb6f ble_mesh: use adv report flow control for ble mesh 2019-09-16 14:43:30 +08:00
6b7da96d5b ulp: Add header for common ULP definitions
Fixes problems with duplicate error codes in the two chip-specific ulp headers
2019-09-16 16:18:53 +10:00
438d513a95 Merge branch 'master' into feature/esp32s2beta_merge 2019-09-16 16:18:48 +10:00
a70c3367e8 Merge branch 'bugfix/fix_yaml_load_warnings' into 'master'
python: Fix yaml.load warnings

See merge request espressif/esp-idf!5404
2019-09-16 09:44:10 +08:00
0efdeb202e Merge branch 'fix/elf_sha256_esp32s2beta' into 'feature/esp32s2beta'
build_system/app_update: fix the linker script and re-enable elf-sha256

See merge request espressif/esp-idf!5972
2019-09-16 08:25:20 +08:00
66b0b8951f Merge branch 'bugfix/esp32s2beta_docs' into 'feature/esp32s2beta'
esp32s2beta: Fix docs build

See merge request espressif/esp-idf!6096
2019-09-16 08:19:59 +08:00
9d30b04f68 coredump: use esp_flash api in coredump
Also put esp_flash functions into noflash region, when
ESP32_PANIC_HANDLER_IRAM and coredump are enabled. The option disables
the re-enabling of the CPU-cache when it's disabled during coredump.
This requires all the coredump functions including the flash API to be
in the D/IRAM.
2019-09-14 17:02:08 +08:00
511820820e esp_flash: fix the coredump issue
During coredump, dangerous-area-checking should be disabled, and cache
disabling should be replaced by a safer version.

Dangerous-area-checking used to be in the HAL, but it seems to be more
fit to os functions. So it's moved to os functions. Interfaces are
provided to switch between os functions during coredump.
2019-09-14 17:01:36 +08:00
6139864a4c esp_flash: fix coredump for legacy spi flash API
When legacy mode is used, the coredump still fails during linking
because "esp_flash_init_default_chip", "esp_flash_app_init" and
"esp_flash_default_chip " are not compiled and linked.

Instead of using ``if`` macros in callers, these functions are protected
by ``if`` macros in the header, and also not compiled in the sources.
"esp_flash_default_chip" variable is compiled with safe default value.
2019-09-14 16:56:31 +08:00
c57dfbc0b8 python: Fix yaml.load warnings
Since pyyaml 5.1 yaml.load without specifing loader is deprecated
Details: https://msg.pyyaml.org/load

To keep code compatible with older versions of pyyaml
and keep best perfomance CLoader with fallback to Loader is used.
2019-09-13 10:29:38 +00:00
e255c48de7 Fix http_request example
1) WEB_PATH should path relative to document root of web server.
2) HTTP request should contain "Host" header of format "host:port".
3) Port number in the example should be configurable.
2019-09-13 09:21:29 +00:00
8ee727fb9a nimble_test: Fix nimble example test CI 2019-09-13 08:18:43 +00:00
c27fd32fbe Merge branch 'feat/esp_flash_support_encrypt' into 'master'
esp_flash: add support for encrypted read and write

See merge request espressif/esp-idf!6008
2019-09-13 14:52:01 +08:00
d6b39a8f9d Merge branch 'bugfix/use_local_kconfiglib' into 'master'
Use kconfiglib from $IDF_PATH/tools/kconfig_new

See merge request espressif/esp-idf!6078
2019-09-13 14:46:42 +08:00
ff5018d3ee Merge branch 'doc/add-extension-sphinx.ext.todo' into 'master'
Add extension "sphinx.ext.todo" for todo notes in rst files. Add info how to use it.

See merge request espressif/esp-idf!6084
2019-09-13 14:46:09 +08:00
146a0f8e14 Merge branch 'feature/idf_py_depeprecation_parameter_flag' into 'master'
idf.py: Add support for deprecation of command/options

See merge request espressif/esp-idf!5433
2019-09-13 14:30:27 +08:00
9d19f4fc8e driver docs: Fix some doxygen warnings 2019-09-13 14:30:06 +10:00
49698e15f3 docs: Don't build any docs for the esp32s2beta component
Re-enable failing CI for warnings in the docs build

This config hack can be removed once IDF-523 is implemented.
2019-09-13 14:08:21 +10:00
14730f049e Merge branch 'bugfix/do_not_use_absolute_paths_to_other_components' into 'master'
app_update: use build system api to get partition_table dir

See merge request espressif/esp-idf!6039
2019-09-13 07:51:22 +08:00
b0c893a20c Wi-Fi: remove wifi_fast_scan_threshold_t which is not suitable in name 2019-09-13 09:44:07 +10:00
95ec36afd4 dport: remove clock_en and reset bitname which is not suitable 2019-09-13 09:44:07 +10:00
33a186f630 soc: Remove deprecated LEDC struct register names (bit_num, div_num)
Deprecated since ESP-IDF V3.0
2019-09-13 09:44:07 +10:00
6195c69701 soc: remove deprecated io_mux PIN_PULLxxx_yyy macros
Deprecated before ESP-IDF V1.0!
2019-09-13 09:44:07 +10:00
c41b2b0415 mbedtls: Remove esp_aes_encrypt/decrypt
Deprecated in ESP-IDF V3.1

Anyone reading this should please include mbedtls/aes.h and use mbedTLS APIs,
not the ESP-specific APIs.
2019-09-13 09:44:07 +10:00
b022527da7 heap: Remove esp_heap_alloc_caps header
Deprecated in ESP-IDF V3.1
2019-09-13 09:44:07 +10:00
fb748bae7f fatfs: Remove esp_vfs_fat_unregister()
Deprecated in ESP-IDF V2.0
2019-09-13 09:44:07 +10:00
ba54a552c1 esp_wifi: Remove WIFI_PS_MODEM constant
Deprecated in ESP-IDF V3.1
2019-09-13 09:44:07 +10:00
d63181b5e9 esp_wifi: Remove deprecated auto connect API
Deprecated in ESP-IDF V3.1
2019-09-13 09:44:07 +10:00
2e067f5b57 ringbuf: Remove deprecated RingbufferType_t
Deprecated in ESP-IDF V3.1
2019-09-13 09:44:07 +10:00
dc7d6d592e wdt: Remove deprecated esp_task_wdt_feed() function
Deprecated in ESP-IDF V3.1
2019-09-13 09:44:07 +10:00
480bd0360f esp32/esp_common: Remove deprecated esp_efuse_read_mac() function
Deprecated since ESP-IDF V2.0
2019-09-13 09:44:07 +10:00
bdeaf138c4 esp32/esp_common: Remove deprecated system_* APIs
Mostly deprecated before ESP-IDF V1.0 & V2.0
2019-09-13 09:44:07 +10:00
a9a29b1f1e esp_adc_cal: Remove deprecated ADC calibration functions
Deprecated since ESP-IDF V3.1
2019-09-13 09:44:07 +10:00
fbc1d1c319 esp32: Remove deprecated system_deep_sleep function
Deprecated since ESP-IDF V3.0
2019-09-13 09:44:07 +10:00
88548a9b4d esp32/test: fix usage of deprecated fields 2019-09-13 09:44:07 +10:00
11c1da5276 soc/pm: Remove deprecated use of rtc_cpu_freq_t enum
Removes deprecated ways of setting/getting CPU freq, light sleep freqs.

Deprecated since ESP-IDF V3.2
2019-09-13 09:44:07 +10:00
f406d020d8 driver: Remove features deprecated pre-IDF V4.0 2019-09-13 09:44:07 +10:00
f44d99b509 app_update: Remove deprecated "make erase_ota" target
Deprecated in v3.2
2019-09-13 09:44:07 +10:00
62c06047da bootloader_support: Remove deprecated partition load/verify functions
Deprecated since v3.2
2019-09-13 09:44:07 +10:00
596ccc6793 bluetooth: Remove bt.h header (deprecated in v3.1-dev) 2019-09-13 09:44:07 +10:00
e0f7fbc5fa bootloader: expand the space for iram_loader_seg
Fixed ld issue: overflowed iram_loader_seg
2019-09-13 00:39:37 +08:00
d1173c8f09 esp32s2beta: task_wdt
Closes: IDF-753
2019-09-13 00:06:22 +08:00
2644ddc3e1 esp32s2beta: Using rtc_wdt API 2019-09-13 00:06:22 +08:00
d3637cd06b rtc_wdt: re-enable RTC_WDT 2019-09-13 00:03:52 +08:00
3ffa33c84d esp32s2beta: re-enable int_wdt 2019-09-13 00:03:52 +08:00
d7d5aebdee soc: fix memory map for esp32 and esp32s2beta 2019-09-12 16:17:52 +08:00
15356857b5 Merge branch 'bugfix/transport' into 'master'
fix(transport): Fix a bug of the connection whether be active or not.

See merge request espressif/esp-idf!5604
2019-09-12 13:55:48 +08:00
3ca07b3e70 fix(transport): Fix a bug of the connection whether be active or not by timeout option when the select function return a correct value. 2019-09-12 13:55:47 +08:00
7cdc7e193d Merge branch 'docs/wifi_update_concurrent_mode_info' into 'master'
docs: wifi: wifi_guide update for disconnection warning in case of invalid...

See merge request espressif/esp-idf!5861
2019-09-12 13:45:45 +08:00
d740769916 docs: wifi: wifi_guide update for disconnection warning in case of invalid initiation in WIFI_MODE_APSTA.
Added warning to expect momentary disconnection of exSTA if channel of exAP is different than that of softAP and a prescribed solution.
2019-09-12 13:45:44 +08:00
850893b25b Merge branch 'bugfix/uart_select_free' into 'master'
VFS: Fix memory access after free() in UART select()

Closes IDFGH-1820

See merge request espressif/esp-idf!6045
2019-09-12 13:38:43 +08:00
9f145ff165 Merge branch 'feature/btdm_add_hf_nvrc_command' into 'master'
BT HFP: Add AT+NREC=0 command for disabling AG echo cancellation.

See merge request espressif/esp-idf!5974
2019-09-12 13:25:18 +08:00
d1e5d9c8c9 Merge branch 'bugfix/btdm_config_msbc' into 'master'
components/bt: Disable Wide Bond Speech when SCO data path is PCM

See merge request espressif/esp-idf!5978
2019-09-12 13:23:41 +08:00
d008c47dac esp_flash: add support for encrypted read and write
Using legacy implementation.
2019-09-12 12:41:50 +08:00
f0dc5f8dc2 Apply suggestion to docs/en/contribute/documenting-code.rst 2019-09-12 12:36:13 +08:00
1dcdc56a7f Use kconfiglib from $IDF_PATH/tools/kconfig_new 2019-09-11 14:30:31 +02:00
df27a50866 app_update: re-enable elf-sha256 2019-09-11 18:29:11 +08:00
7c491d2335 Allow the extension for adding todo notes to rst files. Add information on how to use this extension to the contribution section. 2019-09-11 17:15:00 +08:00
32f216441f Merge branch 'bugfix/esp32s2beta_cache_interrupt_panic' into 'feature/esp32s2beta'
cache_err_int: Add cache error interrupt panic

See merge request espressif/esp-idf!5559
2019-09-11 12:48:12 +08:00
7e81e3da89 Merge branch 'bugfix/esp32s2beta_cache_spiflash_test' into 'feature/esp32s2beta'
util-test: The cache and spi_flash tests passed

See merge request espressif/esp-idf!5363
2019-09-11 12:47:18 +08:00
15e0ee528e Merge branch 'bugfix/cmake_sdkconfig_path' into 'master'
fix bug for cmake build system

See merge request espressif/esp-idf!6052
2019-09-11 11:39:49 +08:00
1b31191753 fix bug for cmake build system
The path of ${SDKCONFIG_H} does not exist, should be replaced by ${sdkconfig_header}.
2019-09-11 11:00:19 +08:00
d885df946a fix the bug that ESP32 sends broadcast to phone after smartconfig done 2019-09-11 10:42:16 +08:00
213f8cf7ef ci: forbid esp32s2beta tests from being built in make 2019-09-11 09:31:47 +08:00
2402d0952d Merge branch 'bugfix/flash_encryption_disable_plaintext' into 'master'
flash encryption: Always disable plaintext reflashes in Release mode

See merge request espressif/esp-idf!6051
2019-09-11 07:59:33 +08:00
d48aac96a1 util-test: Fix the conflict target of esp32_test_logo between esp32s2beta and esp32 2019-09-10 20:49:36 +08:00
3b606aa21f Merge branch 'bugfix/wpa2_ent_eap_reauth_fail' into 'master'
wpa_supplicant: Fix EAP Re-authentication issue

See merge request espressif/esp-idf!5588
2019-09-10 20:14:22 +08:00
lly
5d1f84f69c ble_mesh: fix ble mesh get timer remaining time 2019-09-10 16:58:41 +08:00
49ca39d35c Merge branch 'bugfix/multi_heap_printf' into 'master'
heap: Fix printf usage in heap poisoning

See merge request espressif/esp-idf!6046
2019-09-10 13:26:27 +08:00
88c0e012df Merge branch 'doc/build_system_requirements' into 'master'
docs: Explain build system REQUIRES & PRIV_REQUIRES in more detail

See merge request espressif/esp-idf!5965
2019-09-10 13:10:03 +08:00
7cc225c85b VFS: Fix memory access after free() in UART select()
Closes https://github.com/espressif/esp-idf/issues/4030
2019-09-10 04:59:03 +00:00
b6455e1153 Merge branch 'bugfix/ble_mesh_related_bugfixes' into 'master'
Bugfix/ble mesh related bugfixes

See merge request espressif/esp-idf!5975
2019-09-10 09:46:26 +08:00
c052a38e2a bootloader: Link RTC clock functions to the iram_loader section
As flash encryption & secure boot needs these functions after the app is loaded.

Fixes regression introduced in fb72a6f629
2019-09-10 11:28:17 +10:00
5c5770dddb docs: Small cleanup of flash encryption docs 2019-09-10 11:28:11 +10:00
b547aef2a0 flash encryption: Ensure flash encryption can't be disabled if Secure Boot is on 2019-09-10 11:28:11 +10:00
b0710f9d0b docs: Explain build system REQUIRES & PRIV_REQUIRES in more detail
Including an example.
2019-09-10 09:48:46 +10:00
e52c0d0da2 heap: Fix printf usage in heap poisoning
This commit fixes the bug where printf() is used in
verify_allocated_region() when ets_printf() should be used.
2019-09-09 21:56:39 +08:00
56231a998b Merge branch 'doc/review_api-ref_periph-sdspi_host' into 'master'
Review the file api-reference/peripherals/sdspi_host.rst

See merge request espressif/esp-idf!5732
2019-09-09 19:59:56 +08:00
95552d4d13 Review the file api-reference/peripherals/sdspi_host.rst 2019-09-09 19:14:39 +08:00
lly
1a8f37b383 ble_mesh: update ble mesh examples sdkconfig.defaults 2019-09-09 17:15:16 +08:00
lly
d48c89b56a ble_mesh: fix ble mesh btc may caused memory leak 2019-09-09 17:15:16 +08:00
lly
8a41132507 ble_mesh: fix publication period timestamp initialization 2019-09-09 17:15:16 +08:00
lly
715cf7d578 ble_mesh: remove useless mesh_opcode 2019-09-09 17:15:16 +08:00
lly
8580a3211b ble_mesh: fix bt_mesh_net_resend() caused compiling error 2019-09-09 17:15:16 +08:00
lly
8a7ab6cb3d ble_mesh: fix adhering to the configured Friend Queue size 2019-09-09 17:15:16 +08:00
lly
29de1a9acf ble_mesh: remove useless code bt_mesh_trans_resend() 2019-09-09 17:15:16 +08:00
lly
386a5d649c ble_mesh: lpn remove msg from cache on rejection 2019-09-09 17:15:16 +08:00
lly
9a672caa7e ble_mesh: introduce a helper for send callback function 2019-09-09 17:15:16 +08:00
lly
05128c98ec ble_mesh: fix heartbeat sending on friendship established/lost 2019-09-09 17:15:16 +08:00
lly
9f80c24b74 ble_mesh: fix checking for active heartbeat publication 2019-09-09 17:15:16 +08:00
lly
b9c43cec19 ble_mesh: fix starting iv update when not on primary subnet 2019-09-09 17:15:16 +08:00
lly
3f6968e31b ble_mesh: fix canceling publication retransmit timer 2019-09-09 17:15:16 +08:00
lly
10bffaebf1 ble_mesh: fix resending segments on correct bearer 2019-09-09 17:15:16 +08:00
lly
e152df43f1 ble_mesh: fix not sending all segments through the Friend Queue 2019-09-09 17:15:16 +08:00
lly
f449cb7843 ble_mesh: fix canceled buffer memory leak 2019-09-09 17:15:16 +08:00
lly
2afc9b820d ble_mesh: remove some useless copy during ecdh calculation 2019-09-09 17:15:16 +08:00
lly
75b0f50aa0 ble_mesh: move heartbeat sending to transport layer 2019-09-09 17:15:16 +08:00
lly
edf0b9ee02 ble_mesh: fix provisioning send error handling 2019-09-09 17:15:16 +08:00
lly
1c06494293 ble_mesh: fix rejecting invalid remote public key 2019-09-09 17:15:16 +08:00
lly
3e47f3ec87 ble_mesh: add error checks for scan start/stop 2019-09-09 17:15:16 +08:00
lly
3e489d40ff ble_mesh: rename reset_link() to reset_adv_link() 2019-09-09 17:15:16 +08:00
lly
f2b0b00020 ble_mesh: fix public key mismatch error handling 2019-09-09 17:15:16 +08:00
lly
630e911958 ble_mesh: update protocol error timeout from zephyr 2019-09-09 17:15:16 +08:00
lly
716db01a7f ble_mesh: fix segmented message RPL behavior 2019-09-09 17:15:16 +08:00
lly
5f5f5cf305 ble_mesh: clear LPN sent_req on failure 2019-09-09 17:15:16 +08:00
lly
4bf4094e40 ble_mesh: update proxy sar operation from zephyr 2019-09-09 17:15:16 +08:00
lly
9c98a8d645 ble_mesh: fix postponing storage deadline indefinitely 2019-09-09 17:15:16 +08:00
lly
c44a3f1209 ble_mesh: fix RPL storage timeout handling 2019-09-09 17:15:16 +08:00
lly
9a7efd30ef ble_mesh: fix output MIC with additional data 2019-09-09 17:15:16 +08:00
lly
f3e7656c06 ble_mesh: remove non-standard relay opearation 2019-09-09 17:15:16 +08:00
lly
0c82a32524 ble_mesh: fix finding netkey/appkey/devkey for tx/rx msg 2019-09-09 17:15:16 +08:00
lly
b8cb769ce3 ble_mesh: fix failed to set device role caused mem leak 2019-09-09 17:15:16 +08:00
lly
624bf7e3a0 ble_mesh: ble mesh btc miscellaneous modifications 2019-09-09 17:15:16 +08:00
lly
1f96bf5906 ble_mesh: fix MESH/NODE/FRND/FN/BV-11-C related bug 2019-09-09 17:15:16 +08:00
lly
f25640e9e5 ble_mesh: fix MESH/NODE/CFG/GPXY/BV-02-C & MESH/NODE/CFG/NID/BV-02-C related bug 2019-09-09 17:15:16 +08:00
lly
014a35c1df ble_mesh: fix MESH/NODE/CFG/HBS/BV-01-C related bug 2019-09-09 17:15:16 +08:00
lly
b3bc60183d ble_mesh: rename ble mesh client model variables and functions 2019-09-09 17:15:16 +08:00
lly
5f6259a625 ble_mesh: reorganize ble mesh model files 2019-09-09 17:15:16 +08:00
lly
a788e7cd3d ble_mesh: sync zephyr v1.14.0 bt_hex() 2019-09-09 17:15:16 +08:00
lly
c648054e08 ble_mesh: fix provisioner prov auth bug 2019-09-09 17:15:16 +08:00
d5a9b1a240 util-test: The cache and spi_flash tests passed 2019-09-09 16:59:29 +08:00
fd15fd3da4 util-test: Copy the test in the esp32 directory to the esp32s2beta directory 2019-09-09 16:57:28 +08:00
eb4c0ef8b2 cache_err_int: Modify cache error interrupt panic code format 2019-09-09 14:35:42 +08:00
ce6c86672b cache_err_int: Add cache error interrupt panic 2019-09-09 14:35:42 +08:00
35147119f1 Merge branch 'feature/support_ut_esp32s2beta' into 'feature/esp32s2beta'
ci: support build and run UT for esp32s2beta

See merge request espressif/esp-idf!5702
2019-09-09 08:34:16 +08:00
2ca954ae0f Merge branch 'feature/esp32s2beta_memory_reorg' into 'feature/esp32s2beta'
Feature/esp32s2beta memory reorganize

See merge request espressif/esp-idf!6026
2019-09-08 23:03:31 +08:00
f2eadc9378 Merge branch 'bugfix/mbedtls_client_only_config_build_failure' into 'master'
Fix build issues in coap library with mbedtls client only config

See merge request espressif/esp-idf!5955
2019-09-06 21:12:04 +08:00
a2f86200c7 Merge branch 'doc/add_Chinese_translation_to_README_files_in_components_and_tools_folders_1st_batch' into 'master'
Add Chinese translation for storage documents linked to README files in components and tools folders (1st batch)

See merge request espressif/esp-idf!5620
2019-09-06 20:18:20 +08:00
bea507378e Add Chinese translation for README files in components and tools folders, including:
1. components/nvs_flash/nvs_partition_generator/README_CN.rst
2. components/wear_levelling/README_CN.rst
3. tools/mass_mfg/docs/README_CN.rst
2019-09-06 20:18:19 +08:00
67960020cd Merge branch 'doc/add_Chinese_translation_to_rst_files_in_storage_folder_1st_batch' into 'master'
Doc/add chinese translation to rst files in storage folder 1st batch

See merge request espressif/esp-idf!5613
2019-09-06 19:12:37 +08:00
758abe6e01 Add Chinese translation for the rst documents in storage folder, including:
1. docs/zh_CN/api-reference/storage/fatfs.rst
2. docs/zh_CN/api-reference/storage/index.rst
3. docs/zh_CN/api-reference/storage/sdmmc.rst
4. docs/zh_CN/api-reference/storage/spiffs.rst
5. docs/zh_CN/api-reference/storage/wear-levelling.rst
2019-09-06 19:12:36 +08:00
430b737760 Fix libcoap building with various MbedTLS compile time options
components/coap/port/coap_mbedtls.c:

Add in additional compile time check wrappers for different MbedTLS
configurations.

components/coap/CMakeLists.txt:
components/coap/component.mk:
components/coap/port/coap_notls.c:
components/coap/port/include/coap_config_posix.h:

Add in the ability to compile and run if MbedTLS does not have any TLS
mode enabled.

examples/protocols/coap_client/main/coap_client_example_main.c:

Inform user that MbedTLS Client Mode is required for DTLS if not enabled,
and coaps:// has been requested.
[Lower libcoap library will still error and report this condition]

examples/protocols/coap_server/main/coap_server_example_main.c:

Inform user that MbedTLS Server Mode is required for DTLS if not enabled.
[Lower libcoap library will still error and report this condition]

Closes https://github.com/espressif/esp-idf/issues/3961
Closes https://github.com/espressif/esp-idf/issues/3971
Closes https://github.com/espressif/esp-idf/pull/3977
2019-09-06 16:13:52 +05:30
4fdaeb6b6e cmake: Add new compiler optimization levels definitions
Rename and add multiple kconfig compiler options. New compiler options
COMPILER_OPTIMIZATION_PERF and COMPILER_OPTIMIZATION_NONE have been added.
Optimize "Debug" and "Release" options to "Default" and "Size" respectively.
This commit also does the following:

- The COMPILER_OPTIMIZATION_PERF option introduced multiple bug.
This commit fixes those bugs.
- build.yml also updated to test for the new optimization options.
2019-09-06 17:37:19 +08:00
5df2e6b19c wpa_supplicant: Fix EAP Re-authentication issue
EAP reauth frames are dropped at various stages due to current
implementation of WPA2 ENT states and EAP SM init/deinit logic.
Route EAPOL frames based on EAP pkt type and maintain EAP SM
to facilitate EAP re-authentication process.

The full fix for the change includes a fix from wifi library
(commit - 36f99df849214fbf9b0d15e58554632a568e05aa).
2019-09-06 14:59:05 +05:30
4ef4b29c74 Reorganize the memory to maximize contiguous DRAM
1. Fix bug for variable sdkconfig_header in CMakeLists.txt
2. Modify the load address of bootloader
3. Modify the load address of application program
2019-09-06 16:18:42 +08:00
8b3e8f10cb Merge branch 'fix/add_parentheses_to_spi_swap_data_tx' into 'master'
spi: Put argument of macro SPI_SWAP_DATA_TX in parentheses

See merge request espressif/esp-idf!5982
2019-09-06 16:04:56 +08:00
cd68972e32 Merge branch 'bugfix/ethernet_rx_length_check' into 'master'
ethernet: bugfix and optimize

Closes IDF-864, IDF-865, IDF-866, and IDF-867

See merge request espressif/esp-idf!5944
2019-09-06 15:39:20 +08:00
a16280236f Merge branch 'feature/coredump_data_in_elf_format_cpu_cache_enable' into 'master'
espcoredump: Enable cpu cache in panic handler for core dump

See merge request espressif/esp-idf!5496
2019-09-06 15:37:56 +08:00
7ff9538c48 espcoredump: fix issue with spi_flash access
spi_flash has been updated and its functions work from flash by default instead of IRAM that cause issue
add Kconfig value into espcoredump to enable spi_flash legacy mode (CONFIG_SPI_FLASH_USE_LEGACY_IMPL) when core dump is selected
fix spi_flash issues to work correctly with legacy mode when CONFIG_SPI_FLASH_USE_LEGACY_IMPL is used
2019-09-06 15:37:55 +08:00
fc62542e18 Merge branch 'bugfix/fix_the_bug_for_WPA_WPA2_PSK_connection_fail' into 'master'
fix the bug for WPA_WPA2_PSK connection fail

See merge request espressif/esp-idf!6009
2019-09-06 14:34:47 +08:00
84daad38c3 Merge branch 'bugfix/btdm_a2dp_sink_media_suspend_cmd_unack' into 'master'
bugfix/btdm_a2dp_sink_media_suspend_cmd_unack

See merge request espressif/esp-idf!5937
2019-09-06 14:29:45 +08:00
35874254b9 Merge branch 'bugfix/rom_miniz_notes' into 'master'
rom: Add warnings for miniz functions that won't work due to missing malloc

Closes IDFGH-1814

See merge request espressif/esp-idf!6012
2019-09-06 14:18:57 +08:00
cb2e1f93d1 components/bt: Fix sending LMP_features_req_ext in a loop
Remove xtensa/xtruntime.h at the same time
2019-09-06 12:00:54 +08:00
92d162175a Merge branch 'bugfix/http_header_parser_resolution' into 'master'
esp_http_server : Bugfix in parsing of empty header values

Closes IDFGH-1539

See merge request espressif/esp-idf!5663
2019-09-06 11:02:37 +08:00
a6cc964a26 esp_http_server : Bugfix in parsing of empty header values
This MR is intended to fix incorrect parsing of HTTP requests when empty header values are present.

The issue is was due to asymmetric behavior of `http_parser` library, which in case of:

    non-empty header values : invokes callbacks with the pointer to the start of a value
    empty header values : invokes callbacks with pointer to the start of next header or section

Since HTTP server relies on this pointer (along with length of the value) to locate the end of a value, and replace the line terminators (CRLFs) with null characters, the second case needed to be handled correctly.

Closes IDFGH-1539

Closes https://github.com/espressif/esp-idf/issues/3803
2019-09-06 11:02:36 +08:00
f23b3fdbe4 rom: Add warnings for miniz functions that won't work due to missing malloc
Closes https://github.com/espressif/esp-idf/issues/4024
2019-09-06 11:01:34 +10:00
45c72dd372 fix the bug that STA fails to connect WPA_WPA2_PSK Apple AP 2019-09-05 20:20:42 +08:00
c057c141eb Fix bug for reserved memory regions
1. Release 16KB memory of reserved regions to heap
2. Modify the dram_seg address of bootloader to 0x3FFF8000, size is 16K
2019-09-05 19:00:14 +08:00
bd29202520 1. Fix backtrace is incomplete
2. Optimization code style
2019-09-05 18:40:33 +08:00
653d8b5bdd update cache and spiram related files and bug fixes
1. remove speed dependency of SPIRAM
2. support wrap mode of cache, flash and SPIRAM
3. fix some bugs on cache modes support
2019-09-05 14:14:49 +08:00
8d85792acc Merge branch 'bugfix/btdm_crash_in_sket_ist' into 'master'
Fix 2 bugs in r_ld_fm_sket_isr

See merge request espressif/esp-idf!5946
2019-09-05 12:01:35 +08:00
07bd6d49ca Merge branch 'bugfix/btdm_config_but_task_size_fail' into 'master'
Use CONFIG value instead of hard-coded value.

See merge request espressif/esp-idf!5961
2019-09-05 11:26:50 +08:00
ab7c7b7ac3 Merge branch 'doc/add_chinese_translation_for_timer_in_api-reference_folder' into 'master'
add chinese translation for timer.rst in api-reference folder

See merge request espressif/esp-idf!5692
2019-09-04 17:09:13 +08:00
eb2ddbfe48 add chinese translation for timer.rst in api-reference folder 2019-09-04 17:09:13 +08:00
f9aaaa6c3a esp_wifi: synchronize WiFi header file with WiFi library 2019-09-04 10:53:25 +10:00
852ccd127a ci: switch to use cmake as build system for example test 2019-09-04 10:53:25 +10:00
63329b169b ci: limit example test to ESP32s 2019-09-04 10:53:25 +10:00
7f270d4299 newlib: Fix UT - test time adjustment happens linearly
Obtaining accurate and adjustable time occurs closer to each other.
2019-09-04 10:53:25 +10:00
76a3a5fb48 ci: disable unavailable tests for esp32s2beta 2019-09-04 10:53:25 +10:00
e44df658d5 spiram: Fix ESP32 SPIRAM when using SPIRAM_TYPE_AUTO, disable "AUTO" for ESP32-S2
Requirement to enable for ESP32-S2 captured in IDF-912.
2019-09-04 10:53:25 +10:00
0c88ef3232 driver: Fix UART interrupt handle read bug 2019-09-04 10:53:25 +10:00
eb158e9a22 ci: disable UTs for esp32s2beta without runners 2019-09-04 10:53:25 +10:00
c22965b22c freertos: Restore uxPortCompareSet() in ESP32 unicore & make compatible code for ESP32S2Beta
This macro is used in places which expect it to work even without dual core being on.

Still make "mux" functions in FreeRTOS into no-ops as the mux is not needed.
2019-09-04 10:53:25 +10:00
e9901d15a1 rtc: fix memory map 2019-09-04 10:53:25 +10:00
eac802357a ci: support build esp32s2beta UT 2019-09-04 10:53:25 +10:00
3a9ae4acc6 ci: pass target from build stage to unit test 2019-09-04 10:53:25 +10:00
4558824150 IDFDUT: seperate into different classes
The DUT should be created as the correct sub classes. This can be done
in the config file (UT_xxx_x.yml) Filter
2019-09-04 10:53:25 +10:00
1f580e3f0e idf.py add support for esp32s2beta 2019-09-04 10:53:25 +10:00
053f419ced stdatomic: support gcc built-in functions for esp32s2beta 2019-09-04 10:53:25 +10:00
55859f59cb support for esp32s2beta 2019-09-04 10:53:25 +10:00
43135dc348 spi: convenient LL macro 2019-09-04 10:53:25 +10:00
9f1c8f0c76 spi_flash: support esp32s2beta 2019-09-04 10:53:25 +10:00
b76d5d74d9 mbedtls: support esp32s2beta 2019-09-04 10:53:25 +10:00
3b39e60f97 driver: remove unused drivers for esp32s2beta 2019-09-04 10:53:25 +10:00
05739798c3 soc: s2beta support 2019-09-04 10:53:25 +10:00
9baa7826be fix unit test and examples for s2beta 2019-09-04 10:53:25 +10:00
5b6bd40bc6 idf_py: support new command set-target
Instead of using -DIDF_TARGET, this command is more intuitive:

1. Can limit the choice of targets
2. Easy to understand this is a destructive command
3. Easy to remember, and have an entry in the --help menu
2019-09-04 10:53:25 +10:00
a4ee680bbf app_update: use build system api to get partition_table dir 2019-09-03 19:47:53 +08:00
3bb42d0736 spi: Put argument of macro SPI_SWAP_DATA_TX/RX in parentheses
Close https://github.com/espressif/esp-idf/pull/3996
2019-09-03 15:21:23 +08:00
b08dcefafb Merge branch 'bugfix/idf_py_ccache_options' into 'master'
idf.py: Add way to enable CCache by default, remove dead CCache options code

Closes IDF-948

See merge request espressif/esp-idf!5971
2019-09-03 12:56:20 +08:00
c5747027b4 Merge branch 'bugfix/cmake_bootloader_python' into 'master'
build system: Pass Python executable through to bootloader build

See merge request espressif/esp-idf!5956
2019-09-03 12:55:58 +08:00
14ffd355e6 ethernet: bugfix and optimize
1. check frame length before pass to stack
2. replace semaphore with task notify
2019-09-03 11:01:16 +08:00
019067b6ac components/bt: Rename some macros 2019-09-03 10:23:05 +08:00
f8212988c4 Use CONFIG value instead of hard-coded value.
Add intermediate defines.

Use CONFIG_BTU_TASK_STACK_SIZE instead of hard-coded value in Bluedroid component
2019-09-03 10:21:45 +08:00
5b9576e282 Merge branch 'bugfix/hide_component_internal_targets' into 'master'
cmake: hide component internal targets

See merge request espressif/esp-idf!5866
2019-09-03 09:24:34 +08:00
002104b262 Merge branch 'bugfix/err_code_collision' into 'master'
Fix error code collisions and re-enable CI check

Closes IDF-832

See merge request espressif/esp-idf!5923
2019-09-03 08:30:40 +08:00
9a7ab28cc2 idf.py: Add environment variable to enable ccache by default 2019-09-03 10:25:28 +10:00
9b070666e1 Merge branch 'bugfix/btdm_linking_fail_with_toolchain_8.2.0' into 'master'
components/bt: Fix linking fail with toolchain 8.2.0

See merge request espressif/esp-idf!5782
2019-09-02 22:21:59 +08:00
81cf2cf130 Merge branch 'bugfix/btdm_remove_unused_macro_in_menuconfig' into 'master'
components/bt: Remove unused macro in menuconfig

See merge request espressif/esp-idf!5950
2019-09-02 22:20:49 +08:00
185f47ab7e components/bt: Disable Wide Bond Speech when SCO data path is PCM 2019-09-02 20:50:09 +08:00
nif
75578300f1 BT HFP: Add AT+NREC=0 command for disabling AG echo cancellation. 2019-09-02 09:28:38 +00:00
df5db07edf Merge branch 'doc/add_ble_mesh_example_description' into 'master'
ble_mesh: add ble mesh example description

See merge request espressif/esp-idf!5711
2019-09-02 14:28:58 +08:00
a4a95e6c67 Merge branch 'bugfix/coex_bb_reset_lock' into 'master'
fix bug that wifi start/stop may cause crash

See merge request espressif/esp-idf!5968
2019-09-02 14:25:50 +08:00
6fa20a4d33 Merge branch 'test/use_correct_config_for_nvs_compatible_case' into 'master'
test: fix nvs compatible case error:

See merge request espressif/esp-idf!5890
2019-09-02 12:40:38 +08:00
a2e0c6b1ab Merge branch 'test/fix_mesh_test_case' into 'master'
test: fix test case MESH_EST_2403

See merge request espressif/esp-idf!5813
2019-09-02 12:38:38 +08:00
lly
c310d40299 ble_mesh: add ble mesh example description 2019-09-02 12:15:03 +08:00
9134643807 idf.py: Remove dead code around ccache base dir 2019-09-02 10:56:43 +10:00
f4763a3e1a Merge branch 'bugfix/idf_py_fix_property_dict' into 'master'
idf.py: Fix PropertyDict implementation

See merge request espressif/esp-idf!5775
2019-09-02 08:51:13 +08:00
eca4b855d9 Merge branch 'bugfix/secure_boot_ecdsa_config' into 'master'
secure boot: Ensure mbedTLS enables ECDSA if signatures are checked in app

See merge request espressif/esp-idf!5960
2019-09-02 08:31:18 +08:00
6581f81a11 Merge branch 'doc/ncurses5_dependency_pr3236' into 'master'
docs: Explain ncurses5 for other distributions as well

Closes IDFGH-884

See merge request espressif/esp-idf!5966
2019-09-02 08:25:22 +08:00
3af18c0422 fix some coex bugs
1. fix the bug that bb reset lock unhandled may cause assert in vPortCPUReleaseMutexIntsDisabledInternal
2. fix wifi mac reset may blocking then cause wdt timeout
3. fix bug wifi mac reset before coex init
2019-08-30 22:06:29 +08:00
a7e8d87d3e Merge branch 'bugfix/error_out_on_uninit_git' into 'master'
cmake: fix build failure when git repo is initialized but no first commit

Closes IDFGH-1676

See merge request espressif/esp-idf!5914
2019-08-30 16:27:28 +08:00
d1f2ea7cdf Merge branch 'bugfix/make_build_issue_if_build_dir_symlink' into 'master'
ldgen: fix build issue on make when build dir is a symlink

Closes IDFGH-1340

See merge request espressif/esp-idf!5915
2019-08-30 16:27:21 +08:00
879778a677 Merge branch 'refactor/move_smartconfig_ack_to_wifi' into 'master'
smartconfig: move smartconfig_ack to esp_wifi conponent

Closes IDFGH-1758

See merge request espressif/esp-idf!5881
2019-08-30 16:27:11 +08:00
ff5cb217fe Merge branch 'bugfix/unicore_config_prevent_ipc_code' into 'master'
ipc: prevent code getting pulled in for unicore configuration

See merge request espressif/esp-idf!5795
2019-08-30 16:26:47 +08:00
70b1ff7bc6 docs: Explain ncurses5 for other distributions as well
Ran into ncurses5 dependency issue on popOS

stub section for covering libncurses 5 workarounds on distributions that need it, when only Arch was
mentioned it was too easy to skip over the section

Merges https://github.com/espressif/esp-idf/pull/3236
2019-08-30 18:16:30 +10:00
6123f78897 mbedtls: Make ECDHE-PSK config item depend on ECDHE 2019-08-30 15:01:53 +10:00
abd6d40796 secure boot: Ensure mbedTLS enables ECDSA if signatures are checked in app
and all ECDSA to be disabled if secure boot is not enabled

Previously if ECDSA disabled in config then secure_boot_signatures.c would
fail to build (whether or not secure boot was enabled).

To avoid breaking apps that might be using the signature scheme with custom OTA
without enabling secure boot signatures in config, this change just disables
this functionality if unavailable in mbedTLS config.

Possible fix for root cause of https://github.com/espressif/esp-idf/pull/3703
2019-08-30 14:56:11 +10:00
d12503eb55 components/bt: Remove unused macro in menuconfig 2019-08-29 19:58:05 +08:00
d6982e0401 Merge branch 'feature/enable_cfg_for_tls_asymmetric_content_length' into 'master'
mbedtls: keep asymmetric tls buffer length option enabled by default

See merge request espressif/esp-idf!5678
2019-08-29 19:45:06 +08:00
e3e21b7954 build system: Pass Python executable through to bootloader build
Fixes failures if the PYTHON cache setting doesn't match the
default of "python" on the PATH.
2019-08-29 18:53:18 +10:00
612db28b6f Fix error code collision and CI check 2019-08-29 08:14:08 +00:00
b6fe44b520 Fix 2 bugs in r_ld_fm_sket_isr
1. When remove two elt in the 1st isr, then assert in then 2nd one.
2. When timestamp of first elt is equal to sket_clkn, then crash.
2019-08-29 11:27:57 +08:00
e7033716db LwIP: Make IP_PKTINFO support configurable
LwIP has support for IP_PKTINFO, but it cannot be activated as it is
not configurable. This fix adds in the ability to configure it.

Merges https://github.com/espressif/esp-idf/pull/3983
2019-08-29 11:20:56 +08:00
a36cc962a3 smartconfig: move smartconfig_ack to esp_wifi conponent 2019-08-29 10:39:30 +08:00
1c7aff809d Merge branch 'bugfix/test_esp_efuse_table_on_host' into 'master'
CI: Fix path in the Efuse table test

See merge request espressif/esp-idf!5924
2019-08-29 10:15:47 +08:00
31d818326d Merge branch 'docs/update_system_examples_readmes' into 'master'
examples: Update system examples README

See merge request espressif/esp-idf!5755
2019-08-29 10:12:19 +08:00
ec3510854f Merge branch 'bugfix/pass_esp_platform_to_early_expansion' into 'master'
CMake: Pass ESP_PLATFORM to early expansion

See merge request espressif/esp-idf!5932
2019-08-29 10:09:51 +08:00
1cd54d34f6 Merge branch 'bugfix/bootloader_factory_reset_with_wake_up_from_deep_sleep' into 'master'
bootloader: Blocking the Factory reset during wake up from deep sleep

Closes IDFGH-1536

See merge request espressif/esp-idf!5673
2019-08-29 09:35:08 +08:00
06898325e6 Merge branch 'bugfix/bootloader_efuse_build_regression' into 'master'
bootloader: add definition of esp_clk_apb_freq

Closes IDFGH-1734

See merge request espressif/esp-idf!5913
2019-08-29 08:35:48 +08:00
17dc04183a Merge branch 'bugfix/fix_the_bug_for_softap_set_authmode' into 'master'
wifi: fix the bug for softAP set authmode

Closes WIFI-449

See merge request espressif/esp-idf!5823
2019-08-28 19:05:00 +08:00
de682a13b1 examples: Update system examples README
The following commit updates the first half of the the system
example README files. Some other changes were also made:

* Updated base_mac_address example
* Moved contents in GCOV README to GCOV docs
* Some *main.c file names updated
* Updated example README template
2019-08-28 16:19:40 +08:00
ebe53416ad ipc: prevent code getting pulled in for unicore configuration 2019-08-28 12:47:08 +05:30
30bc5953f2 bugfix that call of esp_a2d_media_ctrl(ESP_A2D_MEDIA_CTRL_SUSPEND) will not get an ACK from callback on A2DP sink
# Conflicts:
#	components/bootloader/subproject/components/micro-ecc/micro-ecc
2019-08-28 15:16:10 +08:00
fe9edc3ebe docs: fix typo of build component aliases name 2019-08-28 14:52:09 +08:00
5582878f8e mbedtls: keep asymmetric tls buffer length option enabled by default 2019-08-28 06:23:33 +00:00
ba2ec73d59 cmake: fix build failure when git repo is initialized but no first commit
Closes https://github.com/espressif/esp-idf/issues/3920
2019-08-28 09:53:37 +08:00
31cdd38744 Make sure ESP_PLATFORM is defined when processing CMake files. 2019-08-28 09:44:06 +08:00
61442cdcbb Merge branch 'bugfix/tools_shebang' into 'master'
Tools: Fix shebang for MacOs

See merge request espressif/esp-idf!5906
2019-08-28 09:07:52 +08:00
a21ca2270a Merge branch 'feature/deep_sleep_fast_wake' into 'master'
bootloader: Reduce the time spent in image validation when waking from deep sleep

See merge request espressif/esp-idf!5140
2019-08-28 08:54:28 +08:00
826568a120 cmake: introduce BUILD_COMPONENT_ALIASES
This commit makes it so that BUILD_COMPONENT holds only the component,
and a new property BUILD_COMPONENT_ALIASES hold the full name of the
component.

This also removes erroneous check for duplicate components, as this can
never happen:

(1) if two components have the same name but different prefixes,
the internal names are still unique between them

(2)if two components happen to have the same name and same prefix, the
latter would override the former
2019-08-27 20:40:29 +08:00
039f9d0a20 Merge branch 'bugfix/btdm_fix_ble_data_loss_and_send_same_pkt_twice' into 'master'
Component/bt: fix some BLE bugs

See merge request espressif/esp-idf!5896
2019-08-27 18:48:45 +08:00
fb72a6f629 bootloader: add definition of esp_clk_apb_freq
Commit 8cd04c80 has added a dependency of efuse component on
esp_clk_apb_freq, however there was no definition of this function in
the bootloader context.

Reported at https://esp32.com/viewtopic.php?f=13&t=12035
2019-08-27 12:01:11 +02:00
474f6d9d98 Fix path in the Efuse table test 2019-08-27 11:58:45 +02:00
88320062b8 cmake: make build components available before immediately
Previous implementation only builds list of components included in the
build during component registration.

Since the build components is known as the requirements expansion is
ongoing, update the list here instead.
2019-08-27 15:24:31 +08:00
c50a67567a ldgen: fix build issue on make when build dir is a symlink
Fixes an issue where build fails if the build directory is a symlink.
The issue is caused by the rule target and the final executable dependency
not matching.

Closes https://github.com/espressif/esp-idf/issues/3626
2019-08-27 13:53:31 +08:00
5643f627cd Merge branch 'feature/bat_scripts_to_ps1' into 'master'
Create Powershell versions of "install.bat" and "export.bat"

See merge request espressif/esp-idf!5816
2019-08-27 13:45:50 +08:00
79dd142ab8 tools: add install.ps1, export.ps1
Closes IDF-855
2019-08-27 13:45:50 +08:00
1b24b3663e fatfs: handle FR_INT_ERR as "filesystem corrupted"
FatFS library can sometimes return FR_INT_ERR if the filesystem is
corrupted. Propagate the error from VFS functions instead of
asserting, so that the application can handle the error. Also handle
the error during initialization of FatFS and format the filesystem if
it occurs.
2019-08-27 00:11:45 +02:00
f2a4131c24 Tools: Fix shebang for MacOs
Revert a change introduced in d296aad2a9
for intended compatibility with BSD which breaks the build on MacOs:
"clang: error: unknown argument: '-n'" for "echo".

BSD users will have to use some workaround since MacOs is a supported
OS of IDF and BSD is not.
2019-08-26 13:53:52 +02:00
aa087667df Merge branch 'bugfix/add_openocd_arm' into 'master'
Tools: Add OpenOCD for the ARM architecture

See merge request espressif/esp-idf!5878
2019-08-26 19:36:22 +08:00
8d8d4a57e1 Merge branch 'bugfix/reset_periph_modules' into 'master'
driver: Add a reset before enabling if a module is off

Closes IDF-188

See merge request espressif/esp-idf!4843
2019-08-26 16:38:23 +08:00
f002d1c6aa Component/bt: fix dome BLE bugs
- fix data loss and send same pkt twice sometimes
- fix adv data error in air sometimes
- fix adv start/stop crash sometimes
2019-08-26 14:17:46 +08:00
f68cd62abd Merge branch 'bugfix/btdm_security_vulnerability_on_encryption_key_size' into 'master'
bugfix/btdm_security_vulnerability_on_encryption_key_size

See merge request espressif/esp-idf!5868
2019-08-26 14:08:22 +08:00
7ef58dbeb0 Merge branch 'bugfix/confgen_msys_path' into 'master'
Fix sdkconfig.rename paths for confgen.py in MSYS

Closes IDFGH-1712

See merge request espressif/esp-idf!5864
2019-08-26 09:35:33 +08:00
954a23be37 test: fix nvs compatible case error:
nvs compatible test case uses new test env and app. update test config
file.
2019-08-25 20:35:49 +08:00
30953ba9c4 app_update: Fix UTs for FACTORY_RESET and APP_TEST 2019-08-23 10:21:06 +00:00
69f45c3674 bootloader: Factory reset not for deep sleep
Closes: https://github.com/espressif/esp-idf/issues/3800

Closes: IDFGH-1536
2019-08-23 10:21:06 +00:00
8db44f67d7 Merge branch 'bugfix/wps_workaround_for_Telstra_AP' into 'master'
wps: Relax the check on older config methods in case of WPS2.0

See merge request espressif/esp-idf!5781
2019-08-23 17:32:46 +08:00
a0730fec2a Performance monitor component. The component contains APIs, example and
documentation.
2019-08-23 11:20:12 +03:00
99a58e5839 Merge branch 'doc/cbor_copyright' into 'master'
docs: Add TinyCBOR copyright line

See merge request espressif/esp-idf!5880
2019-08-23 15:49:10 +08:00
ff96965a91 wifi: fix the bug for softAP set authmode 2019-08-23 14:37:08 +08:00
141a287c8a Merge branch 'bugfix/fix_code_snippet_in_http_server_docs' into 'master'
Fixed syntax error in esp_http_server.rst

See merge request espressif/esp-idf!5844
2019-08-23 14:26:03 +08:00
8e7c71a1a0 Merge branch 'bugfix/cmake_src_exclude_issue' into 'master'
cmake: fix issue with handling of EXCLUDE_SRCS

See merge request espressif/esp-idf!5869
2019-08-23 14:21:16 +08:00
f06e6d80e7 Merge branch 'feature/esp32s2beta_for_bringup' into 'feature/esp32s2beta'
rtc: update from bringup branch

See merge request espressif/esp-idf!5733
2019-08-23 14:04:45 +08:00
ba647b9710 Merge branch 'bugfix/flash_encryption_regressions' into 'master'
fix flash encryption regressions, add tests

Closes IDFGH-1538, IDFGH-1661, and IDF-770

See merge request espressif/esp-idf!5634
2019-08-23 12:37:55 +08:00
12c9d9a564 spi_flash: remove duplicate definition of spi_flash_unlock
The other (static) definition is in flash_ops.c, all references are
also in flash_ops.c.
2019-08-23 12:37:55 +08:00
2f557d1a59 Merge branch 'bugfix/openocd_ulp_install_instructions' into 'master'
docs: ulp: update for IDF Tools installation method

Closes IDF-825

See merge request espressif/esp-idf!5860
2019-08-23 09:38:47 +08:00
76b6902e96 components/bt: set the minimum encryption key size to be 7 octects for BR/EDR link for preventing KNOB attack
This patch is to address the CVE-2019-9506 vulnerability.
2019-08-23 08:26:15 +08:00
e28b6e59b6 docs: Add TinyCBOR copyright line 2019-08-23 09:20:08 +10:00
f4d03fe965 Merge branch 'feature/add_tinycbor_library' into 'master'
add tinycbor library and example

See merge request espressif/esp-idf!5794
2019-08-23 07:14:19 +08:00
8bf1ef2bfe Tools: Add OpenOCD for the ARM architecture 2019-08-22 16:51:04 +02:00
0d188c8917 Merge branch 'doc/update_ulp_install_translation' into 'bugfix/openocd_ulp_install_instructions'
update translation of ulp install instuctions

See merge request espressif/esp-idf!5862
2019-08-22 19:45:02 +08:00
8b8b2f12e4 Fix sdkconfig.rename paths for confgen.py in MSYS
Closes https://github.com/espressif/esp-idf/issues/3950
2019-08-22 11:48:19 +02:00
5a09de8245 cbor: add tinycbor library and example 2019-08-22 17:44:29 +08:00
1248f17749 cmake: fix issue with handling of EXCLUDE_SRCS 2019-08-22 13:17:44 +05:30
c9a911e4aa rtc: update from bringup branch 2019-08-22 15:03:18 +08:00
f85ba3516f Merge branch 'bugfix/fix_project_ver_issue' into 'master'
CMake: fix retrieving PROJECT_VER

See merge request espressif/esp-idf!5842
2019-08-22 10:47:06 +08:00
72ddc940e0 cmake: hide internal targets
Use imported library, which does not create additional rules, but still
allows attaching arbitraty properties instead of custom targets. This
allows the targets to not appear in the target list of IDEs such as
CLion.
2019-08-22 09:39:24 +08:00
43b29e4f4d doc: update translation of ulp install instuctions 2019-08-21 21:52:48 +08:00
0a30468945 Merge branch 'feature/wifi_use_new_event_api' into 'master'
esp_wifi/event: wifi use new event api

Closes WIFI-696

See merge request espressif/esp-idf!5454
2019-08-21 21:12:28 +08:00
5ba9be9c2e docs: ulp: update for IDF Tools installation method
binutils-esp32ulp is installed automatically by install.sh/install.bat
or the IDF Tools Installer for Windows.
2019-08-21 14:45:33 +02:00
c543aac91e bootloader: API for the fast wakeup and custom using RTC mem
Added "Reserve RTC FAST memory for custom purposes" option.
Added a boot counter.
2019-08-21 11:44:37 +00:00
abffc3b11d docs: Add a description of the fast wakeup 2019-08-21 11:44:37 +00:00
83db8d402b examples: Add the fast wakeup option for deep sleep examples
The CONFIG_BOOTLOADER_SKIP_VALIDATE_IN_DEEP_SLEEP option is enabled
by default for the following examples:
 - system/deep_sleep,
 - system/ulp,
 - system/ulp_adc.
2019-08-21 11:44:37 +00:00
43393cf4d1 bootloader: Support for skipping validation upon wake from deep sleep
This saves time when waking up from deep sleep, but potentially decreases
the security of the system.  If the application able to modify itself
(especially areas that are loaded into RAM) in flash while running
without crashing or is modifies the cached bits of information about
what was last booted from the bootloader, this could cause security
issues if the user does a "deep sleep reset" since the full validation
is skipped.

Signed-off-by: Tim Nordell <tim.nordell@nimbelink.com>
2019-08-21 11:44:37 +00:00
82984f0539 bootloader: Do not obfuscate RAM if we are not doing image validation
No need to take this step if we are not doing image validation.  The
obfuscation only buys us a tiny bit of "security" anyways since the
main parts of flash are memory mapped, too.  This saves a little bit of
wake-up time when waking up from deep sleep when the
BOOTLOADER_SKIP_VALIDATE_IN_DEEP_SLEEP option is set.

Signed-off-by: Tim Nordell <tim.nordell@nimbelink.com>
2019-08-21 11:44:37 +00:00
1e32fa2cf7 bootloader: Remove extraneous newlines from some debug statements
ESP_LOGD(...) provides its own new lines so remove these from these
debug strings.

Signed-off-by: Tim Nordell <tim.nordell@nimbelink.com>
2019-08-21 11:44:37 +00:00
d9c02bc36c Merge branch 'nimble/misc_menuconfig_options' into 'master'
NimBLE: Add misc menuconfig options

See merge request espressif/esp-idf!5843
2019-08-21 19:28:47 +08:00
393eb1700d NimBLE: Add misc menuconfig options
- Add option to configure stack size of NimBLE host task, update NimBLE
  submodule for the same.
- Change max concurrent connections supported to 9 inline with controller.
2019-08-21 19:28:47 +08:00
14608cc0fb Merge branch 'Bugfix/nonblocking_udp_is_zero' into 'master'
fix bug for nonblocking udp is zero

Closes WIFI-756

See merge request espressif/esp-idf!5792
2019-08-21 16:44:11 +08:00
3aef62527a Merge branch 'update/cjson_v1_7_12' into 'master'
Update cJSON to v1.7.12

See merge request espressif/esp-idf!5776
2019-08-21 16:40:35 +08:00
fe376f9f04 Merge branch 'bugfix_kconfig_deps_missing' into 'master'
kconfig: Add -MP option so .d files include empty targets

See merge request espressif/esp-idf!5820
2019-08-21 16:19:59 +08:00
5a3bad6119 Merge branch 'feature/freebsd_build_system' into 'master'
build systems: Changes to work on FreeBSD

Closes IDFGH-1657

See merge request espressif/esp-idf!5821
2019-08-21 16:18:47 +08:00
319d44b1a6 Merge branch 'bugfix/esp_timer_null_checks' into 'master'
esp_timer: Add parameter NULL checks to public API

See merge request espressif/esp-idf!5804
2019-08-21 16:17:15 +08:00
38d61f83db Merge branch 'feature/esp32s2beta_update' into 'feature/esp32s2beta'
esp32s2beta: Merge master into esp32s2beta branch

See merge request espressif/esp-idf!5724
2019-08-21 15:20:28 +08:00
b7e73025fe Fixed syntax error in esp_http_server.rst
Changed the "const char[] name" into "const char name[]", so now the code doesn't produce the "expected identifier or '(' before '[' token" error.

Closes https://github.com/espressif/esp-idf/pull/3940
2019-08-21 12:31:46 +05:30
4690152eca cmake: make default version 1 2019-08-21 12:46:38 +08:00
3eecd43b31 cmake: fix issue with checking build process args 2019-08-21 12:20:46 +08:00
36920b4062 fix bug for nonblocking udp is zero 2019-08-21 11:25:17 +08:00
a1a2f33459 esptool_py: add missing phony build targets for CMake
Adds targets erase_flash and monitor for users not using idf.py.
Closes https://github.com/espressif/esp-idf/issues/2420.
2019-08-21 10:01:00 +08:00
80f1c13fd7 esp_wifi: update WiFi library to support esp32s2beta 2019-08-21 10:45:07 +10:00
58418c790a idf.py: Add support for deprecation of command/options 2019-08-20 16:10:25 +02:00
02c7c3885e Merge branch 'bugfix/openocd_ulp_install_instructions' into 'master'
docs: jtag-debugging: update for IDF Tools installation method

Closes IDF-824

See merge request espressif/esp-idf!5803
2019-08-20 21:34:45 +08:00
7237e6fab7 docs: jtag-debugging: update translation 2019-08-20 14:49:48 +02:00
209fdc1e05 docs: jtag-debugging: update for IDF Tools installation method
- rely on OPENOCD_SCRIPTS variable in all cases, remove -s flags
- replace installation section with a reference to the Getting Started
  guides
- add Windows-specific commands in a few cases
2019-08-20 14:49:48 +02:00
636c6a9a30 Merge branch 'feature/ulp_macro_updates' into 'master'
ulp: updates for ULP macros (PRs from Github)

Closes IDFGH-1492

See merge request espressif/esp-idf!5801
2019-08-20 20:40:09 +08:00
19a1af88a5 wps: Relax the check on older config methods in case of WPS2.0
Some APs incorrectly advertize newer WPS2.0 config method bits
without setting bits for the corresponding older methods. This
results in failures during 8-way handshake. Add a workaround to
relax this check so that WPS handshake can proceed.
2019-08-20 09:58:41 +00:00
003a9872b7 esp_wifi: wifi support new event mechanism
1. WiFi support new event mechanism
2. Update examples to use new event mechanism
2019-08-20 09:39:51 +00:00
5944f575cf Merge branch 'bugfix/newlib_time_test' into 'master'
newlib: Fix UT - test time adjustment happens linearly

See merge request espressif/esp-idf!5712
2019-08-20 16:24:30 +08:00
9d8c21d8fb Merge branch 'feature/esp32s2beta_rtc_vddsdio_get_config' into 'feature/esp32s2beta'
soc: Update rtc_vddsdio_get_config for esp32s2beta

See merge request espressif/esp-idf!5759
2019-08-20 13:14:07 +08:00
60eec0e969 Merge branch 'bugfix/set_mconf_idf_build_dir' into 'master'
cmake: set build dir for mconf-idf

See merge request espressif/esp-idf!5819
2019-08-20 13:10:36 +08:00
60d46f9795 Merge branch 'feat/idf_py_set_target' into 'master'
idf_py: support new command set-target

See merge request espressif/esp-idf!5785
2019-08-20 12:30:50 +08:00
0a0bb09585 Merge 'master' into feature/esp32s2beta_update 2019-08-20 13:55:23 +10:00
691b81ec25 Merge branch 'doc/bootloader_zh_CN' into 'master'
zh_CN translation of bootloader document

See merge request espressif/esp-idf!4746
2019-08-20 05:14:17 +08:00
23aef7d8d8 Merge branch 'cleanup/make_supp_headers_private' into 'master'
wpa_supplicant: Make internally used crypto headers private

Closes IDF-476

See merge request espressif/esp-idf!5666
2019-08-19 17:11:34 +08:00
d296aad2a9 build systems: Changes to work on FreeBSD
Merges https://github.com/espressif/esp-idf/pull/2029
2019-08-19 15:33:55 +10:00
450a29e8ba Merge branch 'feature/cmake_check_mconf_version' into 'master'
cmake: check mconf-idf binary version

Closes IDF-835

See merge request espressif/esp-idf!5799
2019-08-19 13:08:33 +08:00
701ec9dae0 Merge branch 'feat/idf_monitor_event_queue_block' into 'master'
idf_monitor: fix the bug that idf_monitor not blocked when no log printed

See merge request espressif/esp-idf!5805
2019-08-19 13:06:31 +08:00
2085845c80 freertos: Have ESP32S2-Beta target select FREERTOS_UNICORE directly 2019-08-19 15:03:48 +10:00
685c9cc867 esp32sbeta: Add timer_ll.h 2019-08-19 15:03:48 +10:00
6990a7cd54 Merge branch 'master' into feature/esp32s2beta_update 2019-08-19 15:03:43 +10:00
ab406f8429 zh_CN translation of bootloader document 2019-08-19 11:37:59 +08:00
b1d67ad344 Merge branch 'bugfix/remove_transport_strcasestr' into 'master'
tcp_transport: replace transport_strcasestr with strcasestr

Closes IDF-548

See merge request espressif/esp-idf!5802
2019-08-19 10:36:32 +08:00
74be271f62 kconfig: Add -MP option so .d files include empty targets
Prevents make-level errors when switching IDF versions, as headers may be removed.

Similar to some mentioned here:
https://github.com/espressif/esp-idf/issues/712
2019-08-19 11:42:39 +10:00
b8997eb218 Merge branch 'bugfix/confserver_temporaryfile_windows' into 'master'
confserver: Fix NamedTemporaryFile use on Windows

See merge request espressif/esp-idf!5814
2019-08-19 08:23:02 +08:00
9ec363a25d wpa_supplicant: Make internally used crypto headers private
A lot of internally used crypto headers are publicly includeable
in user projects. This leads to bug reports when these headers
are incorrectly used or the API's are not used as intended.

Move all crypto headers into private crypto src folder, also move
crypto_ops into Supplicant to remove dependecy on crypto headers.

Closes IDF-476
2019-08-17 11:48:37 +00:00
026ec388a6 idf_py: support new command set-target
Instead of using -DIDF_TARGET, this command is more intuitive:

1. Can limit the choice of targets
2. Easy to understand this is a destructive command
3. Easy to remember, and have an entry in the --help menu
2019-08-17 00:06:14 +08:00
24f91617d7 idf_monitor: fix the bug that idf_monitor not blocked when no log printed
Inspired by @no1seman, @negativekelvin and @pglen on Github. (In post oder)

Resolves https://github.com/espressif/esp-idf/issues/3884
2019-08-16 17:56:51 +08:00
38ae31ebc4 components/bt: Fix linking fail with toolchain 8.2.0 2019-08-16 09:54:18 +00:00
ded0ac352d cmake: set build dir for mconf-idf
Fixes an issue where if idf_build_process is called in a CMake
subdirectory, menuconfig looks for the mconf-idf binary in the wrong
place (in the subdirectory build dir instead of root binary dir).
2019-08-16 17:46:50 +08:00
76453ccfa5 Merge branch 'bugfix/ledc_clock_mode' into 'master'
driver: ledc: Fix clock mode selection

See merge request espressif/esp-idf!5747
2019-08-16 17:39:16 +08:00
423fb9573b confserver: Fix NamedTemporaryFile use on Windows
Can't have the file open twice, so need to close and delete after reopening.
2019-08-16 19:24:37 +10:00
2116968d78 test: fix test case MESH_EST_2403 2019-08-16 09:15:31 +00:00
727ffbe908 esp_timer: Add parameter NULL checks to public API
Return ESP_ERR_INVALID_ARG if the handle is NULL, instead of crashing.

As reported via forum https://esp32.com/viewtopic.php?f=13&t=11721&p=47926#p47926
2019-08-16 13:00:21 +10:00
74c2eb3aff Merge branch 'fix/esp_flash_set_get_wp' into 'master'
esp_flash: fix the set/get write protection functions

See merge request espressif/esp-idf!5682
2019-08-16 06:14:48 +08:00
61a1a468bb tcp_transport: replace transport_strcasestr with strcasestr
esp32-2019r1 toolchain version includes 'strcasestr', so the version
provided in tcp_transport component is no longer needed.
2019-08-15 17:51:54 +02:00
ccc95191ea ulp: Add aditional uint32_t object to ulp_insn_t
Used to get the encoded instruction from bit-field structs.

Merges https://github.com/espressif/esp-idf/pull/3759
2019-08-15 17:34:26 +02:00
28ca2d72b8 ulp: Correct misleading corrections of i2c comments
Merges https://github.com/espressif/esp-idf/pull/3580
2019-08-15 17:34:19 +02:00
68b3677daa ulp: Correct misleading i2c write mask comments
Merges https://github.com/espressif/esp-idf/pull/3580
2019-08-15 17:34:11 +02:00
88a69823cf ulp: Expand ULP macro functionality
Merges https://github.com/espressif/esp-idf/pull/3580
2019-08-15 17:34:11 +02:00
74fe282b73 cmake: check mconf-idf binary version
Print a warning if an outdated version of mconf-idf is found in
the PATH.
2019-08-15 17:25:26 +02:00
3743d47ef0 Merge branch 'bugfix/add_error_check_in_ota_ops' into 'master'
esp_https_ota: Added error checking functionalities.

See merge request espressif/esp-idf!5672
2019-08-15 21:10:00 +08:00
53e7beb95b esp_https_ota: Added error checking functionalities.
Current implimentation of esp_http_ota does not perform any error-checking in the data writing phase calls `esp_ota_get_next_update_partition()` irrespetive of the received state of the image. A few additional error checking mechanism have now been added inside the esp_https_ota which returns the control in case an invalid header is received and a wrapper to the function `esp_http_client_is_complete_data_received()` of `esp_http_client` has been added.
2019-08-15 21:10:00 +08:00
5863509804 Merge branch 'bugfix/vfs_concurrent_select' into 'master'
VFS: Support concurrent VFS select calls & improve the documentation

Closes IDFGH-1072

See merge request espressif/esp-idf!5538
2019-08-15 19:57:30 +08:00
6007ef4b08 Merge branch 'feature/cmake_build_internals_docs' into 'master'
Docs: Enchance build system internals docs

See merge request espressif/esp-idf!5753
2019-08-15 16:22:50 +08:00
848465da90 driver: Check ledc config result in PCNT tests 2019-08-15 06:53:46 +00:00
1dd2f3e07b driver: ledc: Fix low/high speed parameter setting
Fix regression introduced in 2e8c85d8ff
2019-08-15 06:53:46 +00:00
6b16928fbc docs: build system internals 2019-08-15 14:25:47 +08:00
a50ae86707 Merge branch 'bugfix/mbedtls_add_source_files_to_appropriate_library' into 'master'
mbedtls: add source files to appropriate library

See merge request espressif/esp-idf!5761
2019-08-15 13:32:20 +08:00
6875080b9b mbedtls: add source files to appropriate library 2019-08-15 12:43:45 +08:00
fce0a25b7c Merge branch 'docs/order_toctree_alphabetically' into 'master'
docs: Alphbetically sort toctree

See merge request espressif/esp-idf!5770
2019-08-15 12:41:54 +08:00
b6b7ea4f10 Merge branch 'bugfix/fix_flash_read_error_in_dio_mode' into 'master'
bugfix(flash): add spi dio address bitlen configure in psram init

See merge request espressif/esp-idf!5783
2019-08-15 11:28:19 +08:00
98280dd764 Merge branch 'bugfix/protocomm_nimble' into 'master'
NimBLE: Fix bug in `protocomm_nimble` characteristic access callback

See merge request espressif/esp-idf!5752
2019-08-15 10:50:30 +08:00
4c7b83defc NimBLE: Fix bug in protocomm_nimble chararcteristic access callback
Fixes bug in `protocomm_nimble` while writing to characteristic with length greater than MTU value.
2019-08-15 10:50:30 +08:00
0781868c36 Merge branch 'bugfix/mdns_send_bye_service_instance' into 'master'
mdns: fix missing bye packet if services removed with mdns_service_remove_all() or mdns_free()

See merge request espressif/esp-idf!5308
2019-08-15 10:50:17 +08:00
ee6b1399aa Merge branch 'feature/exclude_rom_from_example_header_files' into 'master'
exclude rom headers in examples

Closes IDF-557

See merge request espressif/esp-idf!5051
2019-08-15 10:50:01 +08:00
74e2e46402 bugfix(flash): add spi dio address bitlen configure in psram init 2019-08-14 20:57:30 +08:00
367ecc2d60 Merge branch 'refactor/timerg_in_test' into 'master'
timer_group: refactoring to avoid direct register access in the ISR

See merge request espressif/esp-idf!5656
2019-08-14 15:32:16 +08:00
2fcbc6aaa5 esp_eth: KConfig formatting fix 2019-08-14 16:50:30 +10:00
f8b1ef1b14 ci: kconfig rules: Allow any file starting with KConfig.* to be sourced 2019-08-14 16:50:30 +10:00
a001998d52 mdns: fix missing bye packet if services removed with mdns_service_remove_all() or mdns_free()
Closes https://github.com/espressif/esp-idf/issues/3660
2019-08-14 05:54:54 +00:00
70794a0776 Merge branch 'feature/ver-4.1' into 'master'
global: bump version to 4.1

See merge request espressif/esp-idf!5771
2019-08-14 09:01:48 +08:00
f72dc5b271 Update cJSON to v1.7.12
Fixes potential DoS in cJSON_Minify, see https://github.com/DaveGamble/cJSON/issues/354
2019-08-14 10:03:27 +10:00
62ee29250e soc: Update rtc_vddsdio_get_config for esp32s2beta
Closes: IDF-749
2019-08-13 20:04:49 +08:00
5b9e38fe4e idf.py: Fix PropertyDict implementation 2019-08-13 11:35:51 +02:00
0a74227cfa bump version to 4.1 2019-08-13 10:09:52 +02:00
75adefe437 docs: Alphbetically sort toctree
This commit sorts the entries of variuos toctrees
alphabetically. Indentation was also fixed. The order
of some toctrees were not modified if the existing
order had some form of suggested reading order.
2019-08-13 16:04:12 +08:00
278c2f1aea Merge branch 'feature/esp32s2beta' into feature/esp32s2beta_update 2019-08-13 17:16:44 +10:00
a3a67a4452 nvs_flash: Include xtensa component when building NVS tests on hosts
esp_attr.h moved to xtensa component in 61ce868396
2019-08-13 17:16:12 +10:00
85c2df060d examples: Mark flash encryption & external flash examples as ESP32 only for now 2019-08-13 17:14:16 +10:00
e32d27e7e8 esp_eth: Add CONFIG_ETH_ENABLED flag to enable/disable ethernet at build time
Always enabled by default, as SPI/Ethernet support is enabled by default.
2019-08-13 17:14:16 +10:00
f58d2ea34d esp32s2: Add SUPPORTED_TARGETS for remaining bluetooth examples 2019-08-13 17:14:16 +10:00
bcff8afbba esp_wifi: update esp32s2beta WiFi library 2019-08-13 17:14:16 +10:00
9a2e29e068 esp32s2beta: Invert RSA_CONSTANT_TIME_DISABLE_REG to RSA_CONSTANT_TIME_REG 2019-08-13 17:14:16 +10:00
9a3606781f ci: Lower limit for number of examples (S2 Beta has 81 right now) 2019-08-13 17:14:16 +10:00
8111b222c8 bt: Update to match master 2019-08-13 17:14:16 +10:00
18c5cfadae Fix function prototypes 2019-08-13 17:14:16 +10:00
c47e1756f8 examples: Rename deprecate CONFIG_CONSOLE_UART_NUM macro 2019-08-13 17:14:16 +10:00
4002c6060a lwip: Enable ethernet for both ESP32 & ESP32-S2Beta (SPI ethernet) 2019-08-13 17:14:16 +10:00
eb7ad6ca17 bootloader: Fix SPI dummy clock settings for ESP32S2-beta 2019-08-13 17:14:16 +10:00
d5f5fadbee bootloader: Include FreeRTOS component for the FREERTOS_UNICORE header, only 2019-08-13 17:14:16 +10:00
309376f51a spi_flash: Force legacy mode for ESP32-S2
Can be removed once IDF-763 is merged
2019-08-13 17:14:16 +10:00
dc9170966b freertos: Force UNICORE mode on ESP32S2 2019-08-13 17:14:16 +10:00
80a4a11808 Merge branch 'bugfix/fix_mbedtls_net_sockets_error_handling' into 'master'
mbedtls: use `errno` instead of `SO_ERROR` for getting socket errors

See merge request espressif/esp-idf!5727
2019-08-13 14:38:28 +08:00
0c00aae906 Merge branch 'feature/migrate_gh_action_to_yaml' into 'master'
gh_action: converted main.workflow to Actions V2 yml files

See merge request espressif/esp-idf!5758
2019-08-13 14:10:54 +08:00
aa2a972261 Merge branch 'bugfix/fix_encrypted_project_flash_arg_file_gen' into 'master'
CMake: fix encrypted project flash arg file generation

See merge request espressif/esp-idf!5741
2019-08-13 13:45:57 +08:00
e887190895 Merge branch 'feature/dport_eco_revision2' into 'master'
make dport workaround depend on chip revision

Closes IDF-809 and IDF-813

See merge request espressif/esp-idf!5606
2019-08-13 12:13:22 +08:00
f03a398512 Merge branch 'bugfix/doc_pip_requirements' into 'master'
Add -r flag to pip install command from file

Closes IDFGH-1670 and IDFGH-1622

See merge request espressif/esp-idf!5760
2019-08-13 11:42:35 +08:00
b1497f2187 exclude rom headers in examples
1. avoid including rom headers directly in examples
2. add common API interface for CRC calculation in esp_common component
2019-08-13 11:10:22 +08:00
f86e82cb63 efuse: update the scheme of getting chip revision 2019-08-13 10:59:02 +08:00
5e39718c22 Merge branch 'bugfix/component_set_properties' into 'master'
CMake: Set component properties

See merge request espressif/esp-idf!5738
2019-08-13 10:23:30 +08:00
65b9032dba Merge branch 'bugfix/reuse_pmk_without_set_config' into 'master'
wifi: Avoid recalculating PMK when esp_wifi_set_config is not called

Closes IDFGH-1520

See merge request espressif/esp-idf!5745
2019-08-12 23:33:45 +08:00
0addc0aef1 Added -r flag to pip install command from file
Closes https://github.com/espressif/esp-idf/pull/3874
Closes https://github.com/espressif/esp-idf/issues/3915
2019-08-12 16:03:28 +02:00
b64551718c gh_action: converted main.workflow to Actions V2 yml files 2019-08-12 19:45:48 +08:00
872ba98cc9 Merge branch 'feature/esp32s2beta_crosscore_int' into 'feature/esp32s2beta'
esp32s2beta: crosscore_int simplify for esp32s2beta

See merge request espressif/esp-idf!5668
2019-08-12 15:23:56 +08:00
212e7be28c Merge branch 'bugfix/core_id_arg' into 'master'
doc: Add clarifications Xtensa Core ID and "Core ID" used in FreeRTOS are different

Closes IDFGH-407

See merge request espressif/esp-idf!5661
2019-08-12 15:16:51 +08:00
9af30c4ff9 Merge branch 'ci/disable_nimble_tests' into 'master'
ci: Temporarily disable NimBLE tests in CI

See merge request espressif/esp-idf!5749
2019-08-12 15:14:23 +08:00
8f74271d5d esp_rom: Fail immediately if the wrong SoC's header file is included 2019-08-12 16:57:40 +10:00
2f56116db2 Cleanup of previous merge commit 2019-08-12 16:57:40 +10:00
e8bdfe07ae Merge branch 'feature/tls_psk_authentication' into 'master'
esp_tls: add psk verification mode

Closes IDFGH-992

See merge request espressif/esp-idf!5095
2019-08-12 12:45:34 +08:00
b0ef3cdc9f Merge branch 'bugfix/check_include_dirs' into 'master'
CMake: Check if component include dirs are directories

See merge request espressif/esp-idf!5701
2019-08-12 12:45:11 +08:00
4fe74b8f64 freertos: Rename CORE_ID_PRO/CORE_ID_APP macros to CORE_ID_REGVAL_xxx
Old values remain for compatibility.

As suggested in https://github.com/espressif/esp-idf/issues/2567
2019-08-12 11:12:34 +10:00
a40e164988 doc: Add clarifications Xtensa Core ID and "Core ID" used in FreeRTOS are different
Closes https://github.com/espressif/esp-idf/issues/2567
2019-08-12 11:11:28 +10:00
8658b1633c ci: Temporarily disable NimBLE tests in CI 2019-08-12 09:38:44 +10:00
dedf346ccb Merge branch 'bugfix/hwcrypt_fault_inj' into 'master'
hwcrypto: Add more AES & SHA fault injection checks

Closes IDF-786

See merge request espressif/esp-idf!5050
2019-08-11 15:02:25 +08:00
aa3c988c17 sha: Add fault injection checks reading hash digest state
Vulnerability reported by LimitedResults under Espressif Bug Bounty Program.
2019-08-11 11:16:33 +10:00
caea2889c8 aes: Add fault injection checks when writing key to hardware
Vulnerability reported by LimitedResults under Espressif Bug Bounty Program.
2019-08-11 11:16:33 +10:00
87ebdaa74e cmake: set component properties 2019-08-09 20:51:20 +08:00
b1f657fc65 wifi: Avoid recalculating PMK when esp_wifi_set_config is not called
Scenarios where this fix is applicable.
1) Every time the system is powered-on/restarted without calling
   esp_wifi_set_config.
2) esp_wifi_init()/connect()/stop()/deinit() is called multiple
   times without esp_wifi_set_config.

Closes IDFGH-1520
2019-08-09 16:28:33 +05:30
9a669bfbb9 rmt/driver: Add module reset before enabling 2019-08-09 17:09:56 +08:00
a418b603d0 pcnt/driver: Add module reset before enabling 2019-08-09 17:09:56 +08:00
5c560e0cd1 sdmmc_host/driver: Add module reset before enabling 2019-08-09 17:09:56 +08:00
437228e947 i2s/driver: Add module reset before enabling 2019-08-09 17:09:56 +08:00
d064cd485c can/driver: Add module reset before enabling 2019-08-09 17:09:56 +08:00
c082d13075 uart/driver: Add module reset before enabling
This commit prevents infinite restarts caused due to an interrupt flag
was left uncleared.

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

Closes: IDF-188
2019-08-09 17:09:56 +08:00
e3c236d2fe cmake: fix encrypted project flash arg file generation 2019-08-09 16:35:31 +08:00
2b71eff25f Merge branch 'bugfix/efuse_write_config' into 'master'
efuse: set timing configuration before writing

See merge request espressif/esp-idf!4750
2019-08-09 14:25:45 +08:00
01f7e7cc16 Merge branch 'bugfix/confgen_sdkconfig_renames' into 'master'
tools: Support sdkconfig.rename files from outside IDF in confgen.py

Closes IDF-659

See merge request espressif/esp-idf!5551
2019-08-09 14:21:19 +08:00
d6b641949c Merge branch 'bugfix/httpd_sess_close' into 'master'
httpd_sess_close: Check for session validity before closing

See merge request espressif/esp-idf!5705
2019-08-09 14:20:51 +08:00
d850a0bd1c esp_attr: add flag_attr to support enums used as flags 2019-08-09 13:46:32 +08:00
264ffbeb14 timer_group: use the LL 2019-08-09 13:46:31 +08:00
feea477023 timer_group: add LL functions for WDT 2019-08-09 13:46:30 +08:00
c02981a99b timer_group: support interrupt LL and some utility functions in ISR 2019-08-09 13:46:30 +08:00
a97fe5615f feat(timer): refator timer group driver (partly pick) 2019-08-09 13:46:29 +08:00
b413a240cb esp_attr: support force_inline 2019-08-09 13:46:28 +08:00
cb0f724e39 Merge branch 'feature/repl_suppl_crypto_by_mbedtls' into 'master'
wpa_supplicant: Port more crypto functions to use mbedtls

Closes WIFI-1590

See merge request espressif/esp-idf!5684
2019-08-09 12:52:03 +08:00
d6422229cf Merge branch 'bugfix/docs/white-space' into 'master'
🐛 Fix the white space bug in docs

Closes IDFGH-809

See merge request espressif/esp-idf!5693
2019-08-09 10:07:22 +08:00
d47288d9db 🐛 Fix the white space bug in docs
Fix only the visual rendering the issue for selection of text still remains and have to be solved by updating the html generator
Closes #3208
2019-08-09 10:07:22 +08:00
4dd2b9edb1 components: fix incorrect include dir args 2019-08-09 08:40:17 +08:00
08de39c226 cmake: check include directories 2019-08-09 08:40:17 +08:00
e947522f38 esp_flash: improve the comments a bit 2019-08-08 23:18:01 +08:00
e5704ab1a8 esp_flash: fix the set/get write protection functions
Add support for get write protection support, fixed the duplicated
set_write_protection link.

All the write_protection check in the top layer are removed. The lower
levels (chip) should ensure to disable write protection before the
operation start.
2019-08-08 23:18:00 +08:00
ab6ad844b1 mbedtls: use errno instead of SO_ERROR for getting socket errors
As per upgrade notes of lwIP v2.1.0:
socket API: according to the standard, SO_ERROR now only returns asynchronous errors.
All other/normal/synchronous errors are (and always were) available via 'errno'.
LWIP_SOCKET_SET_ERRNO has been removed - 'errno' is always set - and required!

Refer: https://www.nongnu.org/lwip/2_1_x/upgrading.html

Fixes https://github.com/espressif/esp-azure/issues/51
2019-08-08 12:17:32 +00:00
77bd32a503 Merge branch 'bugfix/libsodium_test_timeouts' into 'master'
test: Set timeout of libsodium ed25519_convert test to 60s

See merge request espressif/esp-idf!5552
2019-08-08 15:02:51 +08:00
c1e3e1cd9a Merge branch 'bugfix/fix_ledc_clock_select_bug' into 'master'
driver(ledc): fixed ledc clock selection bug

See merge request espressif/esp-idf!3612
2019-08-08 13:56:21 +08:00
cbb45b4559 Merge branch 'bugfix/config_panic_gdbstub_build_issue' into 'master'
esp32_gdbstub: fix build error with esp32-2019r1 toolchain

See merge request espressif/esp-idf!5709
2019-08-08 13:53:40 +08:00
04ae56806c Merge branch 'master' into feature/esp32s2beta_update 2019-08-08 15:26:58 +10:00
24bd75955f newlib: Fix UT - test time adjustment happens linearly
Obtaining accurate and adjustable time occurs closer to each other.
2019-08-08 12:38:33 +08:00
24d26fccde Merge branch 'master' into feature/esp32s2beta_update 2019-08-08 13:44:24 +10:00
14b8ea3b87 Merge branch 'feat/sdio_slave_efuse_default_3v3' into 'master'
sdio_slave: updates the document about DAT2 pin, also the version value read from CCCR registers

See merge request espressif/esp-idf!4733
2019-08-08 10:41:14 +08:00
562218d4db Merge branch 'feature/lwip_prefer_allocate_memory_in_psram' into 'master'
Try to allocate some memories in SPIRAM first. If failed, try to allocate in internal RAM then

See merge request espressif/esp-idf!5695
2019-08-07 21:00:14 +08:00
3fd896fe64 sdio_slave: update version read from CCCR to 2.0 2019-08-07 17:10:34 +08:00
07166a6b18 sdio_slave: rewrite the doc and highlight efuse-burning as the default option for 3.3V modules 2019-08-07 17:10:34 +08:00
80a5bd8e54 wpa_supplicant: Port more crypto functions to use mbedtls
Use mbedtls PBKDF2 and SHA1 for faster calculations during four-way
handshake.

Closes WIFI-1590
2019-08-07 07:23:28 +00:00
1877a9fcd8 Merge branch 'feature/esp32s2beta_rtc_driver' into 'feature/esp32s2beta'
Feature/esp32s2beta rtc driver

See merge request espressif/esp-idf!5243
2019-08-07 14:43:17 +08:00
5203a15439 esp32_gdbstub: fix build error with esp32-2019r1 toolchain
Fixes https://github.com/espressif/esp-idf/issues/3866
2019-08-07 11:56:13 +05:30
51d811a71c Merge branch 'bugfix/idf_tool_default_encoding' into 'master'
idf_tool: fix UnicodeDecodeError

Closes IDFGH-1584

See merge request espressif/esp-idf!5323
2019-08-07 13:24:54 +08:00
f3d6a34e7d esp_tls: enable psk verification mode, added mqtt example using psk authentication 2019-08-07 14:27:40 +10:00
572084821b add Comment for touchpad 2019-08-07 11:39:17 +08:00
c93cab858e httpd_sess_close: Check for session validity before closing
If httpd_sess_trigger_close() gets called twice for the same socket,
the first httpd_sess_close() cb closes the correct socket, but the second
invocation closes the wrong socket which was just accepted and added to
the socket db. Checking for the lru counter will help identify this as the
counter is set only for requests actually served.
2019-08-06 19:31:57 +05:30
2e8c85d8ff driver(ledc): fixed ledc clock selection bug. 2019-08-06 16:11:18 +08:00
d260ee6955 Merge branch 'feature/coap_mbedtls_support' into 'master'
Add DTLS support to libcoap using MbedTLS

See merge request espressif/esp-idf!5560
2019-08-06 14:23:54 +08:00
a8bfe59bd1 coap: refactor examples, stylistic cleanups, move certs to independent dir 2019-08-06 10:37:41 +05:30
10c3b42f71 coap: kconfig cleanup, have component specific configuration for common options 2019-08-06 10:37:40 +05:30
852c176a40 coap: add mbedtls in depedency list for CMake build 2019-08-06 10:37:40 +05:30
1aaec808da Add DTLS support to libcoap using MbedTLS
This update supports DTLS, TLS is a future TODO

components/coap/CMakeLists.txt:
components/coap/component.mk:

Add in the new files that have to be built
Replace libcoap/src/coap_notls.c with libcoap/src/coap_mbedtls.c

components/coap/libcoap:

Update the version to include the current version for supporting MbedTLS

components/coap/port/coap_debug.c:
components/coap/port/coap_mbedtls.c:
components/coap/port/include/coap/coap_dtls.h:

New port files for DTLS

components/coap/port/include/coap_config_posix.h:

Include building with MbedTLS

examples/protocols/coap_client/README.md:
examples/protocols/coap_client/main/CMakeLists.txt:
examples/protocols/coap_client/main/Kconfig.projbuild:
examples/protocols/coap_client/main/coap_client_example_main.c:
examples/protocols/coap_client/main/component.mk:

Update CoAP client to support DTLS

examples/protocols/coap_client/main/coap_ca.pem
examples/protocols/coap_client/main/coap_client.crt
examples/protocols/coap_client/main/coap_client.key

New PKI Certs for CoAP client (copied from wpa2_enterprise example)

examples/protocols/coap_server/README.md:
examples/protocols/coap_server/main/CMakeLists.txt:
examples/protocols/coap_server/main/Kconfig.projbuild:
examples/protocols/coap_server/main/coap_server_example_main.c:
examples/protocols/coap_server/main/component.mk:

Update CoAP server to support DTLS
Change "no data" to "Hello World!" to prevent confusion

examples/protocols/coap_server/main/coap_ca.pem
examples/protocols/coap_server/main/coap_server.crt
examples/protocols/coap_server/main/coap_server.key

New PKI Certs for CoAP server (copied from wpa2_enterprise example)

Closes https://github.com/espressif/esp-idf/pull/3345
Closes https://github.com/espressif/esp-idf/issues/1379
2019-08-06 10:37:40 +05:30
39f090a4f1 Merge branch 'deprecate/spi_common_claim_macros' into 'master'
spi_common: remove deprecated spi_common_periph_claim macros

See merge request espressif/esp-idf!5677
2019-08-06 11:16:17 +08:00
4df98b5489 cmake: treat unregistered components as unresolved 2019-08-06 11:14:44 +08:00
5a0e5c04d4 Merge branch 'feature/esp32s2beta_i2s_driver' into 'feature/esp32s2beta'
Driver(I2S)/ Update I2S driver for esp32s2beta

See merge request espressif/esp-idf!5245
2019-08-06 10:35:42 +08:00
3753283ef3 idf_tool: fix unicode decode error
Closes https://github.com/espressif/esp-idf/issues/3841
2019-08-06 10:31:34 +08:00
40e808c63b Try to allocate some LWIP memories in SPIRAM first. If failed, try to allocate in internal RAM then 2019-08-06 10:23:27 +08:00
6517c5033a Merge branch 'bugfix/docs_broken_links' into 'master'
Fix broken links in 'Getting Started' gudes

See merge request espressif/esp-idf!5685
2019-08-05 21:28:50 +08:00
06fb6213c5 Merge branch 'doc/add_Chinese_translation_for_modules-and-boards_in_hw-reference' into 'master'
Add Chinese translation for modules-and-boards.rst in hw-reference folder.

See merge request espressif/esp-idf!5520
2019-08-05 21:25:15 +08:00
8d8ea6f698 Add Chinese translation for modules-and-boards.rst in hw-reference folder.
Note: Also modify the table in en version
2019-08-05 21:25:15 +08:00
2d36e42b5f Merge branch 'bugfix/fix_wifi_bugs_for_authmode_and_multi_ssid' into 'master'
wifi: fix wifi bugs for authmode and multi ssid

Closes WIFI-558, WIFI-560, WIFI-449, WIFI-567, and WIFI-597

See merge request espressif/esp-idf!5387
2019-08-05 21:18:27 +08:00
26fc858ea4 spi_common: remove deprecated spi_common_periph_claim macros 2019-08-05 09:26:47 +00:00
2211039b6d docs: Correct and extend the documentation about VFS select() 2019-08-05 11:17:43 +02:00
91ce5db172 VFS: Support concurrent VFS select calls
Closes https://github.com/espressif/esp-idf/issues/3392
2019-08-05 11:17:41 +02:00
fbb0687b97 1.update touch driver; 2.update adc/dac driver; 3.add temp sensor driver; 2019-08-05 16:21:18 +08:00
bf79e9d70a Driver: gpio and rtcio dirver update 2019-08-05 16:21:18 +08:00
b055bff580 1.update touch driver; 2.update adc/dac driver; 3.add temp sensor driver; 2019-08-05 16:21:18 +08:00
83e00cf643 Driver: gpio and rtcio dirver update 2019-08-05 16:21:18 +08:00
2139ca668d Update I2S driver for esp32s2beta. 2019-08-05 16:05:16 +08:00
60db9e1a34 Merge branch 'feature/esp32s2beta_pcnt_timer_group_driver' into 'feature/esp32s2beta'
Driver(LEDC,PCNT, TIMER_GROUP): Update PCNT,Timer_Group driver for esp32s2beta

See merge request espressif/esp-idf!5239
2019-08-05 15:51:27 +08:00
e215a4d2c2 Merge branch 'feature/esp32s2beta_cpu_start_clean' into 'feature/esp32s2beta'
esp32s2beta: Simplify cpu_start.c remove code linked with CPU1

See merge request espressif/esp-idf!5691
2019-08-05 12:38:31 +08:00
ac5508efd5 Merge branch 'feature/idf_monitor_key_piority' into 'master'
idf_monitor: improve the responding of console commands

See merge request espressif/esp-idf!5585
2019-08-05 09:55:45 +08:00
7ef5fa8a0a Merge branch 'feature/transport_support_der_certs' into 'master'
tcp transport ssl DER-support

See merge request espressif/esp-idf!5627
2019-08-05 09:52:08 +08:00
b23718995a Merge branch 'bugfix/strict_prototypes' into 'master'
Enable strict prototypes checks

Closes IDFGH-757

See merge request espressif/esp-idf!4546
2019-08-05 09:38:39 +08:00
faeca72e24 Merge branch 'bugfix/update_example_docs_build_instructions_to_cmake' into 'master'
examples: change default build instructions in docs to CMake

See merge request espressif/esp-idf!5681
2019-08-05 08:08:53 +08:00
05094a9474 Merge branch 'bugfix/btdm_sleep_twice' into 'master'
bugfix btdm sleep twice after wakeup request

See merge request espressif/esp-idf!5637
2019-08-04 15:51:04 +08:00
a9dfae66ea bugfix btdm sleep twice after wakeup request
This problem may cause HCI send command timeout.

When host call VHCI api to do btdm_wakeup_request, then controller
wakeup process will be handled in ISR and controller task context.
As host task priority is lower than controller task and ISR,
it will cause an incorrect behavior that before VHCI take the
rx_flow_on_semaphore, controller sleep again, then VHCI cannot take
the semaphore and has to wait the automatic wakeup.
2019-08-04 07:17:13 +00:00
b3575ad012 esp32s2beta: crosscore_int simplify for esp32s2beta
Closes: IDF-754
2019-08-03 15:29:02 +08:00
f9068a10a9 esp32s2beta: Simplify cpu_start.c remove code linked with CPU1
Closes: IDF-840
2019-08-03 15:06:39 +08:00
66440e5975 Merge branch 'feature/file_length_validation' into 'master'
esp_http_client: Add support to check the binary length of the recieved stream...

See merge request espressif/esp-idf!5635
2019-08-02 19:18:44 +08:00
d4091f7cda esp_http_client: Add support to check the binary length of the recieved stream and compare it with the size mentioned in the header.
While downloading OTA firmware, if their is a Origin Respnse Timeout or the binary is only partially downloaded, OTA failure is observed. Checking binary size can also be helpful for simple http client applications.

Closes https://github.com/espressif/esp-idf/issues/3004
2019-08-02 19:18:44 +08:00
e7dba7d7bc examples: change default build instructions in docs to CMake 2019-08-02 16:32:46 +05:30
90a6855d01 Merge branch 'move/ble_example' into 'master'
examples/bluetooth: Move the demos to the appropriate locations

See merge request espressif/esp-idf!5667
2019-08-02 18:01:58 +08:00
146f120f79 examples/bluetooth: Move the demos to the appropriate locations 2019-08-02 18:01:58 +08:00
164fd5ad29 More link corrections 2019-08-02 17:58:08 +08:00
90e1b7616c Merge branch 'bugfix/example_ext_flash_dio' into 'master'
examples: ext_flash_fatfs: use DIO mode by default

See merge request espressif/esp-idf!5645
2019-08-02 17:53:54 +08:00
d163b9e615 Fix broken links in 'Getting Started' gudes 2019-08-02 17:09:33 +08:00
74ab6375cd Merge branch 'bugfix/gitignore_cmake_files' into 'master'
CMake: Added git ignore for cache files generated by cmake (PR)

See merge request espressif/esp-idf!5675
2019-08-02 15:52:06 +08:00
25dd5e39af esp-tls: Naming variables refering to certificates and keys in a neutral way to suggest that both PEM and DER format could be used, added comments descibing important details about using these formats 2019-08-02 09:25:16 +02:00
546b625433 add _der variants for esp_transport_ssl_set_(client_cert|client_key|cert_data)
Signed-off-by: David Cermak <cermak@espressif.com>

Merges https://github.com/espressif/esp-idf/pull/3783
2019-08-02 09:25:16 +02:00
73624e8560 modify comments on esp_tls_cfg, to clarify that other formats besides PEM (such as DER) might be used as well depending on mbedtls-support
Signed-off-by: David Cermak <cermak@espressif.com>
2019-08-02 09:25:16 +02:00
02e5266778 modify WIFI_CONN_0101 case for wrong authmode of AP 2019-08-02 10:22:46 +08:00
9f9d876799 wifi: fix wifi bugs for authmode and multi ssid 2019-08-02 10:22:20 +08:00
096b741a23 Merge branch 'bugfix/fix_the_wrong_comment_in_esp_wifi_types.h' into 'master'
fix the wrong comment in esp_wifi_types.h

See merge request espressif/esp-idf!5676
2019-08-01 21:15:52 +08:00
017a60a69d fix the wrong comment in esp_wifi_types.h 2019-08-01 12:24:08 +00:00
e639d5cb84 CMake: Added git ignore for cache files generated by cmake
Merges https://github.com/espressif/esp-idf/pull/3639
2019-08-01 17:59:54 +08:00
ec94ee80f7 Fix a build issue with replacing init_spi_flash() in the host tests 2019-08-01 16:28:56 +07:00
12403e39b4 tools: Fix the build examples script to run locally 2019-08-01 16:28:56 +07:00
75c0066f93 Fix remaining -Wstrict-prototypes warnings 2019-08-01 16:28:56 +07:00
1beb0869e1 NimBLE: Update submodule to fix -Wstrict-prototypes warnings 2019-08-01 16:28:56 +07:00
c2764f6fe8 mdns: mdns_service_remove_all doesn't take an argument
Merges https://github.com/espressif/esp-idf/pull/2937
2019-08-01 16:28:56 +07:00
d4c098f5a9 brownout: fix rtc_brownout_isr_handler signature
Merges https://github.com/espressif/esp-idf/pull/2937
2019-08-01 16:28:56 +07:00
e8191912c8 Add -Wstrict-prototypes check in CI 2019-08-01 16:28:56 +07:00
74a459dd3d make code conform to Wstrict-prototypes
Merges https://github.com/espressif/esp-idf/pull/2937
2019-08-01 16:28:56 +07:00
afbaf74007 tools: Mass fixing of empty prototypes (for -Wstrict-prototypes) 2019-08-01 16:28:56 +07:00
50629eec27 tools: Add a script to fix up empty prototypes 2019-08-01 16:28:55 +07:00
4d97dacf56 Merge branch 'bugfix/fix_i2s_channels_swapped_issue' into 'master'
Bugfix(i2s): fixed i2s left/right channels swapped issue

Closes IDFGH-1447

See merge request espressif/esp-idf!5669
2019-08-01 16:53:37 +08:00
54eecde90a Merge branch 'bugfix/minor_cleanup_lwip_duplicate_files' into 'master'
lw_ip: remove duplicate (and stale) changelog and version files

See merge request espressif/esp-idf!5657
2019-08-01 12:13:55 +08:00
a2155ff52d idf_monitor: improve the responding of console commands 2019-08-01 11:55:42 +08:00
ff325e84b6 Bugfix(i2s): fixed i2s left/right channels swapped issue.
The right channel data is in the high position, so the I2S_TX_MSB_RIGHT & I2S_RX_MSB_RIGHT bits should be set.

Merges https://github.com/espressif/esp-idf/pull/3717

closes https://github.com/espressif/esp-idf/issues/3399
2019-07-31 17:58:23 +08:00
f98e7bbccf Update LEDC, PCNT,Timer_Group driver for esp32s2beta. 2019-07-31 16:03:22 +08:00
df4926b723 Merge branch 'bugfix/bt_example_typos' into 'master'
Minor: Fix some typos in Bluetooth examples

See merge request espressif/esp-idf!5662
2019-07-31 15:33:03 +08:00
c0491fc6f1 Minor: Fix some typos in Bluetooth examples 2019-07-31 15:33:03 +08:00
15e0a32786 lwip: remove duplicate (and stale) changelog and version files 2019-07-30 16:49:53 +05:30
eae6f5a1d6 Merge branch 'feature/esp32s2beta_rmt_driver' into 'feature/esp32s2beta'
Driver(RMT): Update RMT driver for esp32s2beta

See merge request espressif/esp-idf!5227
2019-07-30 18:21:59 +08:00
aea5561941 Merge branch 'feature/esp32s2beta_update_uart_driver' into 'feature/esp32s2beta'
feat(uart): update uart driver for esp32s2beta

See merge request espressif/esp-idf!5257
2019-07-30 18:05:54 +08:00
3b42e173e9 Merge branch 'maint/update_tool_openocd-v0.10.0-esp32-20190708' into 'master'
tools: Update recommended OpenOCD version to v0.10.0-esp32-20190708

See merge request espressif/esp-idf!5565
2019-07-30 12:51:05 +08:00
16b300bd7a Merge branch 'bugfix/fix_the_bug_in_wifi_doc' into 'master'
docs: fix the bug in wifi doc

Closes IDFGH-1590

See merge request espressif/esp-idf!5647
2019-07-30 09:42:23 +08:00
b071fbdd81 Merge branch 'test/rtc_noinit_wdt_test' into 'master'
esp32: verify that RTC_NOINIT_ATTR vars are preserved after WDT reset

See merge request espressif/esp-idf!4936
2019-07-30 09:42:15 +08:00
8dbe1f024e Merge branch 'bugfix/pthread_fixes' into 'master'
pthread fixes

Closes IDFGH-1437

See merge request espressif/esp-idf!5646
2019-07-30 09:41:31 +08:00
b803c7328a Merge branch 'bugfix/btdm_some_unallocated_memory' into 'master'
Bugfix/btdm some unallocated memory

See merge request espressif/esp-idf!5629
2019-07-30 09:41:09 +08:00
d005d95119 Merge branch 'bugfix/gpio_intr_enable_bug' into 'master'
bugfix(GPIO):  Fixed the  GPIO  interrupt  enable  bug

Closes IDFGH-495

See merge request espressif/esp-idf!5571
2019-07-30 09:35:42 +08:00
6fe853a2c7 Merge branch 'bugfix/ws_client_fix_static_analysis_warnings' into 'master'
ws_client: fix double delete issue in ws client initialization

See merge request espressif/esp-idf!5309
2019-07-29 19:25:30 +08:00
e9b77d3a69 Merge branch 'feature/move_gettimeofday_in_clock_gettime' into 'master'
newlib: Move _gettimeofday_r call in clock_gettime

Closes IDFGH-1525

See merge request espressif/esp-idf!5562
2019-07-29 19:25:11 +08:00
f0442e744d Merge branch 'fix/esp_flash_compatible_with_rom' into 'master'
esp_flash: fix a compatibility issue working with the ROM

See merge request espressif/esp-idf!5462
2019-07-29 19:18:20 +08:00
477c7bb789 Merge branch 'feature/idf_tools_installer_ci' into 'master'
Build Windows tools installer in CI

Closes IDF-201

See merge request espressif/esp-idf!5583
2019-07-29 19:16:18 +08:00
64f81aefae bugfix(GPIO): Fixed the bug that GPIO enables interrupts on one core,
but registers interrupt service routines on another core

closes https://github.com/espressif/esp-idf/issues/2808
closes https://github.com/espressif/esp-idf/issues/2845
2019-07-29 11:09:07 +00:00
022223f570 Merge branch 'feat/sdmmc_io_cis_parse' into 'master'
sdmmc_io: support to print CIS information

See merge request espressif/esp-idf!5515
2019-07-29 19:05:30 +08:00
82af11813f Merge branch 'bugfix/export_macos' into 'master'
tools: export.sh: fix ESP-IDF path detection on macos

See merge request espressif/esp-idf!5644
2019-07-29 19:01:50 +08:00
b4e850a4b1 Merge branch 'bugfix/make_link_libc_psram' into 'master'
esp32: also add -mfix-esp32-psram-cache-issue to LDFLAGS

See merge request espressif/esp-idf!5643
2019-07-29 19:01:12 +08:00
b1bb90a596 Merge branch 'bugfix/partition_tables_update_note' into 'master'
global: update note in the partition tables

See merge request espressif/esp-idf!5636
2019-07-29 19:00:44 +08:00
f6857f634f Merge branch 'nimble/submodule_update_fix' into 'master'
NimBLE: Update submodule to fix bug in delete bond procedure

See merge request espressif/esp-idf!5605
2019-07-29 19:00:21 +08:00
1f0d682406 NimBLE: Update submodule to fix bug in delete bond procedure
- Fixes bug in `get_nvs_db_attribute` related to getting correct index while
  deleting bond in NVS.
- MR raised on esp-nimble branch: https://gitlab.espressif.cn:6688/espressif/esp-nimble/merge_requests/12
2019-07-29 19:00:21 +08:00
3f49d71258 Merge branch 'feature/esp32s2beta_gdbstub' into 'feature/esp32s2beta'
esp32s2beta: add gdbstub support

See merge request espressif/esp-idf!5568
2019-07-29 19:00:18 +08:00
b7125303a2 Merge branch 'bugfix/examples_stale_options' into 'master'
examples: remove non-existent options from sdkconfig.defaults

See merge request espressif/esp-idf!5633
2019-07-29 19:00:04 +08:00
62bb107b31 docs: fix the bug in wifi doc 2019-07-29 14:55:17 +08:00
6cff19adb6 ci: add jobs to build idf_exe, cmdlinerunner, tools installer 2019-07-29 06:13:52 +02:00
fa555e3109 esp_flash: fix a compatibility issue working with the ROM
The esp_flash API has a side effects: it modifies the clock control
registers, and this makes the clock inconsistent with the ROM variable
`g_rom_spiflash_dummy_len_plus`.

This commit helps the ROM to get the correct dummy cycles required by
the latest clock settings. Every device on the SPI1 bus will update the
ROM variable when it modifies the clock registers.
2019-07-29 03:00:09 +00:00
14c7f8e150 Merge branch 'bugfix/ws_transport_revert_masked_after_sending' into 'master'
tcp_transport: websocket layer modifies in-buffer data (for masked transports)....

See merge request espressif/esp-idf!5546
2019-07-29 11:00:05 +08:00
3c63f49591 examples: remove non-existent options from sdkconfig.defaults 2019-07-29 04:57:38 +02:00
bfb0f83b32 Merge branch 'bugfix/dis_interrupts_up_to_6_level_for_dport_wa' into 'master'
esp32: Dis interrupts up to 5 lvl for DPORT

Closes IDF-728

See merge request espressif/esp-idf!5344
2019-07-29 10:57:20 +08:00
62780234a3 Merge branch 'bugfix/get-started-legacy-links' into 'master'
docs: getting-started: fix broken links

See merge request espressif/esp-idf!5549
2019-07-29 10:56:01 +08:00
e9de7b1df3 pthread: remove ESP32_ prefix from Kconfig options
pthread implementation is not chip-specific, so this prefix is not
needed.
2019-07-29 04:43:49 +02:00
661769527c pthread: force linking pthread implementation from IDF
Force linking pthread implementation from IDF, instead of the weak
functions provided by gthread library. Previously this would either
work or not depending on the linking order.

Thanks @bpietsch for suggesting the fix.

Closes https://github.com/espressif/esp-idf/issues/3709
2019-07-29 04:43:49 +02:00
434dd2d7a1 Merge branch 'bugfix/add_flash_config_in_app_startup' into 'master'
bugfix(flash): add flash config in app startup

See merge request espressif/esp-idf!5459
2019-07-29 10:42:27 +08:00
b98b4c3886 sdmmc_io: support to print CIS information
Currently only ESP slaves can be parsed correctly.
2019-07-29 10:41:17 +08:00
53d1d211e7 Merge branch 'feature/gcc_reorder_blocks' into 'master'
build system: add -freorder-blocks option for release config

See merge request espressif/esp-idf!3990
2019-07-29 10:16:49 +08:00
8d35744a33 examples: ext_flash_fatfs: use DIO mode by default
DIO works with the same connections as Fast Read, so use it by
default. Also correct the note in README.md which says that DIO
requires additional pins.
2019-07-28 10:14:04 +02:00
3f9fc97de7 tools: export.sh: fix ESP-IDF path detection on macos
The argument passed to the function is in $1; $0 contains `-bash`.
Before this fix, IDF_PATH would be set to $PWD instead of the correct
path.
2019-07-28 10:04:36 +02:00
98c179ed47 esp32: also add -mfix-esp32-psram-cache-issue to LDFLAGS
xtensa-esp32-elf-gcc selects among the multilib configurations based
on the presence of -mfix-esp32-psram-cache-issue flag. Pass this flag
in LDFLAGS so that the correct libraries are linked.

Reported in https://github.com/espressif/esp-idf/issues/3624
2019-07-28 08:05:56 +02:00
3e17c69e4f tools: idf_tools.py: allow downloading for a different platform 2019-07-28 07:27:00 +02:00
7cb3a57b9c build_system: add -freorder-blocks option for release config 2019-07-27 09:28:19 +00:00
c4e5c62cda Merge branch 'bugfix/malloc_warnings_rtc' into 'master'
rtc: fix minor malloc issues found by static analyzer

See merge request espressif/esp-idf!5144
2019-07-27 17:27:24 +08:00
1b6010bedf Merge branch 'bugfix/mdns_fix_discard_packet_on_invalid_name' into 'master'
mdns: fix ignoring mdns packet if contained an invalid name entries in question field

See merge request espressif/esp-idf!5307
2019-07-27 17:25:25 +08:00
26800ed71e global: update note in the partition tables
The build system automatically determines offsets of partitions from
the partition table, so no manual changes are needed. Instead, add a
note that partition offsets may need to be updated when increasing
the bootloader size.
2019-07-27 10:28:16 +02:00
75f64a01cd Merge branch 'bugfix/esp_event_add_missing_include' into 'master'
esp_event: add missing header include

See merge request espressif/esp-idf!5630
2019-07-26 18:30:34 +08:00
84982ae2ee Merge branch 'feature/ext_flash_example' into 'master'
examples: add FATFS in external Flash example

See merge request espressif/esp-idf!5579
2019-07-26 16:30:37 +08:00
a8535767e4 esp_event: add missing header include
Required header was indirectly getting resolved through lwip includes,
apparently does not work if application is not using lwip networking stack.
2019-07-26 13:58:26 +05:30
f77a5851bb component/bt: Fix BLE SMP free without init 2019-07-26 14:40:03 +08:00
2d1d747cbb component/bt: Avoid A2DP demo to use unallocated memory 2019-07-26 14:40:02 +08:00
d1f774bc0a component/bt: Avoid PLC to use unallocated memory
Closes https://github.com/espressif/esp-idf/pull/3799
2019-07-26 14:39:50 +08:00
89ee7b5dfb examples: add FATFS in external Flash example
Demonstrates the usage of the new spi_bus_add_flash_device,
esp_flash_init, esp_partition_register_external functions.
2019-07-26 08:19:42 +02:00
b0456cc926 Merge branch 'bugfix/mesh_scan_done_crash' into 'master'
Bugfix: mesh scan done crash caused by uint8_t overflow

See merge request espressif/esp-idf!5590
2019-07-25 18:01:47 +08:00
842432fb65 Merge branch 'bugfix/dont_rerun_reconfig_on_tests' into 'master'
Don't re-run reconfig on tests executed with same parameters

Closes IDF-732

See merge request espressif/esp-idf!5335
2019-07-25 12:24:03 +08:00
c19106876c Merge branch 'bugfix/tools_installer_fixes' into 'master'
tools: fixes for idf_tools.py and Windows tools installer

Closes IDFGH-1545 and IDFGH-1544

See merge request espressif/esp-idf!5595
2019-07-25 12:20:28 +08:00
308d03456d Merge branch 'bugfix/fix_WiFi_stack_can_freeze' into 'master'
esp_wifi: ESP32_WIFI_RX_BA_WIN should be less than ESP32_WIFI_DYNAMIC_RX_BUFFER_NUM

Closes IDFGH-1383

See merge request espressif/esp-idf!5576
2019-07-25 10:42:54 +08:00
dd26caf779 esp_wifi: ESP32_WIFI_RX_BA_WIN should be less than ESP32_WIFI_DYNAMIC_RX_BUFFER_NUM 2019-07-24 18:03:33 +08:00
a7ddb03274 mesh: fix scan done crash caused by uint8_t overflow 2019-07-24 15:54:50 +08:00
80ad09f230 tools: installer: allow changing installation path
Installation path can now be changed in a subsequent install,
without uninstalling and logging out.
The default value of the installation path is set to
IDF_TOOLS_PATH environment variable, if it was already set by the
previous installation, or by the user.

Closes https://github.com/espressif/esp-idf/issues/3806
2019-07-24 06:44:30 +02:00
3450d9e531 Merge branch 'bugfix/ethernet_apll_clock_config' into 'master'
fix ethernet apll clock config and other optimization

Closes IDFGH-1432, IDFGH-1503, and IDFGH-1504

See merge request espressif/esp-idf!5499
2019-07-24 11:28:10 +08:00
e36a76d940 idf_ext.py: don't rerun reconfig for tests when possible 2019-07-23 16:15:33 +02:00
09fe556faa Merge branch 'doc/resolve-pdf-building-issues' into 'master'
Doc/resolve pdf building issues

See merge request espressif/esp-idf!5566
2019-07-23 17:45:42 +08:00
639687f92b Replace gif images on EN and zh_CN index pages with identical png images for successful building of PDFs on ReadTheDocs. 2019-07-23 17:45:41 +08:00
1271008dd8 tools: tools.json: don't require ulp-binutils and openocd on x86 Linux
Fixes https://esp32.com/viewtopic.php?f=13&t=11540
2019-07-23 06:57:36 +02:00
b70ac4deb7 tools: idf_tools.py: improve error message when no downloads found
...for the given platform.
Previously would raise AssertionError.
2019-07-23 06:55:30 +02:00
f38c1c18a8 tools: install.bat: bail out if idf_tools.py call fails
Makes installation errors easier to spot.
2019-07-23 06:20:52 +02:00
78aef41ef6 Merge branch 'test/check_lib_reversion' into 'master'
test: move wifi library check to esp32-wifi-lib ci

See merge request espressif/esp-idf!5483
2019-07-23 12:02:37 +08:00
018de8101f ethernet: can build without enable esp32 emac
Closes https://github.com/espressif/esp-idf/issues/3770
2019-07-22 21:07:02 +08:00
97ad2bcb86 ethernet: support giving 50mhz rmii clock with both 40mhz and 26 mhz rtc xtal
Merges https://github.com/espressif/esp-idf/pull/3769
Closes https://github.com/espressif/esp-idf/pull/3704
2019-07-22 21:07:02 +08:00
cfbf8c5d07 ethernet: task yield at the end of isr handler 2019-07-22 21:07:02 +08:00
af78311975 ethernet: malloc hal together with driver context 2019-07-22 21:07:02 +08:00
9c5284e7b5 tools: installer: verify that IDF_PATH doesn't contain spaces 2019-07-22 09:29:49 +02:00
aaf3dcbda0 tools: installer: fix quoting of IDF_TOOLS_PATH
IDF_TOOLS_PATH may contain spaces, so needs to be properly quoted.

Closes https://github.com/espressif/esp-idf/issues/3807
2019-07-22 09:29:49 +02:00
606c6c867c Merge branch 'bugfix/mqtt_minor_fixes' into 'master'
mqtt: bugfixes: crash on disconnect if not connected, fixed static analysis warning

See merge request espressif/esp-idf!5223
2019-07-22 15:21:39 +08:00
4dc247f5ec Merge branch 'bugfix/IDF-790' into 'master'
tools: added realpath_int() for MacOS script path resolution

Closes IDF-790

See merge request espressif/esp-idf!5548
2019-07-22 11:56:28 +08:00
fcb668ec9c Merge branch 'bugfix/btdm_AVRC_command_fail_while_playing' into 'master'
components/bt: Fix AVRCP command will not be executed while playing music

See merge request espressif/esp-idf!5458
2019-07-22 11:45:19 +08:00
7436535fbe Merge branch 'doc/add_Chinese_translation_to_api-reference_network_esp_smartconfig' into 'master'
Add Chinese translation to api-reference/network/esp_smartconfig.rst

See merge request espressif/esp-idf!5302
2019-07-19 19:04:44 +08:00
d767e0edc7 Add Chinese translation to api-reference/network/esp_smartconfig.rst 2019-07-19 19:04:44 +08:00
75f5e443c6 Merge branch 'doc/review_api-ref_periph-timer' into 'master'
Review the file api-reference/peripherals/timer.rst

See merge request espressif/esp-idf!5291
2019-07-19 15:06:52 +08:00
75d7ca4b60 Review the file api-reference/peripherals/timer.rst 2019-07-19 15:06:52 +08:00
ad966d9375 Merge branch 'config/nimble_params' into 'master'
NimBLE: Give an option to configuration no of bonds and CCCD's to save through menuconfig

See merge request espressif/esp-idf!5563
2019-07-19 14:34:57 +08:00
c75240a939 NimBLE: Give an option to configuration no of bonds and CCCD's to save through menuconfig 2019-07-19 14:34:57 +08:00
18df3dd5ed test: move wifi library check to esp32-wifi-lib ci 2019-07-19 13:12:57 +08:00
ceea278501 Merge branch 'bugfix/fix_some_supplicant_bugs' into 'master'
esp_wifi/supplicant: fix some supplicant bugs

Closes IDFGH-1455 and IDF-774

See merge request espressif/esp-idf!5511
2019-07-19 10:46:39 +08:00
4be0fdb24c Merge branch 'doc/review_api-ref_periph-ledc' into 'master'
Doc/review api ref periph ledc

See merge request espressif/esp-idf!5342
2019-07-18 20:33:27 +08:00
0a11604686 Merge branch 'feature/dockerfile' into 'master'
tools: add Dockerfile

Closes IDFGH-1304 and IDF-590

See merge request espressif/esp-idf!5432
2019-07-18 19:52:38 +08:00
54b16b7f5a tools: added realpath_int() for MacOS script path resolution
JIRA IDF-790
2019-07-18 13:36:11 +02:00
e43513b610 bugfix(uart): uniform AT_CMD char configuration 2019-07-18 19:24:13 +08:00
f3f08fa713 esp_wifi/supplicant: fix some supplicant bugs
Closes IDFGH-1455
Closes IDF-774
2019-07-18 17:36:19 +08:00
f27527dd78 Merge branch 'bugfix/phy_change_for_WiFi_scan_BLE_scan_watchdog' into 'master'
phy change for WiFi scan BLE scan watchdog

Closes WIFI-681

See merge request espressif/esp-idf!5539
2019-07-18 17:31:00 +08:00
d8b3676797 Review the file api-reference/peripherals/ledc.rst 2019-07-18 16:38:59 +08:00
6289a26596 mqtt: referenced esp-mqtt master to close disconnection issues and fix static analysis warnings
closes https://github.com/espressif/esp-idf/issues/3619 including mqtt commit 7223302deb
closes https://github.com/espressif/esp-idf/issues/3215 including mqtt commit caf5007b99
2019-07-18 10:34:10 +02:00
ffca1825e6 lwip fuzzer: supplied dummy dns server entry to work with internal packet processing functionwhich is exercised in fuzzer tests, disable CTYPE as recent newlib is not compatible with AFL 2019-07-18 10:34:03 +02:00
00b33a8e14 vfs_uart: refactor to have static context structure 2019-07-18 15:57:00 +08:00
91ae40e2ff uart: multichip support 2019-07-18 15:57:00 +08:00
4cc962353c feat(uart): update uart driver for esp32s2beta 2019-07-18 15:57:00 +08:00
d742bc85a5 gdbstub: fix CONFIG_ESP_CONSOLE_UART_NUM option name 2019-07-18 09:33:40 +02:00
d77c74770a bugfix(flash): add flash config in app startup
We fixed some flash bugs in bootloader, but for the users used the old
vrsion bootloader, they can not fix these bugs via OTA, the solution is
add these updates in app startup.

These updates include:
1. SPI flash gpio matrix and drive strength configuration
2. SPI flash clock configuration
3. SPI flash read dummy configuration
4. SPI flash cs timing configuration
5. Update flash id of g_rom_flashchip
2019-07-18 14:40:59 +08:00
83277fe0f2 docs: add tools section and IDF docker image page 2019-07-18 06:18:04 +00:00
024176c509 ci: build IDF docker image in CI 2019-07-18 06:18:04 +00:00
dd443f61e8 tools: add Dockerfile 2019-07-18 06:18:04 +00:00
e1ef0faccd esptool: Bump to v2.7
https://github.com/espressif/esptool/releases/tag/v2.7
2019-07-18 15:09:17 +10:00
8cd04c80f6 efuse: set timing configuration before writing 2019-07-18 15:08:56 +10:00
69504bd9c5 phy change for WiFi scan BLE scan watchdog 2019-07-18 11:00:18 +08:00
c6c6cd7179 rtc: fix minor malloc issues found by static analyzer 2019-07-17 14:45:17 +00:00
f9f13a86a7 esp32s2beta: add gdbstub support 2019-07-17 16:27:11 +02:00
7d21ece78b gdbstub: move to a separate component, support multiple targets 2019-07-17 16:01:03 +02:00
e9faf132b4 tools: Update recommended OpenOCD version to v0.10.0-esp32-20190708 2019-07-17 13:11:24 +00:00
785e711561 Merge branch 'bugfix/mesh_stop_block' into 'master'
mesh: fix esp_mesh_stop blocking issue

Closes WIFI-313

See merge request espressif/esp-idf!5475
2019-07-17 20:36:51 +08:00
7982ed9a7d newlib: Move _gettimeofday_r call in clock_gettime
Signed-off-by: KonstantinKondrashov <konstantin@espressif.com>
Merges: https://github.com/espressif/esp-idf/pull/3789
2019-07-17 16:52:40 +08:00
c29e353142 Merge branch 'bugfix/app_update_tests' into 'master'
app_update: Add [timeout=90] for UTs

See merge request espressif/esp-idf!5553
2019-07-17 16:41:06 +08:00
e431bfd6c2 docs: getting-started: correct style of "macOS" name 2019-07-17 08:31:35 +02:00
7feea26404 docs: getting-started: fix broken links 2019-07-17 08:30:53 +02:00
a544c0e4da Merge branch 'bugfix/optimize_wifi_rx' into 'master'
esp_wifi: optimize wifi rx

See merge request espressif/esp-idf!5501
2019-07-17 12:40:09 +08:00
4dd75184e4 mesh: fix esp_mesh_stop not return 2019-07-17 11:02:21 +08:00
17791d5384 app_update: Add [timeout=90] 2019-07-17 10:28:50 +08:00
4a0733c33c test: Set timeout of libsodium ed25519_convert test to 60s
Test takes 28s-29s to run in some configs, can fail in CI.
2019-07-17 12:24:29 +10:00
bd21960955 tools: Support sdkconfig.rename files from outside IDF in confgen.py 2019-07-16 20:18:19 +02:00
eab3edf3d4 Merge branch 'fix_bug_for_ipv6_example' into 'master'
Modify IPv6 functionality compatible with lwip2.1.2

See merge request espressif/esp-idf!5495
2019-07-17 00:09:17 +08:00
45dd6175cd esp_wifi: optimize wifi rx 2019-07-16 17:59:04 +08:00
d7e659df27 Merge branch 'bugfix/fix_wifi_stop_bug' into 'master'
esp_wifi: fix wifi stop

See merge request espressif/esp-idf!5479
2019-07-16 17:55:19 +08:00
f048be924c components/bt: Fix AVRCP command will not be executed while playing music 2019-07-16 08:50:36 +00:00
f29ff2c552 Modify IPv6 functionality compatible with lwip2.1.2 2019-07-16 16:22:11 +08:00
8fc02e860a tcp_tansport: websocket layer modifies in-buffer data (for masked transports). This fix reverts the data back to original rather then making a copy.
Closes https://github.com/espressif/esp-idf/issues/3774
2019-07-16 09:47:18 +02:00
596209de69 Merge branch 'feature/update_mbedtls_config_approach' into 'master'
Modify esp_config include approach

See merge request espressif/esp-idf!5382
2019-07-16 15:32:03 +08:00
4732e22e64 Merge branch 'bugfix/fix_mcpwm_example_memory_bug' into 'master'
Bugfix(example) : Fixed the bug that the malloc memory size is smaller than the actual required.

Closes IDFGH-1490

See merge request espressif/esp-idf!5509
2019-07-16 14:51:35 +08:00
b7d6aa74dd esp_wifi: fix WiFi stop bug
Fix the bug that WiFi stop causes esp_wifi_internal_reg_rxcb() fails.
2019-07-16 14:09:47 +08:00
69a313b6ae esp32: Add UTs for DPORT and Hi-interrupt 2019-07-16 05:54:45 +00:00
632b016028 esp32: Dis interrupts up to 5 lvl for DPORT
Disable interrupts for both DPORT workarounds up to 5 lvl.

Closes: https://esp32.com/viewtopic.php?f=2&t=10981&sid=d125cec233070ed4d2c5410bf5d3d74a
Closes: IDF-728
2019-07-16 05:54:45 +00:00
a6b39f0c64 Merge branch 'bugfix/wifi_prov_mgr_event_end_missing' into 'master'
Bugfix wifi_prov_mgr : Added missing esp_event_post() for WIFI_PROV_END events

See merge request espressif/esp-idf!5522
2019-07-16 13:53:08 +08:00
56afdedf7c Merge branch 'bugfix/do_not_require_new_target_link_library_signature' into 'master'
CMake: Do not force use of new target_link_libraries signature

See merge request espressif/esp-idf!5471
2019-07-16 13:36:35 +08:00
413a98b151 Merge branch 'feature/esp32s2beta_dport' into 'feature/esp32s2beta'
dport_access: simplify for esp32s2beta

See merge request espressif/esp-idf!5417
2019-07-16 13:32:48 +08:00
caf3a43c07 Merge branch 'bugfix/fix_smartconfig_crash_when_no_ap_is_found' into 'master'
esp_wifi: smartconfig crash when no ap is found

Closes IDFGH-1292

See merge request espressif/esp-idf!5505
2019-07-15 21:21:09 +08:00
9b507c45c8 ws_client: fix double delete issue in ws client initialization 2019-07-15 13:15:07 +02:00
ffaee97e81 soc/esp32s2beta: Exclude DPORT check 2019-07-15 06:51:03 +00:00
d4ca0e186d esp32s2beta: dport_access simplify
Closes: IDF-755
2019-07-15 06:51:03 +00:00
034440b85d esp_wifi: fix smartconfig crash when no AP is found
Fix the bug that smartconfig crashes when no AP is found during smartconfig scan.
2019-07-15 12:44:03 +08:00
fdab15dc76 Merge branch 'bugfix/modify_wifi_country_struct' into 'master'
esp32: make wifi_country_t in idf consistent with VNC

See merge request espressif/esp-idf!5463
2019-07-15 12:41:59 +08:00
6ae352c3a0 Merge branch 'bugfix/fix_regression_with_setting_component_dir_in_early_expansion' into 'master'
cmake: set COMPONENT_DIR in early expansion

Closes IDFGH-1506

See merge request espressif/esp-idf!5518
2019-07-15 11:05:21 +08:00
17e637afa3 Merge branch 'bugfix/docs_update_openssl_command' into 'master'
mqtt: update example documentation on generating a certificate for ssl authentication to hosts

See merge request espressif/esp-idf!5220
2019-07-15 10:53:37 +08:00
bd0a5d4c8b Merge branch 'feature/esptool_py_use_component_properties' into 'master'
esptool_py: use component property to simplify arg file generation

See merge request espressif/esp-idf!5312
2019-07-15 10:52:15 +08:00
3eda52f6cd mqtt: update example documentation on generating a certificate for ssl authentication to hosts
Closes https://github.com/espressif/esp-idf/issues/3593
2019-07-14 16:05:50 +02:00
5588b22796 Merge branch 'bugfix/fix_wps_memory_leak' into 'master'
WPS: fix wps memory leak

Closes WIFI-630 and WIFI-644

See merge request espressif/esp-idf!5314
2019-07-14 17:19:16 +08:00
8f2d13d9db WiFi: Modify the wifi_country struct in VNC to keep it consistent with IDF.
1, Modfy wifi_country struct
    2, Add md5 check esp_wifi_types.h
    3, Add md5 check esp_wifi.h
2019-07-14 15:10:11 +08:00
3d95b63686 Merge branch 'doc/heap_thread_safety' into 'master'
docs: Add notes about thread safety and using heap from ISRs

Closes IDFGH-1502

See merge request espressif/esp-idf!5516
2019-07-14 14:48:14 +08:00
fdece759d8 Merge branch 'bugfix/fix_the_watchdog_during_WiFi_scan_BLE_scan' into 'master'
fix the watchdog bug during WiFi scan and BLE scan

See merge request espressif/esp-idf!5521
2019-07-14 14:40:33 +08:00
0e07b85d2f wifi_prov_mgr : Added missing esp_event_post() for WIFI_PROV_END events 2019-07-13 15:48:23 +05:30
d1bf08d4ad coexist: fix the watchdog bug during WiFi scan and BLE scan 2019-07-12 20:23:59 +08:00
d3e814fe19 cmake: set COMPONENT_DIR in early expansion
Gives same treatment to COMPONENT_DIR as COMPONENT_PATH in
https://gitlab.espressif.cn:6688/espressif/esp-idf/merge_requests/4557

Closes https://github.com/espressif/esp-idf/issues/3771
2019-07-12 16:22:18 +08:00
1dec976fba Update esp_config and add new feature
Closes https://github.com/espressif/esp-idf/issues/3372
2019-07-12 11:42:48 +05:30
8795f1ac86 Fixed the bug that the malloc memory size is smaller than the actual required.
Merges https://github.com/espressif/esp-idf/pull/3757
2019-07-12 09:51:41 +08:00
0f27c38855 docs: Add notes about thread safety and using heap from ISRs
Closes https://github.com/espressif/esp-idf/issues/3768
2019-07-12 11:09:00 +10:00
0114af25da Merge branch 'feature/vfs_pread' into 'master'
VFS: Implement pread() and pwrite()

Closes IDFGH-1211

See merge request espressif/esp-idf!5422
2019-07-11 19:33:33 +08:00
6a8fe5cf79 Update RMT driver for esp32s2beta 2019-07-11 19:15:05 +08:00
cbc153786d Merge branch 'feature/esp32s2beta_update_i2c_driver' into 'feature/esp32s2beta'
feat(i2c): update i2c driver for esp32s2beta

See merge request espressif/esp-idf!5256
2019-07-11 17:30:06 +08:00
6c865a84ff 1, Fix wps memory leak.
2, Add a queue to save wps rx eapol frame.
  3, Add data lock protect wpa2_sig_cnt.
  4, Add a queue to save wpa2 rx rapol frame.
2019-07-11 08:57:31 +00:00
577d2c5e2b Merge branch 'bugfix/parttool_baud' into 'master'
partition_table: Add baud option to parttool and otatool

Closes IDFGH-1483

See merge request espressif/esp-idf!5494
2019-07-11 14:53:54 +08:00
41062bea99 VFS: Implement pread() and pwrite()
Closes https://github.com/espressif/esp-idf/issues/3515
2019-07-11 06:20:21 +00:00
1ea68e6093 Merge branch 'feature/build_example_make_on_trigger' into 'master'
ci: don't build examples with Make in regular jobs

See merge request espressif/esp-idf!5498
2019-07-11 13:59:15 +08:00
65582291ad Merge branch 'bugfix/unit_test_app_size' into 'master'
unit-test-app: split default, release, single_core configs

See merge request espressif/esp-idf!5497
2019-07-11 13:27:30 +08:00
9b5a3ca9fc Merge branch 'feature/cleanup_fast_crypto_files' into 'master'
wpa_supplicant: Cleanup fast_xxx modules that use duplicate code

See merge request espressif/esp-idf!5190
2019-07-11 10:26:45 +08:00
663ed11509 unit-test-app: use stripped config name in test case ID:
We could split cases of same config into multiple binaries as we have limited rom space. So we should regard those configs like `default` and `default_2` as the same config.
2019-07-11 10:01:05 +08:00
edd7f90b77 ci: don't build examples with Make on pushes
Still build the examples with make on:
- triggered pipelines
- master, release branches, tags
- scheduled and manual (web) pipelines
2019-07-10 17:16:53 +02:00
56e3f2780d ci: add unit test job 2019-07-10 22:44:11 +08:00
41b6811f45 unit-test-app: split default, release, single_core configs 2019-07-10 22:44:11 +08:00
3552ca4d6a app_update: Add the baud option into otatool 2019-07-10 15:09:46 +02:00
3f47269211 app_update: Fix argument of ParttoolTarget 2019-07-10 15:09:46 +02:00
aa0c5f03be Add --baud option to parttool
Closes https://github.com/espressif/esp-idf/pull/3753
2019-07-10 15:09:46 +02:00
900df44546 wpa_supplicant: Cleanup fast_xxx modules that use duplicate code
wpa_supplicant is using MbedTLS API's for crypto algorithms. For
calling them a duplicate set of modules is maintained prepended
with 'fast_'. Remove these and use flag USE_MBEDTLS_CRYPTO
instead to separate modules calling MbedTLS API's from native
implementation.
2019-07-10 14:53:20 +05:30
847e00d17b Merge branch 'bugfix/idf_exe_crash' into 'master'
tools: fix idf.py.exe crash on Windows 7

Closes IDFGH-1471

See merge request espressif/esp-idf!5484
2019-07-10 16:20:13 +08:00
fbc8e35577 Merge branch 'bugfix/btdm_compile_error_with_new_toolchain' into 'master'
components/bt: Fix compile error with new toolchain

See merge request espressif/esp-idf!5444
2019-07-10 15:28:49 +08:00
667113cf94 feat(i2c): update i2c driver for esp32s2beta 2019-07-10 11:41:36 +08:00
6a3c5905ed Merge branch 'bugfix/docs_recover_some_build_time' into 'master'
docs: Remove building of zipped HTML docs from build process and consequently...

See merge request espressif/esp-idf!5467
2019-07-10 10:06:32 +08:00
058ef98c33 Merge branch 'feature/cmake_default_build_system' into 'master'
cmake: Make CMake the default build system

Closes IDF-198 and IDF-325

See merge request espressif/esp-idf!5328
2019-07-10 08:16:39 +08:00
409181361f Merge branch 'bugfix/fix_flash_read_error_in_dio_26MHz_mode' into 'master'
bugfix(flash): fix flash read error in DIO/26MHz mode

See merge request espressif/esp-idf!5381
2019-07-10 08:13:35 +08:00
e6e1792946 tools: update idf_exe to 1.0.1 2019-07-09 14:15:09 +02:00
15bcb79712 idf_exe: bump version to 1.0.1 2019-07-09 14:15:09 +02:00
76dc87e9ad idf_exe: fix NULL pointer passed to WriteFile
For an unknown reason, passing NULL pointer instead of &written worked
on Windows 10 and on Windows 7 when stdout is not redirected.

Closes https://github.com/espressif/esp-idf/issues/3740
2019-07-09 14:15:09 +02:00
896d675248 idf_tools.py: add another platform string to handle Windows x86 2019-07-09 14:11:19 +02:00
6410f7a259 cmake: Fix some bugs building mconf-idf from scratch
- Makefile didn't quite work with out-of-tree build unless there was already an in-tree build done.
- CMake needs to delete some of the in-tree build artifacts or they're used instead of the correct
 files.
2019-07-09 20:02:44 +08:00
c8f5f47d5d Merge branch 'bugfix/fix_uart_wait_done_bug' into 'master'
Driver(UART):  Fixed two UART issues

Closes IDFGH-1348

See merge request espressif/esp-idf!5340
2019-07-09 18:39:02 +08:00
80e9faaf1c docs: Move Legacy Get Started guide to the Related Documents section 2019-07-09 20:35:34 +10:00
f8c107fbe3 components/bt: Fix compile error with new toolchain
Closes https://github.com/espressif/esp-idf/issues/3331
Closes https://github.com/espressif/esp-idf/issues/3734
2019-07-09 17:50:43 +08:00
9583c8d037 docs: Rephrase the warning about not requiring MSYS2 on Windows 2019-07-09 14:32:26 +10:00
05ac8cfb6d docs: Update description for Eclipse+Cmake support not ready yet 2019-07-09 14:32:26 +10:00
222146845c docs: Make CMake build system default, mark GNU Make as legacy option
All `-cmake` suffixes are removed
Where a GNU Make option is renamed, the `-legacy` suffix is used
2019-07-09 14:32:26 +10:00
27a6f84e7f Merge branch 'bugfix/eth2ap_example' into 'master'
temporarily work around for fixing eth2ap

Closes IDFGH-1458 and IDFGH-1456

See merge request espressif/esp-idf!5441
2019-07-09 12:20:44 +08:00
ce9600ec81 Merge branch 'docs/rename_partition_addr_param_pr3750' into 'master'
esp_partition_erase_range(): rename parameter "start_addr" to "offset"

See merge request espressif/esp-idf!5469
2019-07-09 12:18:38 +08:00
2a5b02097b cmake: do not force use of new signature for target_link_libraries 2019-07-08 19:43:57 +08:00
74140b0cfb Merge branch 'feature/cmake_proto_build' into 'master'
cmake : Add CMakeLists.txt and update READMEs for re-compilation of proto files

Closes IDF-725

See merge request espressif/esp-idf!5442
2019-07-08 19:13:32 +08:00
62ed221daf docs: Functional renaming commit for CMake-as-default
Rename all the files which will be edited substantially in the next commit, without changing their
contents

Docs will not build for this ocmmit.

This is done so that git doesn't decide we renamed xxx-cmake -> xxx-legacy in the next commit, which
is what it will infer otherwise (and makes rebasing more of a pain than it should be)
2019-07-08 17:31:27 +10:00
86dbe9299a docs: Load page redirects from a file instead of inline in config 2019-07-08 17:31:27 +10:00
47bbb107a8 build system: Use CMake-based build system as default when describing commands 2019-07-08 17:31:27 +10:00
d6c2dad101 esp_partition_erase_range(): rename parameter "start_addr" to "offset"
The name "start_addr" (which goes straight into the docs) implies
it's an absolute address while in fact it's an offset into the
partition like what's used in all the other esp_partition_*
functions.

So in order to avoid confusion make the name consistent with the
parameter names used for the other partition functions and call it
"offset".

Merges https://github.com/espressif/esp-idf/pull/3750
2019-07-08 17:29:05 +10:00
f6ad7f564d Merge branch 'bugfix/otadata_operations_do_not_use_esptool_configs' into 'master'
Fix Make otadata operations do not use esptool configs

Closes IDFGH-686

See merge request espressif/esp-idf!4636
2019-07-08 15:19:30 +08:00
c25fe765a9 Merge branch 'feature/esp_http_client_tx_buf_size' into 'master'
esp_http_client: separate buffer_size config option for transmit

See merge request espressif/esp-idf!5337
2019-07-08 15:15:14 +08:00
e0360bf156 temporarily work around for fixing eth2ap
Closes https://github.com/espressif/esp-idf/issues/3726
Closes https://github.com/espressif/esp-idf/issues/3728
2019-07-08 15:05:09 +08:00
363f3e8311 docs: Remove building of zipped HTML docs from build process and consequently from Downloads as many users don't use that. We are still providing PDF documentation for people who prefer viewing docs off-line. Removal of this build step is expected to save almost 10 minutes of build time and resolve issue of build failures because of hitting 40 min build time limit on Read The Docs. 2019-07-08 13:19:56 +08:00
c3cc096af0 Merge branch 'ci/cmake_examples_multichip_support' into 'master'
ci: multichip build support for examples

See merge request espressif/esp-idf!5384
2019-07-08 12:29:25 +08:00
09a63cca51 bugfix(UART): fixed two UART issues:
1. uart_wait_tx_done works incorrect when sending a byte of data.
2. uart_set_rx_timeout sets an incorrect rx timeout value when ref_tick is enabled

closes https://github.com/espressif/esp-idf/issues/3631
2019-07-08 12:27:14 +08:00
0f50af0a12 Merge branch 'bugfix/supplicant_security_fixes' into 'master'
wpa_supplicant: Fix sprintf security bugs.

Closes WIFI-624

See merge request espressif/esp-idf!5295
2019-07-08 11:13:20 +08:00
1587770cbb Merge branch 'bugfix/improve_spi_timing_for_flash' into 'master'
bugfix(flash): improve spi cs timing settings for flash

See merge request espressif/esp-idf!4964
2019-07-08 11:11:03 +08:00
266baa8839 bugfix(flash): fix flash read error in DIO/26MHz mode 2019-07-08 01:50:07 +00:00
1935a5a93c Merge branch 'bugfix/gcov_example_report_cmake_target' into 'master'
gcov_example: Adds cmake target to generate report

Closes IDF-727

See merge request espressif/esp-idf!5403
2019-07-08 09:30:11 +08:00
ee1743af70 Merge branch 'bugfix/confgen_break' into 'master'
tools: Fix indentation in confgen.py

See merge request espressif/esp-idf!5460
2019-07-08 09:29:09 +08:00
0f147e0a32 Merge branch 'ci/support_build_helloworld_esp32s2beta' into 'feature/esp32s2beta'
ci: support to build esp32s2beta simple examples

See merge request espressif/esp-idf!5383
2019-07-08 09:16:07 +08:00
25ab8380c8 ci: support to build esp32s2beta simple examples 2019-07-08 09:16:06 +08:00
d67b9403e8 Merge branch 'feature/tcp_transport_pass_errors_stage1' into 'master'
esp-tls: capturing specific errors to be available in tcp_transport and then in application code

See merge request espressif/esp-idf!4782
2019-07-08 08:51:29 +08:00
0a65cf73fa Merge branch 'feature/prov_mgr_event_loop' into 'master'
Wi-Fi Provisioning : Add support for esp_event

See merge request espressif/esp-idf!4857
2019-07-07 13:40:18 +08:00
274d7fe12a Merge branch 'feature/lwip_2.1.2_idf' into 'master'
lwip_2.1.2 for idf_4.0

See merge request espressif/esp-idf!5374
2019-07-07 13:33:41 +08:00
fa02598b5c lwip_2.1.2 for idf_4.0 2019-07-07 01:51:45 +00:00
138c941fad Merge branch 'mesh/use_event_library' into 'master'
Mesh/use event library

See merge request espressif/esp-idf!4800
2019-07-06 21:55:21 +08:00
f3d6219c46 tools: Fix indentation in confgen.py 2019-07-06 09:17:31 +02:00
ae46f04997 wpa_supplicant: Fix sprintf security bugs.
Revert back to using os_snprintf instead of sprintf.

Closes WIFI-624
2019-07-06 04:22:53 +00:00
d6c40c7c1d bugfix(flash): improve spi cs timing settings for flash
cs setup time is recomemded to be 1.5T, and cs hold time is recommended to be 2.5T.
(cs_setup = 1, cs_setup_time = 0; cs_hold = 1, cs_hold_time = 1)
2019-07-05 21:21:17 +08:00
068a2dcb32 mesh: update mesh events demonstration 2019-07-05 21:14:33 +08:00
a272e7204d mesh: use new event library 2019-07-05 21:14:30 +08:00
783ddd1e05 Merge branch 'cleanup/remove_redundant_tags_file' into 'master'
wpa_supplicant: Remove tags file which was added by mistake

See merge request espressif/esp-idf!5457
2019-07-05 21:11:41 +08:00
bd4591b053 esp_http_client: separate buffer_size config option for transmit
Merges https://github.com/espressif/esp-idf/pull/3528

Signed-off-by: Jitin George <jitin@espressif.com>
2019-07-05 13:04:35 +00:00
f16f4297cd Merge branch 'doc/power_management_update_with_bt_changes' into 'master'
doc/power_management_update_with_bt_changes

See merge request espressif/esp-idf!5170
2019-07-05 21:03:52 +08:00
27628ef133 Merge branch 'doc/add_ble_mesh_doxyfile' into 'master'
ble_mesh: add Doxyfile for core apis & model apis

See merge request espressif/esp-idf!5401
2019-07-05 20:55:39 +08:00
98cf38ca9c cmake : Add CMakeLists.txt and update READMEs for re-compilation of proto files 2019-07-05 18:20:15 +05:30
c849f7bfb6 Merge branch 'mesh/bugfix_0628_master' into 'master'
mesh: bugfix

Closes WIFI-628, WIFI-638, WIFI-635, WIFI-582, WIFI-130, WIFI-622, WIFI-579, WIFI-428, and WIFI-451

See merge request espressif/esp-idf!5437
2019-07-05 20:48:03 +08:00
2926cd09a2 gcov_example: Adds cmake target to generate report
Closes IDF-727
2019-07-05 12:44:35 +00:00
534062dd3b Merge branch 'bugfix/btdm_fix_rxwinsz_assert_in_wifi_ble_coex' into 'master'
component/bt: fix rxwinsz assert in ble and wifi coex

See merge request espressif/esp-idf!5434
2019-07-05 20:27:33 +08:00
46c8497f01 Merge branch 'bugfix/prov_tool_desc_readme' into 'master'
esp_prov : Minor refactoring in argument dependent logic and other changes

See merge request espressif/esp-idf!5430
2019-07-05 17:18:32 +08:00
181fd70a9a ci: multichip build support for examples 2019-07-05 17:06:25 +08:00
773ddcf0ff wpa_supplicant: Remove tags file which was added by mistake
Merge request idf/esp-idf!5219 added a ctags 'tags' file to
the repository by mistake. Remove it.
2019-07-05 14:23:21 +05:30
703e98eb98 wifi_prov_mgr : Updated the set of WIFI_REASON_ codes used for setting WIFI_PROV_STA_AUTH_ERROR 2019-07-05 08:41:27 +00:00
9f1033862d wifi_prov_mgr : Free memory allocated by cJSON_Print 2019-07-05 08:41:27 +00:00
a13cc7da7a Provisioning : Manager example updated to use esp_event_loop feature 2019-07-05 08:41:27 +00:00
0e8bd1699d Wi-Fi Provisioning : Manager docs updated with information about esp_event_loop support 2019-07-05 08:41:27 +00:00
69ade757e2 Wi-Fi Provisioning : Manager now uses esp_event to catch system events and emit provisioning events to the default event loop
List of changes:
* Deprecated public API wifi_prov_mgr_event_handler() and added private function wifi_prov_mgr_event_handler_internal(), registered with the default event loop for catching WIFI and IP system events
2019-07-05 08:41:27 +00:00
f79813ff86 Merge branch 'feature/tools_script_to_switch_submodules' into 'master'
tools: Fix up relative submodule URLs for forks

See merge request espressif/esp-idf!5421
2019-07-05 16:16:58 +08:00
d64d97743f Merge branch 'bugfix/efuse_secure_version_emulate' into 'master'
efuse: Fix mode EFUSE_SECURE_VERSION_EMULATE

See merge request espressif/esp-idf!5446
2019-07-05 16:05:26 +08:00
c24c5cf164 Merge branch 'feature/gdbstub_multi_target' into 'master'
gdbstub multi-target support

Closes IDF-466

See merge request espressif/esp-idf!5246
2019-07-05 14:33:54 +08:00
c516819ba6 mesh: bugfix
1. resend eb which are pending in g_ic.tx_buf due to channel switch.
2. add lock for mgmg/xon/bcast to protect send from user flush.
3. softap: add check if secondary offset is correct when start softap.
4. softap: in inactive timer handler, add check if child bss is removed to avoid removing it again.
5. disable A-MPDU for non-root.
6. fix reusing a freed eb.
7. fix when node becomes root, it does not record assoc value to nvs.
8. discard unnecessary forwarded group packets.
9. fix toDS state is not updated in time.
10. fix s_sta_cnx_times is not cleared when deinit causes root sends ADD annoucement.
11. root: increase beacon timeout time from 6 seconds to 15 seconds to delay initiation of reconnection.
12. add esp_mesh_get_tsf_time to return TSF time.
13. send the whole routing table multi-times.
14. clear candidate settings if not receive candidate beacon within 8 seconds.
2019-07-05 13:17:43 +08:00
c9cf0afb6e tools: Add a script for switching to real submodules in forks 2019-07-05 11:12:06 +07:00
b54762597a Avoid 'redirecting to' warnings when cloning 2019-07-05 11:12:06 +07:00
nif
e72a09ee27 Make submodules work in forks
Merges https://github.com/espressif/esp-idf/pull/3721
2019-07-05 11:12:06 +07:00
7ef42f2596 Merge branch 'fix/nvs_util_key_len' into 'master'
nvs_util: Add check for key len in input csv file

See merge request espressif/esp-idf!5392
2019-07-05 10:34:55 +08:00
94e0569c2b make, cmake: pass config esptool args for otatool invocation
Closes https://github.com/espressif/esp-idf/issues/3135
2019-07-05 02:26:00 +00:00
2360d882d9 parttool, otatool: accept esptool args 2019-07-05 02:26:00 +00:00
8be982f60c Merge branch 'feature/mfg_util_optimise' into 'master'
mfg_util: Optimise by adding subparser changes w.r.t similar changes in nvs util changes

See merge request espressif/esp-idf!5336
2019-07-05 10:08:10 +08:00
cc75721f9c mfg_util: Optimise by adding subparser changes w.r.t similar changes in nvs util changes 2019-07-05 01:13:27 +00:00
84b2fa4c1c nvs_util: Add check for key len in input csv file
Closes https://github.com/espressif/esp-idf/issues/3113
2019-07-05 01:12:41 +00:00
30819a8151 Merge branch 'bugfix/tcp_transport_use_without_list' into 'master'
tcp transport: fix minor memory leak when ssl transport used separately

See merge request espressif/esp-idf!5206
2019-07-05 09:11:10 +08:00
fda1887260 Merge branch 'feature/nimble_example_tests' into 'master'
Add NimBLE bleprph,blecent,blehr example tests

See merge request espressif/esp-idf!4420
2019-07-05 08:14:05 +08:00
bfd1eeefa2 Add NimBLE bleprph,blecent,blehr example tests 2019-07-05 08:14:04 +08:00
d1433564ec ws_client: removed dependency on internal tcp_transport header 2019-07-04 20:55:10 +02:00
dc16b8243f esp_http_client: added example test case to verify error code received when connecting to non-existent url 2019-07-04 20:55:10 +02:00
a001eb39bf http_client: disconnect event to read last occurred error in esp-tls 2019-07-04 20:55:10 +02:00
587739391c esp-tls: extending error handle to contain error descriptors with last mbedtls failure and latest certificate verification result flags, reworked tcp_transport to use this error handle 2019-07-04 20:55:10 +02:00
2972f96982 esp-tls: capturing specific errors to be available in tcp_transport and then in application code 2019-07-04 20:55:10 +02:00
cd89182458 Merge branch 'bugfix/confgen_avoid_write_to_conf' into 'master'
tools: avoid using directly _write_to_conf from Kconfiglib

Closes IDFGH-1246

See merge request espressif/esp-idf!5423
2019-07-04 22:36:23 +08:00
564dbabf49 Merge branch 'bugfix/confgen_hex_value' into 'master'
tools: Fix hex parsing in confgen.py

Closes IDFGH-1273

See merge request espressif/esp-idf!5439
2019-07-04 22:35:54 +08:00
87c35c71b9 Merge branch 'bugfix/fix_tools_idf_tools_exception_with_python3' into 'master'
CI: fix CI tools exception with python3

Closes IDF-769

See merge request espressif/esp-idf!5443
2019-07-04 22:35:31 +08:00
09ee721932 efuse: Fix mode EFUSE_SECURE_VERSION_EMULATE 2019-07-04 13:34:35 +00:00
8bed3a3dd2 Merge branch 'feature/support_spi_ethernet' into 'master'
ethernet: support dm9051

Closes IDFGH-1443 and IDFGH-1439

See merge request espressif/esp-idf!5345
2019-07-04 21:30:52 +08:00
f4f59964a3 Merge branch 'feature/wifi_refactor_smartconfig_to_esp_event' into 'master'
esp_wifi: refactor smartconfig callback to use esp event

Closes IDF-268

See merge request espressif/esp-idf!4806
2019-07-04 21:16:57 +08:00
6029ef1b58 component/bt: fix rxwinsz assert in ble and wifi coex 2019-07-04 19:44:59 +08:00
cb42c29252 ethernet: support dm9051
1. move resource allocation from xxx_init to xxx_new
2. fix enabling tx checksum insertion by mistake
3. iperf example: enlarge max arguments
4. add examples for spi-ethernet

Closes https://github.com/espressif/esp-idf/issues/3715
Closes https://github.com/espressif/esp-idf/issues/3711
2019-07-04 19:38:13 +08:00
a831fe596b Merge branch 'bugfix/btdm_conn_fail_with_some_speaker' into 'master'
components/bt: Fix connect fail with some speakers

See merge request espressif/esp-idf!5358
2019-07-04 19:23:19 +08:00
29d1d2bd38 esp_wifi: refactor smartconfig callback to use esp event 2019-07-04 18:00:04 +08:00
61923d37b6 esp_prov : Minor refactoring in argument dependent logic
Other changes:
* Command line argument name and descriptions updated and formatted
* Some exception messages updated for clarity
* READMEs updated for tool and all provisioning examples
* Minor update in example test scripts due to change in esp_prov.get_transport() API
* Transport_HTTP now forces connect on initialization
2019-07-04 15:02:07 +05:30
edbcb5b295 esp_transport_destroy: Fix memory leak
if tcp_transport component was used separately (e.g. using tranpsort_ssl.h directly without building list of transport) then it leaks memory on unitialization

Merges https://github.com/espressif/esp-idf/pull/3541
Closes https://github.com/espressif/esp-idf/issues/3531

Signed-off-by: David Cermak <cermak@espressif.com>
2019-07-04 11:07:41 +02:00
412dc95168 tcp_transport: added basic unit tests for init/destroy transports in lists or when used separately 2019-07-04 11:07:41 +02:00
510042160d tools: avoid using directly _write_to_conf from kconfiglib
Closes https://github.com/espressif/esp-idf/issues/3543
2019-07-04 10:35:34 +02:00
3bd4003e98 tools: Fix hex parsing in confgen.py
Closes https://github.com/espressif/esp-idf/issues/3568
2019-07-04 10:35:03 +02:00
a626061f3c tools: fix exception in checkout ref script:
decode bytes before searching with RegEx
2019-07-04 16:31:35 +08:00
50af558df9 update pm document with changes in bluetooth that supports automatic light sleep in case that external 32.768KHz crystal is used as the sleep clock
If bluetooth modem sleep is enabled and "External 32kHz crystal" is used as bluetooth sleep clock, the power management lock "ESP_PM_NO_LIGHT_SLEEP" in bluetooth is released for the periods of time when Bluetooth enters modem sleep. In this case automatic light sleep is allowed.
2019-07-04 07:14:02 +00:00
9ecd0436f5 tools: fix idf_tools.py exception with python3
use `subprocess.Popen` when catch TypeError:

```
Traceback (most recent call last):
  File "tools/idf_tools.py", line 1249, in <module>
    main(sys.argv[1:])
  File "tools/idf_tools.py", line 1245, in main
    action_func(args)
  File "tools/idf_tools.py", line 1038, in action_install
    tool_obj.find_installed_versions()
  File "tools/idf_tools.py", line 468, in find_installed_versions
    ver_str = self.check_version()
  File "tools/idf_tools.py", line 426, in check_version
    version_cmd_result = run_cmd_check_output(cmd, None, extra_paths)
  File "tools/idf_tools.py", line 176, in run_cmd_check_output
    result = subprocess.run(cmd, capture_output=True, check=True, input=input_text)
  File "/opt/pyenv/pyenv-1.2.6/versions/3.5.5/lib/python3.5/subprocess.py", line 383, in run
    with Popen(*popenargs, **kwargs) as process:
TypeError: __init__() got an unexpected keyword argument 'capture_output'
```
2019-07-04 15:06:00 +08:00
c94339c559 Merge branch 'doc/fatal_errors_zh_CN' into 'master'
zh_CN translation of fatal-errors

See merge request espressif/esp-idf!4418
2019-07-04 15:00:16 +08:00
471f4b2f0e zh_CN translation of fatal_error 2019-07-04 14:01:53 +08:00
533c080bc1 Merge branch 'bugfix/cmake_mconf_build' into 'master'
cmake: Fix some bugs building mconf-idf from scratch

See merge request espressif/esp-idf!5413
2019-07-04 13:38:20 +08:00
0794a26f7b Merge branch 'doc/merge_make-related_documents' into 'master'
Merge make-related documents:

See merge request espressif/esp-idf!5304
2019-07-04 13:16:18 +08:00
b24341a664 Merge make-related documents:
1. Moved get-started files, 7 documents in total, from get-started-cmake folder to hw-reference folder;
2. Deleted get-started files, 7 documents in total, in get-started folder;
3. Updated links in get-started-cmake/index.rst and in get-started/index.rst;
4. Modified descriptions for build system in these files.
2019-07-04 13:16:18 +08:00
b293518ec7 Merge branch 'feature/optimize_ci_config_file' into 'master'
CI: use features from latest Gitlab in CI config file

See merge request idf/esp-idf!4896
2019-07-04 10:56:45 +08:00
28f1cdf5ed Merge branch 'feature/local_ctrl_no_sec' into 'master'
ESP Local Ctrl Feature Added

See merge request idf/esp-idf!5348
2019-07-04 00:45:29 +08:00
b75f8b1b20 ESP Local Control Feature Added
List of changes:
* New component esp_local_ctrl added
* Example added under examples/protocols/esp_local_ctrl
* Documentation added under protocols/esp_local_ctrl
* Demo client side app esp_local_ctrl.py added under examples/protocols/esp_local_ctrl/scripts
* protocomm_ble : protocomm_ble_config_t given struct name for allowing forward declaration
* esp_prov/transport_softap renamed to transport_http
* transport_http module supports verification of server certificate
* transport_http module performs name resolution before connection
2019-07-03 21:31:04 +05:30
lly
ff40911a51 ble_mesh: add Doxyfile for core apis & model apis 2019-07-03 17:58:09 +08:00
c5c853a8ca Merge branch 'bugfix/vfs_kconfig' into 'master'
VFS: Fix Kconfig prefix

See merge request idf/esp-idf!5431
2019-07-03 17:21:33 +08:00
a1ae89f8e2 Merge branch 'bugfix/bt_config_option_test' into 'master'
Fix the irrelevant characters added to test the config options

See merge request idf/esp-idf!5436
2019-07-03 17:17:15 +08:00
daa71d5e18 Fix the irrelevant characters added to test the config options 2019-07-03 17:17:14 +08:00
e390dd3eab CI: use include to split large CI config file 2019-07-03 16:59:50 +08:00
6eca80a989 CI: try to use the correct branch of other projects used in CI:
1. revision defined in bot message
2. branch name (or tag name) of current IDF
3. CI_MERGE_REQUEST_TARGET_BRANCH_NAME
4. branch name parsed from `git describe`
5. default branch
2019-07-03 16:53:34 +08:00
81dd9d4e27 CI: use parallel attribute in CI config file 2019-07-03 16:53:34 +08:00
47da3d3334 Merge branch 'bugfix/idf_py_reconfigure_for_ccache_flag' into 'master'
idf.py: Run reconfigure on ccache option change.make --no-ccache default

See merge request idf/esp-idf!5429
2019-07-03 16:51:12 +08:00
1e7ffbf943 Merge branch 'bugfix/uuid_value' into 'master'
Correct UUID value for ESP_GATT_UUID_ENVIRONMENTAL_SENSING_SVC

See merge request idf/esp-idf!5409
2019-07-03 16:49:30 +08:00
46a268dc78 Correct UUID value for ESP_GATT_UUID_ENVIRONMENTAL_SENSING_SVC 2019-07-03 16:49:30 +08:00
2639d5b6c3 cmake: Fix some bugs building mconf-idf from scratch
- Makefile didn't quite work with out-of-tree build unless there was already an in-tree build done.
- CMake needs to delete some of the in-tree build artifacts or they're used instead of the correct
 files.
2019-07-03 18:40:55 +10:00
916df0df14 Merge branch 'bugfix/from_github' into 'master'
docs: PRs from GitHub containing documentation bug fixes and corrections

See merge request idf/esp-idf!5367
2019-07-03 16:26:55 +08:00
4e7a6d4762 Merge branch 'bugfix/btdm_wrong_bt_lib' into 'master'
components/bt: Fix Wrong bt lib from commit "Bluetooth component refactoring"

See merge request idf/esp-idf!5420
2019-07-03 15:33:55 +08:00
60a3f3e09d components/bt: Fix Wrong bt lib from commit "Bluetooth component refactoring" 2019-07-03 04:44:04 +00:00
3ff01d60a4 Merge branch 'fix/sdio_slave_reset_infloop_leak' into 'master'
sdio_slave: fix the send_flush infinite loop issue

See merge request idf/esp-idf!5365
2019-07-03 08:36:26 +08:00
43eb58da99 VFS: Fix Kconfig prefix 2019-07-02 17:17:18 +02:00
6895ea1624 Merge branch 'feature/ext_flash_partition' into 'master'
Support for partitions in external flash

See merge request idf/esp-idf!5277
2019-07-02 22:18:14 +08:00
56a624e305 ci: add unit test job 2019-07-02 15:21:34 +02:00
5aa019fce6 Replace hardcoded links with link roles 2019-07-02 21:01:52 +08:00
82b3779b2b Fix broken link to components/wifi_provisioning/proto
Merges https://github.com/espressif/esp-idf/pull/3668
2019-07-02 21:00:38 +08:00
b7ca18edcd idf.py Run reconfigure on ccache option change.make --no-ccache default 2019-07-02 13:37:55 +02:00
660eb84da7 Correct links
Closes https://github.com/espressif/esp-idf/issues/3723
2019-07-02 18:22:33 +08:00
8d251d7369 Implement review comments 2019-07-02 18:22:33 +08:00
82ba58db22 Fix reference in jtag debugging section
Merges https://github.com/espressif/esp-idf/pull/3617

Signed-off-by: Stefan Venz <stefan.venz@protonmail.com>
2019-07-02 17:49:49 +08:00
d1ceaf81ae example/wifi/scan: fix README grammar
Merges https://github.com/espressif/esp-idf/pull/3678
2019-07-02 17:49:49 +08:00
b0168310db Typo correction
Merges https://github.com/espressif/esp-idf/pull/3604
2019-07-02 17:49:49 +08:00
66e0b2f9df gdbstub: move to a separate component, support multiple targets 2019-07-02 11:06:25 +02:00
c730c9e397 nvs: minor host test fixes
Fixes the tests to pass when some files already exist.
Fixes clean target.
Moves CONFIG_NVS_ENCRYPTION definition into sdkconfig.h.
2019-07-02 10:26:06 +02:00
1c17558e6e spi_flash: use same argument types in .h and .c files
Fixes compilations on targets where size_t != uint32_t
2019-07-02 10:26:06 +02:00
ec427a5b43 spi_flash: support for partitions in external flash 2019-07-02 10:26:06 +02:00
ebcb08ec89 host tests: correct definition of CONFIG_SPI_FLASH_USE_LEGACY_IMPL 2019-07-02 10:10:49 +02:00
240192f9fa Merge branch 'bugfix/sec_boot_ota_fail' into 'master'
Bugfix: ota fails with secure boot on for image size greater than 3.2MB

See merge request idf/esp-idf!5263
2019-07-02 14:44:36 +08:00
be5e7e1c6d Merge branch 'feature/nimble-provisioning' into 'master'
NimBLE-Provisioning: Add NimBLE support to existing BLE variant of unified provisioning

See merge request idf/esp-idf!5319
2019-07-02 14:20:11 +08:00
388b350f0d NimBLE-provisioning: Add NimBLE support to unified provisioning framework
- Adds NimBLE stack support to existing BLE variant of unified provisioning.
- Uses scan response to send device name, 128 bit custom UUIDs based on service
  UUID.
- Minimal changes to `app_prov.c`, component.mk, CMakeLists.txt and
  `protocomm_ble.h` to accomodate NimBLE stack for provisioning.
2019-07-02 14:20:10 +08:00
e6623c4a7b Merge branch 'bugfix/esp_timer_delete_from_cb' into 'master'
esp_timer: handle esp_timer_delete in timer task

Closes IDFGH-1143

See merge request idf/esp-idf!5037
2019-07-02 14:16:26 +08:00
4d4fef6da7 Merge branch 'nimble/update_submodule' into 'master'
NimBLE: Update nimble submodule

See merge request idf/esp-idf!5419
2019-07-02 11:26:24 +08:00
396258380a NimBLE: update nimble submodule
- Update submodule to fix https://jira.espressif.com:8443/browse/BT-192.
- Upstream PR: https://github.com/apache/mynewt-nimble/pull/427
2019-07-02 11:26:24 +08:00
55b823cd13 Merge branch 'feature/ringbuffer_support_allocate_memory' into 'master'
ringbuffer: support allocate memory in the ringbuffer before actually send

See merge request idf/esp-idf!5252
2019-07-02 08:41:26 +08:00
18bea96bf5 esp32: verify that RTC_NOINIT_ATTR vars are preserved after WDT reset
Related to https://github.com/espressif/esp-idf/issues/2973
2019-07-01 20:55:10 +00:00
16014079f9 Merge branch 'bugfix/add_extern_c_for_sntp' into 'master'
lwip/sntp: Added extern "C"

See merge request idf/esp-idf!5398
2019-07-02 04:45:30 +08:00
4b42f535ed Add mmu pages available check in non-secure image hash check path.
Made MMU pages available check in `esp_image_format.c`
This now makes it possible to map and process bootoader image as well in chunks when image doesn't fit completely into available free pages.

Signed-off-by: Vikram Dattu <vikram.dattu@espressif.com>
2019-07-01 20:04:15 +00:00
da77dcb0be Changed log level for spi_master
There are lot of prints of `Allocate TX buffer for DMA`
Changed these from `ESP_LOGI` to `ESP_LOGD`

Signed-off-by: Vikram Dattu <vikram.dattu@espressif.com>
2019-07-01 20:04:15 +00:00
eb99b27f2e Bugfix: ota fails with secure boot on for image size greater than 3.2MB
When an OTA image size is larger than 50 MMU pages (approx. 3.2 MB), secure_boot_generate fails while trying to map it into memory:
https://gitlab.espressif.cn:6688/idf/esp-idf/blob/master/components/bootloader_support/src/esp32/secure_boot.c#L72
Instead of trying to map the whole image, secure boot code should split the image into chunks and map them one by one, like it is done in esp_image_format.c:
https://gitlab.espressif.cn:6688/idf/esp-idf/blob/master/components/bootloader_support/src/esp_image_format.c#L372

Closes https://jira.espressif.com:8443/browse/IDF-709

Signed-off-by: Vikram Dattu <vikram.dattu@espressif.com>
2019-07-01 20:04:15 +00:00
bca4afb466 Merge branch 'feature/idf_tools_dir_user_facing' into 'master'
IDF Tools directory: user facing changes

Closes IDF-61

See merge request idf/esp-idf!4808
2019-07-02 01:47:16 +08:00
22dfac7405 mconf-idf: update to v4.6.0.0-idf-20190603 2019-07-01 18:08:02 +02:00
4f5f30d37d tools: add fallback tools.json for IDF v3.x 2019-07-01 18:08:02 +02:00
6f5c7a21ac docs: update CMake getting started guide to use install.bat and export.bat 2019-07-01 18:08:02 +02:00
04d24c750a tools: new installer for Windows 2019-07-01 18:08:02 +02:00
12b6da0388 tools: {install,export}.{bat,sh} tools 2019-07-01 14:51:44 +02:00
3d866694c9 tools.json: add idf.py.exe 2019-07-01 14:51:44 +02:00
916c0c5754 idf.py.exe wrapper program for Windows 2019-07-01 14:51:43 +02:00
1a2bf4d8ff idf_tools: print additional info when download verification fails 2019-07-01 14:51:43 +02:00
a831db7ec0 Merge branch 'bugfix/fix_nimble_flake_issue' into 'master'
Fix failure in flake8 due to incorrect NimBLE path

See merge request idf/esp-idf!5415
2019-07-01 19:22:55 +08:00
a32534497c Fix failure in flake8 due to incorrect NimBLE path 2019-07-01 19:22:55 +08:00
d4276f2242 Merge branch 'enhancement/move_bt_examples' into 'master'
Bluetooth examples restructuring

See merge request idf/esp-idf!4025
2019-07-01 19:21:57 +08:00
cba69dd088 Bluetooth examples restructuring
The existing Bluetooth examples are split as:

1. examples/bluetooth/bluedroid - Bluedroid Host (BT + BLE) examples
   a. examples/bluetooth/bluedroid/classic_bt - Classic BT examples
   b. examples/bluetooth/bluedroid/ble - BLE examples
   c. examples/bluetooth/bluedroid/coex - Classic BT and BLE coex examples
   d. examples/bluetooth/bluedroid/hci - VHCI and HCI UART examples
      i. Rename ble_adv to controller_vhci_ble_adv and move it in hci folder
2. examples/bluetooth/nimble - NimBLE BLE Host + NimBLE Mesh examples
3. examples/bluetooth/esp_ble_mesh - ESP BLE Mesh examples
4. Update documentation references
2019-07-01 19:21:57 +08:00
f8d2188e93 Merge branch 'bugfix/win_flash_app_cmd' into 'master'
tools: Accept CTRL-T + A for app-flash in idf_monitor

Closes IDF-736

See merge request idf/esp-idf!5376
2019-07-01 15:51:44 +08:00
9ef37270f6 Merge branch 'bugfix/make_ccache_opt_in' into 'master'
cmake: make use of ccache opt-in

See merge request idf/esp-idf!5368
2019-07-01 15:48:31 +08:00
e7064df8e7 Merge branch 'bugfix/confgen_windows_command_line' into 'master'
cmake kconfig: Pass environment variables to confgen.py via a file

Closes IDF-711

See merge request idf/esp-idf!5356
2019-07-01 15:26:11 +08:00
4ce00a4829 esp32s2beta: Change esp32-s2 wifi library URL to GitHub 2019-07-01 16:53:28 +10:00
f1e07663c4 cmake: Use environment variables file for all config binaries 2019-07-01 15:54:27 +10:00
26db058339 cmake kconfig: Pass environment variables to confgen.py via a file
Works around "command line too long" errors when using Windows
and CMake < 3.11

Closes IDF-711
2019-07-01 15:54:10 +10:00
687908b1e9 ringbuffer: support to allocate memory on the ringbuffer before send 2019-07-01 11:41:50 +08:00
c5150d16b2 ringbuffer: seperate acquire from send 2019-07-01 11:40:45 +08:00
0c8192f3be Merge branch 'feature/mconf_simple_expand' into 'master'
mconf-idf: Use same 'simple expand' logic, same as kconfig-frontends

See merge request idf/esp-idf!5390
2019-07-01 10:33:35 +08:00
bd69998516 mconf-idf: Use same 'simple expand' logic, same as kconfig-frontends
Previously, wordexp() was used. However for providing Windows builds
of mconf-idf we can't use wordexp() so we use this simplified
environment variable expansion code instead.

The reasoning here is to make the behaviour consistent across Windows
(CMake vs GNU Make), Linux & macOS mconf.
2019-07-01 00:38:55 +00:00
70474ae844 Merge branch 'feature/btdm_avrcp_volume' into 'master'
components/bt: Add AVRCP feature about volume

See merge request idf/esp-idf!5209
2019-06-30 16:40:10 +08:00
f1b8723996 Merge branch 'refactor/new_bt_component' into 'master'
Bluetooth component refactoring

See merge request idf/esp-idf!5366
2019-06-30 16:39:01 +08:00
21165edf41 Bluetooth component refactoring 2019-06-30 16:39:00 +08:00
66e333e352 Merge branch 'feature/move_supplicant_to_idf_new' into 'master'
supplicant/wifi: move supplicant to idf

Closes IDFGH-1233 and WIFI-392

See merge request idf/esp-idf!5219
2019-06-30 14:02:22 +08:00
30d7002731 components/bt: Add AVRCP feature about volume 2019-06-30 03:46:15 +00:00
e2b88207b4 Merge branch 'feature/esp32s2beta_wifi' into 'feature/esp32s2beta'
run WiFi on ESP32SBETA

See merge request idf/esp-idf!5293
2019-06-30 00:40:34 +08:00
c139683024 supplicant/esp_wifi: move supplicant to idf
Move supplicant to idf and do following refactoring:
1. Make the folder structure consitent with supplicant upstream
2. Remove duplicated header files and minimize the public header files
3. Refactor for WiFi/supplicant interfaces
2019-06-29 22:46:52 +08:00
72a5762525 cmake: make use of ccache opt-in 2019-06-29 00:22:57 +00:00
39a5fbdfee Merge branch 'bugfix/idf_py_fix_subcommand_options' into 'master'
idf.py: Fix subcommand options

Closes IDF-740

See merge request idf/esp-idf!5386
2019-06-29 00:15:13 +08:00
dcd5e9cf08 Merge branch 'bugfix/ci_fix_mirror-submodule-update' into 'master'
tools: Keep script behaviour

See merge request idf/esp-idf!5362
2019-06-28 23:57:14 +08:00
4848dfa710 esptool_py: use component property to simplify arg file generation
esptool_py used to create its own custom target to attach properties to.
This commit uses component properties instead, and the APIs used to set
and retrieve those properties in order to simplify generation of
argument files to esptool.py.
2019-06-28 18:14:25 +08:00
c165335554 Merge branch 'bugfix/make_V_flag' into 'master'
gnu make: Make V= behaviour consistent with V=0

Closes IDFGH-1175

See merge request idf/esp-idf!5334
2019-06-28 16:39:44 +08:00
56db269fb5 idf.py: Fix subcommand options 2019-06-28 10:07:38 +02:00
265d7dc4e5 Merge branch 'bugfix/fix_secure_boot_support' into 'master'
Fixes to secure boot support in CMake

See merge request idf/esp-idf!4977
2019-06-28 15:38:59 +08:00
d9ca915fa4 Merge branch 'bugfix/cmake_project_vars_not_set_by_redefinition' into 'master'
cmake: set variables set by project call

See merge request idf/esp-idf!5187
2019-06-28 15:31:10 +08:00
28d79e242f lwip/sntp: Added extern "C"
so that sntp_set_time_sync_notification_cb can be used from c++

Signed-off-by: Konstantin Kondrashov <konstantin@espressif.com>

Merges: https://github.com/espressif/esp-idf/pull/3700
2019-06-28 14:51:28 +08:00
d96379ba0f Merge branch 'feature/nvs_util_decryption' into 'master'
nvs_util: Add NVS decryption feature + Optimisations

See merge request idf/esp-idf!5003
2019-06-28 13:07:24 +08:00
99ef587a05 run WiFi on ESP32SBETA 2019-06-28 11:34:49 +08:00
936720d3ef Merge branch 'feature/add_limitation_for_max_tx_power' into 'master'
esp_wifi: add limitation for setting maximum WiFi TX power

See merge request idf/esp-idf!5331
2019-06-28 11:18:11 +08:00
e5de1991d4 tools: Keep script behaviour 2019-06-28 10:05:31 +07:00
67909fe2a0 ci: test fail on build time works 2019-06-28 10:54:21 +08:00
e4a4063e4c cmake: fix issue with fail at build time
Fix issue that next build retry does not succeed once the requirement is
satisfied.
2019-06-28 10:54:21 +08:00
60a77bea7d docs: remove secure boot and flash encryption from CMake pending features 2019-06-28 10:54:21 +08:00
3ae69484fe esptool_py: do not generate flasher arg files on bootloader build 2019-06-28 10:54:21 +08:00
9edc867c62 bootloader: fix secure boot issues
Do not include bootloader in flash target when secure boot is enabled.
Emit signing warning on all cases where signed apps are enabled (secure
boot and signed images)
Follow convention of capital letters for SECURE_BOOT_SIGNING_KEY variable, since it is
relevant to other components, not just bootloader.
Pass signing key and verification key via config, not requiring
bootloader to know parent app dir.
Misc. variables name corrections
2019-06-28 10:54:21 +08:00
179259f195 components: restore dependency of extra bins on flash target 2019-06-28 10:50:52 +08:00
f332e0c1d6 partition_table: move establishing dependencies to respective components
partition_table: move establishing dependencies to respective components
2019-06-28 10:50:52 +08:00
6a18eaeaf5 esptool_py: fix issue with variable for esptool args
elf2image-only arguments are being added to esptool args meant for
flashing
2019-06-28 10:50:52 +08:00
2adf313838 bootloader_support: move embedding key after component registration
Bootloader build requires verification key to be embedded in the binary.
Under specific configs, this key is generated during build time from the
signing key. Move the key generation to after the component
registration, since non scriptable commands are used in the process
(during early expansion)
2019-06-28 10:50:52 +08:00
13d9c483b3 Merge branch 'bugfix/i2s_apll_clock_fix' into 'master'
driver/i2s: fix apll_clock_rate for different sample rates

See merge request idf/esp-idf!5159
2019-06-28 03:49:11 +08:00
d7d91225d3 Merge branch 'feature/refactor_etherent_driver' into 'master'
add esp_eth component

Closes IDF-324, IDF-637, and IDFGH-1139

See merge request idf/esp-idf!5111
2019-06-28 03:44:44 +08:00
131978d707 Merge branch 'feature/esp_flash_init_functions' into 'master'
esp_flash: add initialization interface for SPI devices

See merge request idf/esp-idf!5306
2019-06-27 20:59:44 +08:00
1352ada4e0 Merge branch 'bugfix/bootloader_header_cxx_guards' into 'master'
bootloader_support: Add C++ header guards

See merge request idf/esp-idf!5349
2019-06-27 19:31:56 +08:00
f56b7d4a1d tools: Accept CTRL-T + A for app-flash in idf_monitor
"CTRL-A" cannot be captured in Windows command line, so "A" can be used
instead.
2019-06-27 12:21:09 +02:00
5d855fcdef esp_wifi: add limitation for setting maximum WiFi TX power
Limit the WiFi TX power range to 10dBm ~ 20.5 dBm
2019-06-27 17:28:59 +08:00
5a12be5162 Merge branch 'bugfix/pc_ble_prep_buf_memcpy' into 'master'
protocomm_ble : Bugfix for unbound memcpy on prepare write buffer

Closes IDFGH-1350

See merge request idf/esp-idf!5284
2019-06-27 16:48:11 +08:00
45364fe54e Merge branch 'bugfix/btdm_fail_to_config_url_in_eir' into 'master'
components/bt: Fix fail to config URL in EIR

See merge request idf/esp-idf!5352
2019-06-27 14:27:35 +08:00
3636e75792 nvs_util: Add NVS decryption feature 2019-06-27 11:51:58 +05:30
d6bd24ca67 esp_flash: add initialization interface for SPI devices 2019-06-27 13:27:27 +08:00
65c0d354e4 spi_common: add interface to get whether the bus is on IOMUX 2019-06-27 13:27:27 +08:00
b76ab9142d spi_common: deprecate some public APIs 2019-06-27 13:27:26 +08:00
28b2e113ca spi_master: move the spi_bus_init function into common header 2019-06-27 13:27:26 +08:00
9805902482 sdio_slave: fix the send_flush infinite loop issue
Also add some helper functions.
2019-06-27 13:24:22 +08:00
e6d229d301 Merge branch 'feature/ringbuffer_static_allocation' into 'master'
Ringbuffers: Add static allocation, refactor, and update API reference

Closes IDFGH-639 and IDFGH-902

See merge request idf/esp-idf!4426
2019-06-27 13:20:01 +08:00
80abb531b5 Merge branch 'feature/remove_mbedtls_cmake_workarounds' into 'master'
mbedtls: remove component CMake file workarounds

Closes #78

See merge request idf/esp-idf!5341
2019-06-27 13:19:42 +08:00
8726676a82 Merge branch 'feature/idf_py_add_positional_args_to_subcommands' into 'master'
idf.py: Make subcommand arguments more flexible

See merge request idf/esp-idf!5198
2019-06-27 13:18:59 +08:00
5d0eb95130 Merge branch 'bugfix/cmake_esptool_args_path' into 'master'
esptool+cmake: Fix path generation for args.in2 file

Closes IDFGH-1409

See merge request idf/esp-idf!5353
2019-06-27 13:12:26 +08:00
83ba2e082c esptool+cmake: Fix path generation for args.in2 file
Path was accidentally generated as build/<absolute path to input file> which creates unexpected path structure on Linux/macOS and breaks Windows (as can't have a directory named "C:".

Regression in e8582e9aa4

Closes https://github.com/espressif/esp-idf/issues/3687
Closes IDFGH-1409
2019-06-27 14:19:03 +10:00
bbafd50662 Merge branch 'bugfix/bt_typo' into 'master'
Fix typo from the commit "Reduce the size of DRAM"

See merge request idf/esp-idf!5347
2019-06-27 10:48:47 +08:00
917589e784 Fix typo from the commit "Reduce the size of DRAM" 2019-06-27 10:48:47 +08:00
6ad2a948cc Merge branch 'doc/add_Chinese_translation_for_power_management_in_api_references' into 'master'
Add Chinese translation to api-reference/system/power-management.rst

See merge request idf/esp-idf!5265
2019-06-26 20:42:57 +08:00
32954e5f90 Add Chinese translation to api-reference/system/power-management.rst
1. Add translation to docs/zh_CN/api-reference/system/power_management.rst
2. Add a link to docs/en/api-reference/system/power_management.rst
2019-06-26 20:42:56 +08:00
74e4554a74 Merge branch 'doc/add_Chinese_translation_for_external-ram_in_api-guides' into 'master'
Add Chinese translation for exteral-ram.rst in api-guides:

See merge request idf/esp-idf!5078
2019-06-26 19:59:21 +08:00
9fbb27b194 Add Chinese translation for exteral-ram.rst in api-guides:
- The draft should be first reviewed by Technical Reviewers;
- Then by Language Reviewer.
2019-06-26 19:59:21 +08:00
4fc411e744 Merge branch 'bugfix/btdm_fix_hci_enhance_conn_complete_evt_unpack_error' into 'master'
component/bt: fix hci enhance connection complete event unpack error

See merge request idf/esp-idf!4889
2019-06-26 16:45:39 +08:00
1c69db44c9 Merge branch 'feature/support_spi_driver_esp32s2beta' into 'feature/esp32s2beta'
spi: support new chip esp32s2beta

See merge request idf/esp-idf!5224
2019-06-26 16:45:02 +08:00
0872efa4ef mbedtls: remove component CMake file workarounds 2019-06-26 08:41:02 +00:00
8a597b865f esp_ringbuf: Add static allocation, refactor, and update API reference
This commit updates does the following:
    - xRingbufferCreateStatic() added to allow ringbuffers via to be statically
      allocated. Docs and unit tests update accordingly. Closes #3064

    - Fix doc typos, closes #3248. Updated API reference regarding to mention
      item size limits of no-split buffers when calling
      xRingbufferGetCurFreeSize() or xRingbufferGetMaxItemSize(), closes #3117.

    - Remove the following deprecated types/functions for v4.0
        - xRingbufferIsNextItemWrapped()
        - xRingbufferAddToQueueSetWrite()
        - xRingbufferRemoveFromQueueSetWrite()
2019-06-26 16:04:38 +08:00
291e25baa6 Merge branch 'bugfix/btdm_add_readme_for_BLE_demos' into 'master'
Component/bt: add readme doc for BLE demos

See merge request idf/esp-idf!4890
2019-06-26 16:04:28 +08:00
aecd0f9ae4 Add subcomand options that become global 2019-06-26 10:00:21 +02:00
afc30b09bc idf.py: Add positional arguments to subcommands 2019-06-26 10:00:21 +02:00
8dc8dd5689 Merge branch 'feature/sntp_update_delay' into 'master'
sntp/l_ip: Add SNTP_UPDATE_DELAY option in Kconfig

Closes IDFGH-337

See merge request idf/esp-idf!5271
2019-06-26 15:54:25 +08:00
bd89b69daa Merge branch 'feature/btdm_add_ble_ancs_demo' into 'master'
Component/bt: add ble ancs demo

See merge request idf/esp-idf!4688
2019-06-26 15:50:06 +08:00
22ed1ec43a Merge branch 'feature/fatfs_r013cp4' into 'master'
FatFS: update to R0.13c patch 4

Closes IDF-698, IDFGH-1012, and IDFGH-1017

See merge request idf/esp-idf!5297
2019-06-26 15:15:41 +08:00
ad62b2b8c0 Merge branch 'feature/prov_wifi_scan_list' into 'master'
Wi-Fi Provisioning  : Feature Wi-Fi Scan List

See merge request idf/esp-idf!4855
2019-06-26 14:53:04 +08:00
84e9e243d0 components/bt: Fix connect fail with some speakers 2019-06-26 14:50:13 +08:00
1a34d65e4c Merge branch 'bugfix/btdm_intr_wdt_after_controller_disable_then_enable' into 'master'
bugfix/btdm_intr_wdt_after_controller_disable_then_enable

See merge request idf/esp-idf!5301
2019-06-26 14:05:48 +08:00
9c0ee28670 wifi_provisioning : Added Wi-Fi Scan list feature to Provisioning Manager
List of changes in components/wifi_provisioning:
* Manager version is now v1.1
* .proto files and protocomm handler added for sending Wi-Fi scan command and receiving scan results
* Implemented handlers for wifi_scan protocomm endpoint
* Update manager context data structure to hold scan state and results
* scheme_softap now runs Wi-Fi in APSTA mode
* Wi-Fi is started in AP mode when provisioning is started. This is necessary for scan list to work
* Docs updates with information about new wifi_scan endpoint

List of changes in tools/esp_prov:
* Added functions for sending and receiving protobuf messages compatible with wifi_scan protocomm endpoint
* Added feature to display/refresh scan results and accept user selection at runtime
* New functions:
  * get_version() : only returns the protocol version string
  * has_capability() : check is a capability is present according to proto-ver response
* wifi_scan feature is provided only if the `wifi_scan` capability is present

Other changes:
* Replace recursive mutex with plain mutex
* assert on return value of mutex give / take calls
* replace all calls with macros ACQUIRE_LOCK and RELEASE_LOCK
* some checks added in scanning related private APIs
* free and nullify scanning context and state if service is stopped while ongoing scan
2019-06-26 05:24:20 +00:00
79ba509384 components/bt: Fix fail to config URL in EIR 2019-06-26 11:58:41 +08:00
90c4827bd2 add esp_eth component 2019-06-26 10:19:23 +08:00
12f4541f19 Merge branch 'bugfix/stdoutflush' into 'master'
Stdoutflush: Flushing stdout to avoid issues with 64k char limits

See merge request idf/esp-idf!4698
2019-06-26 10:07:41 +08:00
c8570ffa6d bootloader_support: Add C++ header guards
As reported on forum https://esp32.com/viewtopic.php?f=13&t=11173&p=45470
2019-06-26 11:26:56 +10:00
2c26eb2213 Merge branch 'feature/flash_encryption' into 'master'
Change flash encryption workflow to development / release

See merge request idf/esp-idf!4125
2019-06-26 09:04:03 +08:00
ba94bbf1f8 Merge branch 'bugfix/esp_https_ota_heap_failure' into 'master'
HTTPS OTA: Removed unnecessary free()

See merge request idf/esp-idf!5048
2019-06-26 09:03:16 +08:00
af430adb34 Merge branch 'feature/esp_tls_server' into 'master'
esp_tls: Add support for server side SSL/TLS connection

See merge request idf/esp-idf!5091
2019-06-26 09:03:08 +08:00
9550176f83 Addressing PR comments 2019-06-26 00:42:13 +00:00
bc48a9c92f Stdoutflush: Flushing stdout to avoid issues with 64k char limits 2019-06-26 00:42:13 +00:00
c404f8b6e9 Merge branch 'feature/upgrade_mbedtls_to_v2.16.1' into 'master'
mbedtls: upgrade to v2.16.2 release

Closes IDF-664

See merge request idf/esp-idf!5130
2019-06-26 08:40:43 +08:00
2b521bba1c Merge branch 'feature/ci_relative_submodules' into 'master'
ci: Use relative submodules and a new cleaning working tree feature

See merge request idf/esp-idf!4877
2019-06-26 08:34:42 +08:00
cdecb67d66 example/https_server: Add default sdkconfig 2019-06-25 23:43:35 +00:00
a8ebde227f esp_https_server: Add support for esp-tls server APIs 2019-06-25 23:43:35 +00:00
8950f94ec7 esp_tls: Add support for server side SSL/TLS connection
Currently, esp-tls supports creation of SSL/TLS connection on the client side.

This commit includes support for creating SSL/TLS connection on the server side.
2019-06-25 23:43:35 +00:00
a2b5a93881 example/simple_ota_example: Fix python formatting and KConfig 2019-06-25 23:41:33 +00:00
83a4e4656f example/simple_ota_example: Add support for skipping OTA server certificate CN field 2019-06-25 23:41:33 +00:00
ab6dd36243 esp_http_client: Add support to disable validation of certificate's CN field 2019-06-25 23:41:33 +00:00
c536c8fa5f tcp_transport: Add API to allow skipping of certificate CN validation 2019-06-25 23:41:33 +00:00
9fa23bc599 example/simple_ota_example: Add example test 2019-06-25 23:41:33 +00:00
7fbedb1ba3 esp_https_ota: Removed unnecessary free()
Closes https://github.com/espressif/esp-idf/issues/3504

Merges https://github.com/espressif/esp-idf/pull/3513

Signed-off-by: Jitin George <jitin@espressif.com>
2019-06-25 23:41:33 +00:00
a68c7c21e1 Improve flash encryption documentation and add Development & Release modes
This MR improves existing flash encryption document to provide simplified steps
Adds two new modes for user: Development & Release
Adds a simple example
Supports encrypted write through make command
2019-06-25 23:41:18 +00:00
eb5cc203f9 protocomm_ble : Bugfix for unbound memcpy on prepare write buffer
Closes https://github.com/espressif/esp-idf/issues/3633
2019-06-25 19:58:19 +00:00
008ad9af47 ci: Use relative submodule URLs over IDF. Correct CI accordindly
Clean up `before_script`s

    Update `check_submodule_sync`

    Remove tools/ci/mirror* stuff
2019-06-25 22:24:45 +07:00
3b3b891282 ci: Remove unused IS_PRIVATE and IS_PUBLIC environment 2019-06-25 22:24:45 +07:00
beaefd3359 Merge branch 'feature/add_nimble_ssc' into 'master'
test: modify test cases for bluedroid

See merge request idf/esp-idf!5208
2019-06-25 23:14:32 +08:00
f14563a47d test: modify test cases for bluedroid 2019-06-25 23:14:32 +08:00
dbe3221969 fatfs: reduce rawflash tests run time
Don't flash fatfs.img on every test run. Comparing the content is
faster than flashing.
2019-06-25 23:07:07 +08:00
8f6606141a fatfs: create separate ffsystem.c for host side testing 2019-06-25 23:07:07 +08:00
66bdeca603 fatfs: update diskio and vfs for FatFS changes
- do to not rely on integer.h types
- ffsystem.c does not define ff_memcalloc, replace with ff_memalloc +
  memset.
2019-06-25 23:05:16 +08:00
7724df407a fatfs: update to R0.13c patch 4
Breaking change: integer.h does not exist in FatFS anymore
2019-06-25 23:05:16 +08:00
e181a40c9f fatfs: separate IDF-specific files from the original FatFS code
This is a breaking change: applications which used diskio.h to
call ff_diskio_register, will now need to include diskio_impl.h.
Including diskio.h will include the original diskio.h header from
FatFS library.
2019-06-25 23:05:16 +08:00
4ea12d432e Merge branch 'bugfix/fix_ble_examples_build' into 'master'
Fix build issues

See merge request idf/esp-idf!5343
2019-06-25 23:04:34 +08:00
82858050b6 ci: sort list of flake8 submodule excludes 2019-06-25 20:18:36 +08:00
94b88654a3 ci: exclude nimble submodule from python style check 2019-06-25 20:12:35 +08:00
5e7552cb67 Merge branch 'bugfix/esp32s2beta_fix_compile_error_related_esp_rom_spiflash' into 'feature/esp32s2beta'
bugfix(esp_rom): add two APIs into esp32beta.rom.spiflash.ld to fix compile error

See merge request idf/esp-idf!5318
2019-06-25 16:58:50 +08:00
31ec634730 bt: fix build issue
Source files and include directories were appended to variables
used by the previous component registration command.
2019-06-25 16:53:37 +08:00
f55ace596b Merge branch 'fix/update_curr_page_state' into 'master'
nvs_util: Set previous page state to full before creating new page

See merge request idf/esp-idf!5325
2019-06-25 14:21:25 +08:00
9bca2f878a Merge branch 'feature/gcc_8_msys_update_simple' into 'master'
update MSYS package for esp32-2019r1 toolchain

See merge request idf/esp-idf!5199
2019-06-25 14:14:08 +08:00
a54a3fc92e Merge branch 'bugfix/idfpy_print_filter' into 'master'
tools: Port the filtering option of IDF Monitor to the idf.py toolchain

Closes IDF-543

See merge request idf/esp-idf!4416
2019-06-25 13:36:03 +08:00
9a412d3a08 Merge branch 'feature/use_new_component_registration_apis' into 'master'
Use new component registration API

See merge request idf/esp-idf!4898
2019-06-25 10:24:11 +08:00
9d573c65dc Merge branch 'bugfix/legacy_header_bootloader_build' into 'master'
bootloader: pass legacy header config variable to subproject

See merge request idf/esp-idf!4966
2019-06-25 10:23:33 +08:00
391eba07e4 Merge branch 'bugfix/kconfig_source_comment' into 'master'
tools: Fix Kconfig checker for comments and source after help

See merge request idf/esp-idf!5275
2019-06-25 10:22:12 +08:00
9845a41315 Merge branch 'feature/nimble' into 'master'
Port NimBLE Host Stack on ESP-IDF

See merge request idf/esp-idf!5182
2019-06-25 09:03:58 +08:00
342f6a7829 Port NimBLE Host Stack on ESP-IDF 2019-06-25 09:03:58 +08:00
1f9f39fe46 nvs_util: Set previous page state to full before creating new page 2019-06-24 13:53:51 +00:00
dff5254085 Merge branch 'doc/review_api-ref_periph-sdmmc-host' into 'master'
Review the file api-reference/peripherals/sdmmc_host.rst

See merge request idf/esp-idf!5261
2019-06-24 21:46:12 +08:00
4db4402bed Review the file api-reference/peripherals/sdmmc_host.rst 2019-06-24 21:46:11 +08:00
396131433a Merge branch 'feature/idf_size_json' into 'master'
idf_size: Support JSON output

Closes IDF-264

See merge request idf/esp-idf!4987
2019-06-24 19:06:12 +08:00
a60b1428d5 gnu make: Make V= behaviour consistent with V=0
Previously, V=0 would print some verbose lines but not most of them.

This meant that it was impossible to disable all verbose output
when BATCH_BUILD=1

Closes https://github.com/espressif/esp-idf/issues/3488
2019-06-24 21:01:12 +10:00
5cb71b5213 Merge branch 'feature/add_doc_about_app_desc_t' into 'master'
docs: Add description about the app image

Closes IDF-597

See merge request idf/esp-idf!4912
2019-06-24 18:40:02 +08:00
6559f935ce component/bt: fix unpack hci enhance connection complete event error 2019-06-24 07:05:01 +00:00
f4eb3ddfee Merge branch 'feature/ble_mesh_feature' into 'master'
component/ble_mesh: Add BLE Mesh Stack onto ESP-IDF

See merge request idf/esp-idf!4079
2019-06-24 14:31:23 +08:00
adfe16d928 mbedtls: upgrade to v2.16.2 release
For detailed release notes please refer to:
https://github.com/ARMmbed/mbedtls/releases/tag/mbedtls-2.16.2
2019-06-24 06:02:59 +00:00
12a7d39ed6 docs: Add description 2019-06-24 12:33:33 +08:00
fc3253163e component/ble_mesh: ESP BLE Mesh release
1. BLE Mesh Core

* Provisioning: Node Role
    * Advertising and GATT bearer
    * Authentication OOB

* Provisioning: Provisioner Role
    * Advertising and GATT bearer
    * Authentication OOB

* Networking
    * Relay
    * Segmentation and Reassembly
    * Key Refresh
    * IV Update

* Proxy Support

* Multiple Client Models Run Simultaneously
    * Support multiple client models send packets to different nodes simultaneously
    * No blocking between client model and server

* NVS Storage
    * Store Provisioning Data of BLE Mesh Nodes in Flash

2. BLE Mesh Applications

* BLE Mesh Node & Provisioner
    * Node Example
    * Provisioner Example
    * Node + Generic OnOff Client Example

* Fast Provisioning
    * Vendor Fast Prov Server Model
    * Vendor Fast Prov Client Model
    * Examples

* Wi-Fi & BLE Mesh Coexistence
    * Example

* BLE Mesh Console Commands
    * Example

3. BLE Mesh Models

* Foundation Models
    * Configuration Server Model
    * Configuration Client Model
    * Health Server Model
    * Health Client Model

* Generic Client Models
    * Generic OnOff Client
    * Generic Level Client
    * Generic Location Client
    * Generic Default Transition Timer Client
    * Generic Power OnOff Client
    * Generic Power Level Client
    * Generic Battery Client
    * Generic Property Client

* Generic Server Models
    * Generic OnOff Server (Example)

* Lighting Client Models
    * Light Lightness Client
    * Light CTL Client
    * Light HSL Client
    * Light xyL Client
    * Light LC Client

* Sensor Client Model
    * Sensor Client

* Time and Scenes Client Models
    * Time Client
    * Scene Client
    * Scheduler Client
2019-06-24 11:31:24 +08:00
2b808fc19a Merge branch 'feature/btdm_add_gattc_gatts_coex_example' into 'master'
Component/bt: add gattc and gatts coex example

See merge request idf/esp-idf!5087
2019-06-24 11:23:30 +08:00
1b12e6e97d Merge branch 'refactor/bluedroid' into 'master'
Refactor/bluedroid

See merge request idf/esp-idf!4027
2019-06-24 11:07:53 +08:00
61ccb538fd Merge branch 'doc/review_ext_ram' into 'master'
Review the file api-guides/external-ram.rst

See merge request idf/esp-idf!5156
2019-06-24 08:24:45 +08:00
32c3730c33 Review the file api-guides/external-ram.rst 2019-06-24 08:24:44 +08:00
19e89d0e2f Merge branch 'doc/review_modules-and-boards' into 'master'
Review the file hw-reference/modules-and-boards.rst

See merge request idf/esp-idf!5157
2019-06-24 08:22:43 +08:00
752c7c32d4 Review the file hw-reference/modules-and-boards.rst 2019-06-24 08:22:43 +08:00
fcf4502c6b spi_example: fix the example to pass in esp32s2beta 2019-06-23 12:17:27 +08:00
17378fd4c2 spi: support new chip esp32s2beta 2019-06-23 12:17:27 +08:00
93ef3980e7 spi: fix cmakelists missing 2019-06-22 19:09:06 +08:00
eacae2e982 spi_slave: fix a example issue caused by word alignment 2019-06-22 19:09:00 +08:00
9b13a04abf spi: multichip support
move hardcoded numbers, etc. into soc files.
create headers for shared types which needs to be documented.

(MINOR CHANGE)
2019-06-22 19:08:47 +08:00
fd8b526f7c add two APIs into esp32beta.rom.spiflash.ld to fix compile error
When config flash mode as QIO mode, the error that esp_rom_spiflash_wait_idle
and esp_rom_spiflash_config_readmode are undefined happens when compile, so
add these two APIs to fix the error.
2019-06-21 21:50:48 +08:00
b31ab65fa5 Merge branch 'doc/review_api-ref_periph-touchpad' into 'master'
Review the file api-reference/peripherals/touch_pad.rst

See merge request idf/esp-idf!5259
2019-06-21 20:43:18 +08:00
1096ee4b57 Review the file api-reference/peripherals/touch_pad.rst 2019-06-21 20:43:17 +08:00
9b350f9ecc cmake: some formatting fixes
Do not include bootloader in flash target when secure boot is enabled.
Emit signing warning on all cases where signed apps are enabled (secure
boot and signed images)
Follow convention of capital letters for SECURE_BOOT_SIGNING_KEY
variable, since it is
relevant to other components, not just bootloader.
Pass signing key and verification key via config, not requiring
bootloader to know parent app dir.
Misc. variables name corrections
2019-06-21 19:53:29 +08:00
047cf71c01 tools: update make converter to use new component registration api 2019-06-21 19:53:29 +08:00
e9bc46db71 tools: use new component registration api for unit test app 2019-06-21 19:53:29 +08:00
6771eead80 examples: use new component registration api 2019-06-21 19:53:29 +08:00
9eccd7c082 components: use new component registration api 2019-06-21 19:53:29 +08:00
e8582e9aa4 esptool_py: use passed offset and image when template is given
esptool_py defines command `esptool_py_flash_project_args` that
generates arg file for esptool.py. Two of the arguments are the offset
and image, which are not being used when a template file is given.
This commit makes variables OFFSET and IMAGE available to the template
file, which will holds the value of the offset and image arguments to
`esptool_py_flash_project_args`.
2019-06-21 19:48:41 +08:00
0ed590640e bootloader: Move some structs to separated file
Moved structures which describe the app image to separated file.

Closes: IDF-597
2019-06-21 18:43:27 +08:00
d1da76e369 Merge branch 'bugfix/misc_cmake_changes' into 'master'
Follow up CMake changes/fixes

See merge request idf/esp-idf!5267
2019-06-21 13:27:55 +08:00
934a1a3223 Merge branch 'feature/add_ability_to_specify_spiffsgen_dependencies' into 'master'
Add ability to specify dependencies for spiffsgen

See merge request idf/esp-idf!4933
2019-06-21 13:27:35 +08:00
bd9590502c Merge branch 'bugfix/spi_flash_remove_include_chain_in_host_drv' into 'master'
esp_flash: support C++ and improve the document

See merge request idf/esp-idf!5287
2019-06-21 13:12:09 +08:00
8aa6fb241d Merge branch 'bugfix/malloc_warnings_mdns' into 'master'
mdns: fix static analysis warnings

See merge request idf/esp-idf!5143
2019-06-21 13:10:06 +08:00
149e07911d components/bt: Optimization and bugfix of previous commits 2019-06-21 11:55:45 +08:00
e2b8f4c6ae Merge branch 'feature/docs_for_updated_idf_argparsing' into 'master'
docs: Update order of arguments for idf.py and add click linux package

Closes IDF-501

See merge request idf/esp-idf!5166
2019-06-21 11:42:59 +08:00
c65038fd74 spiffs,make: change spiffsgen build API 2019-06-21 10:58:40 +08:00
e0a652f164 spiffs: add ability to specify dependencies when dirs themselves are generated 2019-06-21 10:48:34 +08:00
c2a9785fa9 Merge branch 'feature/netif_custom_name' into 'master'
Allow setting netif hostname via lw/ip component config menu item (IDFGH-1342)

See merge request idf/esp-idf!5262
2019-06-21 08:41:59 +08:00
e56d4eff9a Merge branch 'feature/example_ethernet2wifi_ap' into 'master'
add ethernet to wifi-ap example

See merge request idf/esp-idf!5053
2019-06-21 08:31:44 +08:00
070b86eee5 i2s: test case for variation in apll clock rate 2019-06-20 16:40:58 +00:00
430d9c6fba i2s: fix a bug when calculating i2s apll parameters
Closes https://github.com/espressif/esp-idf/issues/2634
Closes https://github.com/espressif/esp-idf/issues/3380
Fixes https://github.com/espressif/esp-idf/issues/3407
2019-06-20 16:40:58 +00:00
813c9dcf22 ethernet: add eth2ap example
This example illustrates how to do Layer2 packet forwarding bussiness between Wi-Fi and Ethernet.
2019-06-20 22:12:56 +08:00
53fd406f53 Merge branch 'test/fix_some_error_wifi_cases' into 'master'
test: fix some wifi case issues

See merge request idf/esp-idf!5226
2019-06-20 22:05:16 +08:00
4bd4c7caf3 mdns: fix ignoring mdns packet with some invalid name entries in question field
In case of invalid name entry, only this entry is invalidated and parsing continues as other query entries could contain questions to be responded to
2019-06-20 14:25:12 +02:00
126b687c75 Merge branch 'refactor/vfs_uart_multichip_support' into 'master'
vfs_uart & uart: add multichip support

See merge request idf/esp-idf!5298
2019-06-20 18:31:24 +08:00
f2e6ba8701 component/bt: clear BT/BLE interrupts after controller_disable to overwrite the default non-zero value of intcntl registers 2019-06-20 17:40:55 +08:00
8024fcb296 components/bt: Add more functions for memory debug. 2019-06-20 17:12:04 +08:00
2ad65bb434 Support timeout of fixed_queue and osi_thread
1. remove fixed_queue_try_dequeue and fixed_queue_try_enqueue,
2. add timeout parameter for fixed_queue_enqueue and fixed_queue_dequeue
3. replace where call fixed_queue_try_dequeue/enqueue to fixed_queue_dequeue/enqueue(..., timeout = 0)
4. replace where call fixed queue_enqueue/dequeue to fixed_queue_enqueue/dequeue( ..., timeout = FIXED_QUEUE_MAX_TIMEOUT)
5. modify the blocking_type of osi_thread_post to timeout.
2019-06-20 17:12:04 +08:00
9863565a6f components/bt: Optimization and bugfix of previous commit 2019-06-20 17:06:23 +08:00
07fef85a23 components/bt: Separation of BT and BLE 2019-06-20 17:06:23 +08:00
90008e3fd6 Merge branch 'feature/spi_driver_support_multi_chip' into 'master'
spi: multichip support

See merge request idf/esp-idf!5234
2019-06-20 16:45:06 +08:00
a9157aaba9 Merge branch 'bugfix/ut_ci_test_fail_because_failed_to_reset' into 'master'
ci: fix random unit test CI failure

See merge request idf/esp-idf!5264
2019-06-20 16:08:51 +08:00
11924d76cb cmake: clarify build trimming docs
How idf_build_component and the COMPONENTS argument to idf_build_process
interact is not clear/misleading. Clarify their interaction in the docs.

Closes: https://github.com/espressif/esp-idf/issues/3630
2019-06-20 16:02:22 +08:00
7a19894aec esptool_py: better display logs when generating binary
Since OUTPUT argument of custom command does not currently support
generator expressions, the project image is only generated as a side
effect. The primary generated file is a timestamp file. Unfortunately as a consequence
the output logs when the
binary is about to be generated is not as helpful anymore.

Set a custom comment that is more descriptive of what is happening,
and provide more feedback as to what has been generated.
2019-06-20 16:02:22 +08:00
64d37f5cb9 cmake: fix issues with build process
Fix issue when COMPONENTS are is not specified for idf_build_process,
no component is included in the build.
2019-06-20 16:02:22 +08:00
2fff500a1c cmake: export IDF_TARGET to menuconfig
Pass value of IDF_TARGET to menuconfig invocation.
2019-06-20 16:02:22 +08:00
8424822150 cmake: set CONFIG_DIR build property
Add CONFIG_DIR as a build property, so that components don't have to
derive it from one of the generated config files.
2019-06-20 16:02:22 +08:00
485c896740 components/bt: Combine A2DP sink task and A2DP source task into btc task 2019-06-20 16:00:55 +08:00
930c304a57 components/bt: Combine two hci task into one 2019-06-20 16:00:55 +08:00
5fd4cbb9d2 component/bt: Add functions for heap memory debug 2019-06-20 16:00:55 +08:00
bd9fed4400 component/bt: reduce the size of DRAM
DRAM.data:   506B -->  196B
DRAM.bss : 26857B --> 2170B
2019-06-20 16:00:55 +08:00
0150982ae3 tools: Fix Kconfig checker for comments and source after help 2019-06-20 09:48:04 +02:00
4397627b5b Merge branch 'feature/ws_client' into 'master'
esp_websocket_client

See merge request idf/esp-idf!3420
2019-06-20 15:37:40 +08:00
2a2d932cfe esp_websocket_client: Add websocket client component
Closes https://github.com/espressif/esp-idf/issues/2829
2019-06-20 15:37:40 +08:00
092179207e Merge branch 'bugfix/spi_concurrency' into 'master'
spi: fix a possible concurrency issue (port to master)

See merge request idf/esp-idf!5191
2019-06-20 15:32:02 +08:00
b395279196 Merge branch 'feature/esp32s2beta_fix_rtcio' into 'feature/esp32s2beta'
fix rtc bug in esp32s2beta

See merge request idf/esp-idf!5294
2019-06-20 13:42:37 +08:00
be8bf31e48 Merge branch 'feature/support_gpio_atomic_cmakelists_esp32s2beta' into 'feature/esp32s2beta'
support atomic in esp32s2beta branch

See merge request idf/esp-idf!5268
2019-06-20 13:39:55 +08:00
0bbeb502a8 atomic: support for esp32s2beta 2019-06-20 12:06:52 +08:00
ea1dcf7fe4 gpio: fix missing cmakelists for esp32s2beta 2019-06-20 12:06:51 +08:00
37cb673cd7 esp_flash: update the document to the latest API 2019-06-20 11:50:23 +08:00
21cce564ba component/bt: Macor from sdkconfig.h is used only in bt_user_config.h 2019-06-20 11:41:17 +08:00
b5c3ac0ec2 vfs_uart: refactor to have static context structure 2019-06-20 11:32:24 +08:00
cf2ba210ef uart: multichip support 2019-06-20 11:32:22 +08:00
f5a21845fd fix rtc bug in esp32s2beta 2019-06-20 11:26:21 +08:00
026533cd72 esp_flash: fix C++ compilation and some typos 2019-06-20 10:55:13 +08:00
caf121e4b6 esp_flash: break the inappropriate include chain in spi_flash_host_drv.h 2019-06-20 10:55:12 +08:00
2eff8f7742 spi_slave: fix a example issue caused by word alignment 2019-06-20 10:38:52 +08:00
5c9dc44c49 spi: multichip support
move hardcoded numbers, etc. into soc files.
create headers for shared types which needs to be documented.

(MINOR CHANGE)
2019-06-20 10:38:52 +08:00
b2ae2601fd Merge branch 'feat/backtrace_in_ut' into 'master'
esp32: Refactor backtraces to be iterative, add printing backtrace at runtime and when UT fails

Closes IDF-93

See merge request idf/esp-idf!3825
2019-06-20 09:28:34 +08:00
58986992e8 Merge branch 'bugfix/ci_confserver_timeout_again' into 'master'
ci: Adjust spawn settings in test_confserver

See merge request idf/esp-idf!5225
2019-06-19 22:56:45 +08:00
442b57b3ee ci: Adjust more 'spawn' settings in test_confserver 2019-06-19 20:50:53 +07:00
faf23df19a component/bt : modify OSI thread of bluedroid
abstract of OSI thread to make bluedroid more compatible with different OS.
2019-06-19 21:20:04 +08:00
71eece07a0 Component/bt: add ble ancs demo 2019-06-19 19:36:55 +08:00
037c079e9a esp32: Refactor backtrace and add esp_backtrace_print()
This commit refactors backtracing within the panic handler so that a common
function esp_backtrace_get_next_frame() is used iteratively to traverse a
callstack.

A esp_backtrace_print() function has also be added that allows the printing
of a backtrace at runtime. The esp_backtrace_print() function allows unity to
print the backtrace of failed test cases and jump back to the main test menu
without the need reset the chip. esp_backtrace_print() can also be used as a
debugging function by users.

- esp_stack_ptr_is_sane() moved to soc_memory_layout.h
- removed uncessary includes of "esp_debug_helpers.h"
2019-06-19 18:30:18 +08:00
f78eea97fe Component/bt: add gattc and gatts coex example 2019-06-19 17:30:06 +08:00
3e5997e4a0 Merge branch 'feature/esp32s2beta_can_build_helloworld_for_esp32' into 'feature/esp32s2beta'
fix some build error when building hello-world for esp32

See merge request idf/esp-idf!5235
2019-06-19 17:02:09 +08:00
3f7a571c90 fix errors when ci testing for esp32 2019-06-19 15:31:47 +08:00
b1a7f7fcdb disable ci test: docs building and submodule sync
This commit needs reverting before esp32s2 is ready to release
2019-06-19 15:28:50 +08:00
28e0a17e0a Merge branch 'bugfix/btdm_make_failed_due_to_macro' into 'master'
components/bt: Fix make errors due to macro usage error

See merge request idf/esp-idf!5105
2019-06-19 14:44:02 +08:00
484eb7cd07 Merge branch 'feature/mdns_unit_tests' into 'master'
mdns: add initial unit tests

See merge request idf/esp-idf!5088
2019-06-19 14:43:51 +08:00
dfae8ce26e Merge branch 'bugfix/ci_remove_dup_UT' into 'master'
ci: fix a duplicate job the CI.

See merge request idf/esp-idf!5276
2019-06-19 10:59:43 +08:00
aebcbd98bf ci: fix a duplicate job the CI. 2019-06-19 00:22:23 +07:00
920cabb382 Merge branch 'feature/spi_ext_flash' into 'master'
spi_flash: support working on differnt buses and frequency

See merge request idf/esp-idf!4096
2019-06-19 00:14:39 +08:00
ce5653c257 Merge branch 'doc/openocd_build2win_update' into 'master'
Updated building-openocd-windows.rst instruction

See merge request idf/esp-idf!5049
2019-06-19 00:14:22 +08:00
ceb00f7a41 Merge branch 'bugfix/btdm_add_svc_inst_id_param_for_create_tab_event' into 'master'
Component/bt: add svc_inst_id param for create service table event

See merge request idf/esp-idf!4958
2019-06-18 21:19:41 +08:00
979dc1b0b8 Merge branch 'feature/btdm_add_new_api_get_conn_params' into 'master'
Component/bt: add new api to get connection parameters

See merge request idf/esp-idf!5057
2019-06-18 21:10:53 +08:00
bcb662c3cd Merge branch 'bugfix/log_free_level_entry' into 'master'
log: fix minor memory leak when cleaning list of log levels

Closes IDF-710

See merge request idf/esp-idf!5260
2019-06-18 15:34:39 +08:00
1036a091fe spi_flash: support working on differnt buses and frequency 2019-06-18 06:32:52 +00:00
ce4de867d6 spi_flash: New low-level flash API 2019-06-18 06:32:52 +00:00
21b04e7798 Merge branch 'bugfix/phy_init_data_mistake' into 'master'
esp_wifi: fix wrong path of phy_init_data

Closes IDFGH-1168

See merge request idf/esp-idf!5201
2019-06-18 14:13:01 +08:00
304e7119ce ci: fix random unit test CI failure:
we use `-` command to check if DUT reset pass. If we input `-` command
during DUT bootup, DUT could only receive `\n` and print test cases.
Print test cases could take long time and lead to reset check timeout.
Now we will add delay after reset, and enlarge reset check timeout to
solve this problem.
2019-06-18 12:22:00 +08:00
c5c716e9d7 esp_wifi: fix wrong path of phy_init_data
Closes https://github.com/espressif/esp-idf/issues/3482
2019-06-18 11:29:09 +08:00
e031719178 Merge branch 'bugfix/mbedtls_mpi_exp_mod' into 'master'
mbedtls: Fix mbedtls_mpi_exp_mod() set n and s values

Closes IDFGH-1313

See merge request idf/esp-idf!5222
2019-06-18 11:17:37 +08:00
6b7c5dc37e Merge branch 'feature/clang_static_analysis' into 'master'
add clang static analysis jobs

Closes IDF-91

See merge request idf/esp-idf!3752
2019-06-18 08:42:00 +08:00
b107b832ca sntp/lwip: Add SNTP_UPDATE_DELAY option in Kconfig
Closes: https://github.com/espressif/esp-idf/issues/2277
Closes: IDFGH-337
2019-06-17 18:04:10 +08:00
7ec9f9ee74 Merge branch 'bugfix/strncpy_issue_in_wifi_example' into 'master'
replace strncpy with strlcpy in wifi examples for safety's sake

Closes IDF-695

See merge request idf/esp-idf!5192
2019-06-17 15:38:23 +08:00
bc8c8c68dd mbedtls: Add UTs for modexp 2019-06-17 07:19:54 +00:00
0a040345cc mbedtls: Fix Z->s in mbedtls_mpi_exp_mod()
Z->s should never be zero, only 1 or -1.
Added additional checks for X, Y and M args to correctly set Z->s.

Closes: https://github.com/espressif/esp-idf/issues/1681
Closes: https://github.com/espressif/esp-idf/issues/3603
Closes: IDFGH-1313
2019-06-17 07:19:54 +00:00
4d8a46b376 component/bt: add readme doc for BLE demos
- Closes:https://github.com/espressif/esp-idf/issues/3341
2019-06-17 07:05:41 +00:00
483e82caf8 Component/bt: modify some logs level 2019-06-17 07:05:41 +00:00
8f2490cc6f Component/bt: add svc_inst_id param for create service table event
- add svc_inst_id param for create service table event
  - Closes https://github.com/espressif/esp-idf/issues/3256
2019-06-17 07:05:31 +00:00
76b3a64b76 Component/bt: add new api to get connection parameters 2019-06-17 07:04:34 +00:00
0521296264 Merge branch 'doc/review_api-ref_storage' into 'master'
Doc/review api ref storage

See merge request idf/esp-idf!5074
2019-06-17 14:23:52 +08:00
4faf2de035 Doc/review api ref storage 2019-06-17 14:23:52 +08:00
1b54dc214c Merge branch 'feature/esp32s2beta_gpio_rtcio_driver' into feature/esp32s2beta 2019-06-17 14:19:56 +08:00
d156f0fc0f replace strncpy with strlcpy in wifi examples for safety's sake 2019-06-17 11:25:50 +08:00
e20b37aff9 Merge branch 'bugfix/prov_examples_strlcpy' into 'master'
Wi-Fi Provisioning : Bugfix in copying Wi-Fi SSID and Passphrase

Closes IDF-693

See merge request idf/esp-idf!5180
2019-06-17 10:29:05 +08:00
1138133a78 spi: fix a possible concurrency issue 2019-06-17 00:16:01 +00:00
8a3cf8ca77 Allow configuration of local netif hostname via new LWIP component configuration menu item
Signed-off-by: Sagar Bijwe <sagar@espressif.com>

Merges https://github.com/espressif/esp-idf/pull/3627
2019-06-15 16:09:51 +05:30
c4f3afd4b5 ci: add clang static analysis jobs
Clang tidy 9.0.0 is to perform static analysis of IDF sources. All component sources are analysed with default sdkconfig configuration, based on examples/get-started/hello_world project (compilation commands are extracted from default build commands for this project). Configuration of static analysis is defined in tools/ci/static-analysis-rules.yml

Closes https://github.com/espressif/esp-idf/issues/145
2019-06-14 20:24:36 +02:00
8e43cd4d69 Add click package to linux setup instructions 2019-06-14 19:51:39 +02:00
a77f01ec9d Update order of arguments for idf.py in docs 2019-06-14 19:51:39 +02:00
da978bc5a1 tools: Port the filtering option of IDF Monitor to the idf.py toolchain 2019-06-14 17:45:20 +02:00
29ea0dec76 Driver: gpio and rtcio dirver update 2019-06-14 20:27:26 +08:00
353de1487f log: fix minor memory leak when cleaning list of log levels 2019-06-14 13:55:46 +02:00
dc24988268 Merge branch 'feature/esp32s2beta_fix_rom_ld' into feature/esp32s2beta 2019-06-14 16:59:21 +08:00
d4d162640f Merge branch 'bugfix/dns_bug' into 'master'
LDNS: fix the crash  under static IP address

Closes WIFI-487

See merge request idf/esp-idf!5069
2019-06-14 15:06:05 +08:00
df0b8db400 Merge branch 'feature/allow_multiple_fragment_definitions_for_library_v4.0' into 'master'
Allow multiple mapping fragments to map same library

See merge request idf/esp-idf!4713
2019-06-14 14:07:59 +08:00
e2d1c6234f Merge branch 'bugfix/improve_flash_dio_read_timing' into 'master'
bugfix(flash): fix flash dio read mode configuration error on SPI0

See merge request idf/esp-idf!5086
2019-06-14 12:10:46 +08:00
d18ed01b81 lwip:fix bugfix/dns_bug 2019-06-14 03:52:31 +00:00
c5e89897ef Merge branch 'bugfix/malloc_warnings_can' into 'master'
can: suppress clang tidy warning about nullptr dereference

See merge request idf/esp-idf!5145
2019-06-14 09:58:14 +08:00
d127849d80 can: suppress clang tidy warning about nullptr dereference 2019-06-13 16:23:20 +02:00
58df1d93bc Merge branch 'bugfix/ci_sort_executable_list' into 'master'
ci: keep executables list sorted to pass tests

See merge request idf/esp-idf!5231
2019-06-13 21:39:06 +08:00
7c723e121c esp_rom: update ld scripts to export strong symbols
Similar to commits for esp32 target: e84b26f5, 8c2f2867, 5719cd6f
2019-06-13 19:34:40 +08:00
cfba50811d spi_flash: fix unit tests compilation 2019-06-13 19:34:40 +08:00
08557be5df Merge branch 'fix/bootloader_region_overlap_update' into 'master'
bootloader: remove duplicate region overlap logic

See merge request idf/esp-idf!5128
2019-06-13 16:07:05 +08:00
7871983370 Merge branch 'optimize/igmp_mld6_timer' into 'master'
optimize: IGMP and MLD6 timer optimization config added

See merge request idf/esp-idf!4776
2019-06-13 15:31:26 +08:00
4e09eaf8e2 Merge branch 'feature/btdm_config_eir' into 'master'
components/bt: Add API to config EIR data

See merge request idf/esp-idf!5038
2019-06-13 14:55:23 +08:00
b1bf41be22 Merge branch 'bugfix/btdm_coex_assert_in_lc_lmppdu' into 'master'
components/bt: Fix assert due to alloc LMP TX buffer failed

See merge request idf/esp-idf!5134
2019-06-13 13:58:43 +08:00
a98141cc0a ci: keep executables list sorted to pass tests 2019-06-13 12:42:53 +07:00
8cd58625d0 Merge branch 'feature/esp32s2beta_todos_to_warnings' into feature/esp32s2beta 2019-06-13 13:42:36 +08:00
2deb267be5 test: fix some wifi case issues:
* remove heap size check cases as we have bg tasks allocate memory
* fix wifi connect to open ap issue
2019-06-13 11:14:39 +08:00
78b7b137ad Merge branch 'feature/otatool_parttool_python_api' into 'master'
otatool, parttool Python API

See merge request idf/esp-idf!5077
2019-06-13 10:31:29 +08:00
60d28bb72f Merge branch 'bugfix/spiflash_kconfig' into 'master'
spi_flash: Fix Kconfig indentation

Closes IDFGH-1307

See merge request idf/esp-idf!5195
2019-06-13 10:18:14 +08:00
2dcf33d7b5 Merge branch 'doc/partition_table_app_test' into 'master'
partition table: Update documentation about "test" partition type

See merge request idf/esp-idf!5125
2019-06-13 10:16:51 +08:00
3cc384fbe9 Merge branch 'bugfix/malloc_warnings_transport' into 'master'
tcp_transport: fix minor memory leak found by static analyzer

Closes IDF-681

See merge request idf/esp-idf!5141
2019-06-13 10:11:36 +08:00
9909206b16 Merge branch 'bugfix/malloc_warnings_event_loop' into 'master'
esp_event: fix possible malloc free issues found by static analyzer

See merge request idf/esp-idf!5142
2019-06-13 10:10:26 +08:00
1094b83bcb Merge branch 'bugfix/rest_server_strlcpy' into 'master'
Example restful_server : Minor fix in copying file system base path

Closes IDF-691

See merge request idf/esp-idf!5181
2019-06-13 09:47:32 +08:00
eac356ef4a Merge branch 'feature/idf_version_header' into 'master'
esp_common: add esp_idf_version.h header to define IDF version

Closes IDF-253

See merge request idf/esp-idf!4596
2019-06-13 09:41:35 +08:00
1be207adb4 Merge branch 'bugfix/idfpy_msys_powershell' into 'master'
idf.py: Don't expect "_" env. variable to be available from PowerShell

Closes #79

See merge request idf/esp-idf!5119
2019-06-13 09:23:43 +08:00
7680f520f9 unit-test-app: disable CONFIG_MBEDTLS_HARDWARE_MPI for esp32s2beta 2019-06-13 01:43:38 +08:00
51a7df196d esp32s2beta: fix soc_memory_layout
1. use SOC_RESERVE_MEMORY_REGION
2. reserve part of the DRAM which is mapped to same banks as IRAM
2019-06-13 01:34:54 +08:00
26215bc1ad Merge branch 'doc/translate_idf_about' into 'master'
Doc/translate idf about

See merge request idf/esp-idf!5168
2019-06-12 19:17:04 +08:00
2dec7787c1 Doc/translate idf about 2019-06-12 19:17:04 +08:00
70b2c86fff Merge branch 'bugfix/gcc8_toolchain_links' into 'master'
docs: fix generation of toolchain links

Closes IDFGH-1319

See merge request idf/esp-idf!5194
2019-06-12 18:40:02 +08:00
ca932f80f4 esp_debug_helpers: add missing include 2019-06-12 17:13:44 +08:00
04d1ce944d freertos: pass unit tests compilation 2019-06-12 17:13:29 +08:00
25a383c521 test_utils: update for esp32s2beta 2019-06-12 16:10:11 +08:00
aeb62b5337 esp_wifi: no libraries for esp32s2beta yet 2019-06-12 16:09:52 +08:00
dcaae4a5fc esp32s2beta: convert some todos to warnings 2019-06-12 15:53:57 +08:00
5ae151308b Merge branch 'bugfix/fix_some_wps_bugs' into 'master'
wps: add  overlap event

Closes WIFI-517

See merge request idf/esp-idf!5022
2019-06-12 14:35:52 +08:00
e6801912c5 mdns: added initial suite of api unit tests 2019-06-12 08:18:25 +02:00
7971845fd4 idf.py: Don't expect "_" env. variable to be available from PowerShell 2019-06-12 08:04:28 +02:00
22d070e0af spi_flash: Rename long Kconfig options 2019-06-12 08:03:07 +02:00
842384a0d3 spi_flash: Fix Kconfig indentation
Closes https://github.com/espressif/esp-idf/issues/3598
2019-06-12 08:03:07 +02:00
8cfa574ad6 Merge branch 'bugfix/ci_test_confserver_timeout' into 'master'
ci: Adjust the test_confserver timeout to 2 seconds

See merge request idf/esp-idf!5184
2019-06-12 13:48:19 +08:00
a012025deb Example restful_server : Minor fix in copying file system base path 2019-06-12 05:43:17 +00:00
a8d19e6638 Provisioning Examples : Bugfix in copying Wi-Fi SSID and Passphrase 2019-06-12 05:42:46 +00:00
a75be3413e Wi-Fi Provisioning : Bugfix in copying SSID and Passphrase
These changes guarantee that the SSID and Passphrase received via protocomm are NULL terminated and size limited to their standard lengths.

List of changes:
* Corrected length of passphrase field in wifi_prov_config_set_data_t structure
* Performing length checks on SSID, passphrase and bssid, when populating wifi_prov_config_set_data_t structure with received credentials
2019-06-12 05:42:46 +00:00
ae675973be optimize: IGMP and MLD6 timers on demand config added
Signed-off-by: Sachin Parekh <sachin.parekh@espressif.com>
2019-06-12 05:10:32 +00:00
7edef74347 cmake: set variables set by project call
ESP-IDF overrides project() definition for user convenience. This
redefinition lacks setting the variables documented at
the project command documentation
https://cmake.org/cmake/help/v3.5/command/project.html in the parent
scope.

This commit sets those variables.

Closes https://github.com/espressif/esp-idf/issues/3611.
2019-06-12 11:01:59 +08:00
8ee90ee2f1 ldgen: allow multiple mapping fragments to map same library 2019-06-12 10:48:54 +08:00
87aa341e97 ldgen: mapping rules should be grouped by archive 2019-06-12 10:48:54 +08:00
065eb918fd Merge branch 'bugfix/even_more_cmake_fixes' into 'master'
Even more CMake fixes

See merge request idf/esp-idf!5097
2019-06-12 08:08:04 +08:00
0e6ffd08b7 docs: update msys environment links for esp32-2019r1 toolchain 2019-06-11 22:22:14 +08:00
67148e37a6 tools/windows: update toolchain URL in MSYS build script 2019-06-11 22:21:44 +08:00
517c61a4ec docs: fix generation of toolchain links
Closes https://github.com/espressif/esp-idf/issues/3609
2019-06-11 19:46:56 +08:00
8886e3fbc3 Merge branch 'bugfix/esp_event_fix_placement_issue_on_make' into 'master'
esp_event: fix missed placement on make builds

See merge request idf/esp-idf!5179
2019-06-11 19:32:45 +08:00
54ef60f26b component: revert some of the dependency corrections
!4452 and !4897 made some ill-advised corrections to dependency info;
revert those in this MR. Handling pre-built binaries as imported
libraries is retained, however.
2019-06-11 18:09:26 +08:00
3882e48e8a cmake: use new signature form of target_link_library to link components
!4452 used setting LINK_LIBRARIES and INTERFACE_LINK_LIBRARIES to link
components built under ESP-IDF build system. However, LINK_LIBRARIES does
not produce behavior same as linking PRIVATE. This MR uses the new
signature for target_link_libraries directly instead. This also moves
setting dependencies during component registration rather than after all
components have been processed.

The consequence is that internally, components have to use the new
signature form as well. This does not affect linking the components to
external targets, such as with idf_as_lib example. This only affects
linking additional libraries to ESP-IDF libraries outside component processing (after
idf_build_process), which is not even possible for CMake<v3.13 as
target_link_libraries is not valid for targets not created in current
directory. See https://cmake.org/cmake/help/v3.13/policy/CMP0079.html#policy:CMP0079
2019-06-11 18:09:26 +08:00
6365658d3f cmake: revert using EXCLUDE_FROM_ALL when adding component subdirectories
Reverting (for now) the change in !4452 to use EXCLUDE_FROM_ALL.
Apparently this also affects custom targets with ALL option specified,
not causing them to be built with the project.

This is apparently a bug which has a merged fix:
https://gitlab.kitware.com/cmake/cmake/merge_requests/2816
2019-06-11 18:09:26 +08:00
f0f861ccd9 ldgen: use user input filename for processed template
Previously ldgen determines the output file name on its own. This commit
makes it so that user can dictate what the output file name will be
for the processed template, if the user needs it for something else.
2019-06-11 18:09:26 +08:00
70dfcb35d4 mbedtls: component CMakeLists.txt corrections
Since !4452 the common component requirements automatically get
privately linked to libraries built under ESP-IDF build system (this
includes targets from third-party libraries). This removes a variable
that was used for that purpose before !4452.

Since the internal target names were changed, the compile definition for
warning on using deprecated functions is not being passed. Since using
the internal name is unreliable, prefer passing this compile definition
from the test itself.
2019-06-11 18:09:26 +08:00
297b2c5a39 cmake: evaluate component requirements in one go
!4452 simplified early expansion by using an early expansion script that
only does one thing: get the public and private requirements for each
component, albeit one by one. This was also dependent on parsing
the command output of the expansion script.  This commit makes it so that a list of all
components to be processed to passed to the expansion script, generating a cmake
file that sets each component requirements in one go.

This also makes sure that only components that registered themselves get
included in the final build list.
2019-06-11 18:09:26 +08:00
33dd7011be cmake: expand build components before generating config
!4452 had config generation first before building the component list
to be used in the build. This proved to be detrimental when a new target
is added as config generation would consider configs from both targets.
2019-06-11 18:09:26 +08:00
767455dbeb Merge branch 'bugfix/check_for_new_cmakecache_vars' into 'master'
idf.py: Add check for new cmake cache values

Closes IDF-658

See merge request idf/esp-idf!5106
2019-06-11 14:16:14 +08:00
1b5c05e54c Merge branch 'bugfix/confgen_compat_defs' into 'master'
confgen.py: don't output compatibility definitions for options which are not defined

See merge request idf/esp-idf!5162
2019-06-11 14:13:20 +08:00
f59c3e7e3e Updated building-openocd-windows.rst instruction 2019-06-11 09:00:31 +03:00
3836aa9ae6 partition_table,app_update: use config partition table offset 2019-06-11 13:17:14 +08:00
7f7a9272f0 examples: create example for both Python and CLI otatool interfaces 2019-06-11 13:17:14 +08:00
5d41322412 examples: create example for both Python and CLI parttool interfaces 2019-06-11 13:17:14 +08:00
1de627e68a app_update: implement Python API for otatool 2019-06-11 13:17:14 +08:00
63bd57c1d7 partition_table: implement Python API for parttool
Closes https://github.com/espressif/esp-idf/issues/1494
2019-06-11 13:17:14 +08:00
4a79d750a5 clean up build warnings 2019-06-11 13:07:37 +08:00
a37ad24137 cmake: Always pass IDF_TARGET into mconf, avoid error about uninitialized environment variable 2019-06-11 13:07:37 +08:00
ddbd09eb15 esp32/esp32s2beta: Extract common SPIRAM options into esp_commmon component 2019-06-11 13:07:37 +08:00
06e31e243c esp32s2beta: Fix kconfig errors found by Roland 2019-06-11 13:07:37 +08:00
8d949c3c9d esp32s2beta: Apply new Kconfig names to esp32s2beta
Still using ESP32_xxx prefix on all chips: CORE_DUMP, APP_TRACE

Still using the same config prefix and duplicate names in esp32 & esp32s2beta: SPIRAM, PM
2019-06-11 13:07:37 +08:00
82c27a39f2 can build and run hello-world app 2019-06-11 13:07:37 +08:00
73b30af2b3 confgen.py: don't output compatibility definitions for options which are not defined
For example, if a renamed option CONFIG_NEW is a bool with value "n", kconfiglib will not generate a define for it in the Kconfig file. The define (#define CONFIG_NEW 1) will only be generated if the option is "y" or "m".
However the compatibility definition was always generated: #define CONFIG_OLD CONFIG_NEW. This broke the #ifdef checks which depended on the old option names.
2019-06-11 13:07:37 +08:00
7dcc5f4d15 idf.py: pass correct toolchain prefix to the monitor 2019-06-11 13:07:37 +08:00
fa6622aa33 Kconfig: change default toolchain prefix for esp32s2beta to "esp32s2" 2019-06-11 13:07:37 +08:00
047aca97e8 esp32s2beta: Fix heap memory regions when SPIRAM is disabled 2019-06-11 13:07:37 +08:00
b2e8d30414 esp32s2beta: esptool support 2019-06-11 13:07:37 +08:00
84b2f9f14d build and link hello-world for esp32s2beta 2019-06-11 13:07:37 +08:00
61ce868396 make bootloader_support support esp32s2beta 2019-06-11 13:07:02 +08:00
b146104885 add esp32s2beta component 2019-06-11 13:06:32 +08:00
91508ca27f add esp32s2beta in soc component 2019-06-11 13:06:32 +08:00
cc98b9ef60 add rom for esp32s2beta 2019-06-11 13:06:32 +08:00
f14a6cf51b Ethernet peripheral will depend on IDF_TARGET
esp32 has EMAC controller, but esp32s2 doesn't
2019-06-11 13:06:32 +08:00
12f00d9a5e make bootloader support esp32s2beta 2019-06-11 13:06:32 +08:00
2f4c5c51f4 update esp32 component 2019-06-11 13:06:32 +08:00
c926f7515e add toolchain setting for esp32s2 2019-06-11 13:06:32 +08:00
e9a2eae639 add IDF_TARGET_XXX in main Kconfig 2019-06-11 13:06:32 +08:00
b82e0d49a8 make app_trace support esp32c 2019-06-11 13:06:32 +08:00
02f1e9fc20 Merge branch 'feature/prov_mgr' into 'master'
Wi-Fi Provisioning Manager

See merge request idf/esp-idf!4805
2019-06-11 09:46:50 +08:00
d0ed0d3f9c Merge branch 'fix/mfg_util' into 'master'
mfg_util: Fix incorrect number of csv files creation for multiple values with REPEAT tags

See merge request idf/esp-idf!5044
2019-06-11 09:22:07 +08:00
2331597ed2 Merge branch 'bugfix/ticks_to_wait_for_uart_and_i2c' into 'master'
driver: Fix ticks_to_wait for uart and i2c

Closes IDFGH-964

See merge request idf/esp-idf!5021
2019-06-11 08:41:44 +08:00
406979e74f Merge branch 'feature/console_nvs_iterators' into 'master'
Feature/nvs iterators

Closes IDF-92

See merge request idf/esp-idf!3846
2019-06-11 08:36:13 +08:00
e08b787d79 ci: Adjust the test_confserver timeout to 2 seconds
On a VM, it seems like 500ms is sometimes a very short time...
2019-06-11 10:16:15 +10:00
c9bf3a3b17 Merge branch 'bugfix/remove_secure_boot_test_mode' into 'master'
remove secure boot test mode

See merge request idf/esp-idf!5059
2019-06-11 07:25:07 +08:00
9192827eec Merge branch 'doc/update_translation_for_get-started-cmake' into 'master'
Update Chinese translation of .rst files in get-started-guide according to the...

See merge request idf/esp-idf!4935
2019-06-11 02:09:27 +08:00
e281164540 Update Chinese translation of .rst files in get-started-guide according to the changes made in English files in these months. 2019-06-11 02:09:26 +08:00
9a013a91f1 Merge branch 'doc/add_ulp_cmake_translation' into 'master'
Doc/add ulp cmake translation

See merge request idf/esp-idf!4163
2019-06-11 01:48:37 +08:00
a37ec9bae6 add translation for ulp cmake
fix formatting

update translation

update translation

formatting
2019-06-11 01:48:36 +08:00
5268960235 Added support for NVS iterators
Closes https://github.com/espressif/esp-idf/issues/129
2019-06-10 16:42:39 +02:00
c34de4cba6 mdns: fix static analysis warnings 2019-06-10 13:21:07 +00:00
bd537083d9 esp_event: fix possible malloc free issues found by static analyzer 2019-06-10 13:10:34 +00:00
243e0b229f tcp_transport: fix minor memory leak found by static analyzer
Closes https://github.com/espressif/esp-idf/issues/3602
2019-06-10 14:28:42 +02:00
bde1c30c5b Merge branch 'bugfix/cmake_check_crosstool_ng_version' into 'master'
cmake: fix crosstool-NG version check regex

See merge request idf/esp-idf!5163
2019-06-10 20:23:57 +08:00
b0bfe937aa mfg_util: Fix unnecessary csv files creation for values with REPEAT tags 2019-06-10 12:08:58 +00:00
af3a2f3aba esp_event: fix placement issue when building with make
The CMake build uses the linker fragment file to place functions in IRAM
on certain configurations. This commit does that for Make as well.
2019-06-10 19:38:55 +08:00
2557442ae9 cmake: fix crosstool-NG version check regex 2019-06-10 09:51:40 +00:00
a92ace034f esp_prov : Support new JSON format of version string while maintaining backward compatibility
Other changes:
* Version check only happens if command line argument is specified
* Minor bugfix in processing apply_config response
2019-06-10 15:13:50 +05:30
f90d3f6d93 Provisioning : Added Wi-Fi Provisioning Manager example and test script 2019-06-10 15:13:50 +05:30
471a0e93a7 wifi_provisioning : Docs updated with information about new provisioning manager 2019-06-10 15:13:50 +05:30
4ef6c85f0c wifi_provisioning : Wi-Fi Provisioning Manager added 2019-06-10 15:13:50 +05:30
f3aab7d536 components/bt: Fix assert due to alloc LMP TX buffer failed 2019-06-10 15:14:23 +08:00
2c55fae6cf Merge branch 'bugfix/cmake_ndebug' into 'master'
cmake: fix setting NDEBUG definition

Closes IDFGH-1305

See merge request idf/esp-idf!5165
2019-06-10 15:07:41 +08:00
912c75372c confgen.py: don't output compatibility definitions for options which are not defined
For example, if a renamed option CONFIG_NEW is a bool with value “n”,
kconfiglib will not generate a define for it in the Kconfig file. The
define (#define CONFIG_NEW 1) will only be generated if the option is
“y” or “m”. However the compatibility definition was always
generated: #define CONFIG_OLD CONFIG_NEW. This broke the #ifdef
checks which depended on the old option names.

This commit wraps each compatibility definition:

    #ifdef CONFIG_NEW
    #define CONFIG_OLD CONFIG_NEW
    #endif

so that the CONFIG_OLD definition is only generated if CONFIG_NEW is
defined.
2019-06-10 06:56:07 +00:00
d1127dd684 Merge branch 'bugfix/cmake_build_system_test' into 'master'
ci: fix idf.py syntax in new build system tests

See merge request idf/esp-idf!5167
2019-06-10 13:54:36 +08:00
bb4ca8c508 Merge branch 'feature/config_option_for_mbedtls_debug_level' into 'master'
mbedtls: add config option for setting debug level

See merge request idf/esp-idf!5154
2019-06-10 11:44:40 +08:00
e701f96bf5 Merge branch 'bugfix/stack_protection_crash_due_to_incorrect_cflag' into 'master'
esp_common: fix stack protection crash due to incorrect CFLAG

See merge request idf/esp-idf!5155
2019-06-10 11:43:31 +08:00
b2bfa8ed95 ci: fix idf.py syntax in new build system tests 2019-06-07 22:03:15 +08:00
6b8c31a198 cmake: fix setting NDEBUG definition
Closes https://github.com/espressif/esp-idf/issues/3596
2019-06-07 21:23:42 +08:00
54c70dc284 Merge branch 'bugfix/target_test_no_setup_tools' into 'master'
ci: don't do idf_tools.py install in target_test stage

See merge request idf/esp-idf!5158
2019-06-07 21:04:41 +08:00
50d2e6b69b Merge branch 'bugfix/cmake_extra_component_dirs' into 'master'
CI: additional CMake build system tests wrt EXTRA_COMPONENT_DIRS

See merge request idf/esp-idf!5104
2019-06-07 07:49:30 +08:00
5f5428233e partition table: Update documentation about "test" partition type
Reported from forum: https://esp32.com/viewtopic.php?f=13&t=10777&p=44164#p44164
2019-06-07 09:45:40 +10:00
a0382de0ea Merge branch 'bugfix/psram_io_struct_uninitialized' into 'master'
Make sure the psram_io struct is initialized

See merge request idf/esp-idf!5147
2019-06-07 07:36:16 +08:00
57f7c77aff ci: don't do idf_tools.py install in target_test stage 2019-06-07 01:17:29 +08:00
4b0b2c6fda Merge branch 'feature/action_specific_flags' into 'master'
idf.py: add support for action specific options

Closes IDF-501, IDFGH-1276, and IDFGH-1275

See merge request idf/esp-idf!5029
2019-06-07 00:44:09 +08:00
f80cce7bb9 esp_common: fix stack protection crash due to incorrect CFLAG 2019-06-06 18:52:32 +05:30
0a5dfd3717 mbedtls: add config option for setting debug level
Closes https://github.com/espressif/esp-idf/issues/3521
2019-06-06 18:28:19 +05:30
095def2111 Merge branch 'feature/docs_get-started_ESP32-Ethernet-Kit' into 'master'
Provide getting started guide for 'ESP32-Ethernet-Kit' board

See merge request idf/esp-idf!4981
2019-06-06 18:04:26 +08:00
345748b7bb Merge branch 'feature/fixed_static_dram_size_pr3222' into 'master'
esp32: Allow fixed static RAM size and DRAM heap size

Closes IDFGH-780

See merge request idf/esp-idf!5043
2019-06-06 17:11:46 +08:00
2b7da2a245 Make unknown psram package version more obvious 2019-06-06 16:57:01 +08:00
542e544faa esp32: Allow fixed static RAM size and DRAM heap size
Merges https://github.com/espressif/esp-idf/pull/3222
2019-06-06 18:23:04 +10:00
e47047075f add translation for ESP32-Ethernet-Kit Getting Started Guide 2019-06-06 15:55:00 +08:00
4e95b1ad21 Provide getting started guide for 'ESP32-Ethernet-Kit' board 2019-06-06 15:45:45 +08:00
19f176eb71 Merge branch 'feature/net_test_suite' into 'master'
execute net test suite for esp32 network stack in ci as weekend tests

Closes IDF-210

See merge request idf/esp-idf!3439
2019-06-06 15:25:03 +08:00
1de7b8d5d3 Merge branch 'bugfix/idf_tools_noninteractive' into 'master'
tools, ci: Use non-interactive mode for idf_tools in CI

See merge request idf/esp-idf!5129
2019-06-06 14:58:58 +08:00
2503af2464 wps: add overlap event
modify some header files to be consistent with vnc
2019-06-06 13:16:20 +08:00
ed17cbbb8a Make sure the psram_io struct is initialized
Closes https://github.com/espressif/esp-idf/issues/3591
2019-06-06 09:05:49 +08:00
3d2b11347d Merge branch 'bugfix/support_tcp_window_scale' into 'master'
esp_wifi/tcpip: support TCP window scale

See merge request idf/esp-idf!5102
2019-06-05 20:08:18 +08:00
7a6ff35a2a idf.py: Add check for new cmake cache values 2019-06-05 11:43:53 +02:00
d95cedd782 Merge branch 'bugfix/keep_sco_data_path_on_hci_reset' into 'master'
Bugfix/keep_sco_data_path_on_hci_reset

See merge request idf/esp-idf!4949
2019-06-05 17:10:21 +08:00
dcc9459690 tools, ci: Use non-interactive mode for idf_tools in CI 2019-06-05 15:56:03 +07:00
c8d967417c bootloader: remove duplicate region overlap logic
(MINOR CHANGE)
2019-06-05 14:43:23 +08:00
4988b26e38 Merge branch 'feature/gcc_8' into 'master'
Switch GCC to 8.2 (esp32-2019r1 toolchain release)

Closes IDF-103

See merge request idf/esp-idf!5068
2019-06-05 12:53:01 +08:00
826ff7186a Merge branch 'feature/mqtt_support_event_loop' into 'master'
MQTT: Support for esp event loop

See merge request idf/esp-idf!4815
2019-06-05 11:04:16 +08:00
ed22949847 driver: Add uart and i2c UTs to check ticks_to_wait in some functions 2019-06-05 10:38:23 +08:00
962e35c011 docs/idf_monitor: remove the mention of addr2line bug
Related to https://github.com/espressif/esp-idf/issues/2149.
Since the new toolchain includes the updated version of binutils,
remove the mention of this bug.
2019-06-04 23:43:29 +08:00
ca323fbaad update toolchain to esp32-2019r1 release
Closes https://github.com/espressif/esp-idf/issues/1445 (std::to_string)
Closes https://github.com/espressif/esp-idf/issues/1876 (std::chrono_steady_clock)
Closes https://github.com/espressif/esp-idf/issues/1995 (std::timed_mutex)
Closes https://github.com/espressif/esp-idf/issues/2149 (addr2line)
Closes https://github.com/espressif/esp-idf/issues/2308 (lsiu/lsip)
Closes https://github.com/espressif/esp-idf/issues/2449 (c++17)
Closes https://github.com/espressif/esp-idf/issues/3258 (objdump)
2019-06-04 23:43:29 +08:00
6af7697820 ci: use the toolchain from tools.json 2019-06-04 23:37:46 +08:00
48e32113de component/bt: Allow configuration of default SCO_DATA_PATH in bluetooth controller 2019-06-04 16:31:21 +08:00
5274739fff Merge branch 'bugfix/btdm_a2dp_src_pkt_overflow' into 'master'
component/bt: fix some performance issues in A2DP source data flow control

See merge request idf/esp-idf!4932
2019-06-04 16:07:31 +08:00
684514b3d6 ci: added standard set of network suite for lwip as a part of weekend test 2019-06-04 08:27:53 +02:00
d1e7d04f9b esp_wifi/lwip: support TCP window scale
Support enable/disable TCP Window scale feature via menuconfig
2019-06-04 14:09:04 +08:00
1ae0dfe7ef mqtt: added support for esp event loop, updating examples to register and use event loop handler 2019-06-04 07:41:27 +02:00
c308d7bed6 ci: additional Cmake tests for EXTRA_COMPONENT_DIRS
Tests from
https://gitlab.espressif.cn:6688/idf/esp-idf/merge_requests/4253
2019-06-04 13:37:19 +08:00
9dd1b2ffb6 Merge branch 'bugfix/httpd_open_fn' into 'master'
HTTP Server : Close new session immediately if `open_fn` fails

Closes IDFGH-1165

See merge request idf/esp-idf!5019
2019-06-04 13:29:14 +08:00
045aaf6fb0 Merge branch 'feature/add_xxx_periph_h' into 'master'
soc: Add xxx_periph.h for all modules

Closes IDF-192

See merge request idf/esp-idf!4952
2019-06-04 13:24:14 +08:00
c338cbceb1 Merge branch 'bugfix/cmake_wifi_ut_md5' into 'master'
esp_wifi: fix MD5 unit tests with CMake

See merge request idf/esp-idf!5090
2019-06-04 13:23:06 +08:00
7f0ac87033 Merge branch 'bugfix/set_default_eth_handler' into 'master'
esp_event: fix bug in set_default_eth_handler

See merge request idf/esp-idf!5103
2019-06-04 13:06:55 +08:00
355f209dba uart: Fix ticks_to_wait when 0 or expired
Closes: https://github.com/espressif/esp-idf/issues/3301

Closes: IDFGH-964
2019-06-04 11:50:54 +08:00
22a30e2740 i2c: Fix ticks_to_wait when 0 or time expired
Closes: https://github.com/espressif/esp-idf/issues/3301

Closes: IDFGH-964
2019-06-04 11:50:54 +08:00
db6a30b446 Merge branch 'bugfix/libgcc_fpu_functions' into 'master'
esp32: Use FPU for floating point divide, power, complex multiplications

See merge request idf/esp-idf!5005
2019-06-04 08:41:58 +08:00
a83b4cfc1c Merge branch 'bugfix/cmake_menuconfig' into 'master'
Tools: Fix CMake menuconfig used with combination of MSYS and CMD

Closes IDFGH-1248

See merge request idf/esp-idf!5089
2019-06-04 07:06:40 +08:00
0dc6e869c6 Merge branch 'bugfix/event_minor_leak' into 'master'
esp_event: fix minor memory leak when overwriting already registered handler

See merge request idf/esp-idf!5108
2019-06-03 22:37:06 +08:00
34b308eb79 Merge branch 'bugfix/wpa2_ent_vulnerability' into 'master'
esp_wifi: wpa2 enterprise vulnerability

See merge request idf/esp-idf!4992
2019-06-03 21:57:59 +08:00
a1b66e8984 Merge branch 'bugfix/set_ccount_overflow' into 'master'
clk: Fix the overflow when setting ccount

See merge request idf/esp-idf!4309
2019-06-03 19:50:04 +08:00
89e2b48a18 components/bt: Add API to config EIR data 2019-06-03 19:29:54 +08:00
20156f9702 idf.py: Add support for action specific options
Changes argument parsing mechanism from argparse to a new one, that provides better support for extensions and options that are only applicable to specific subcommands,

Breaking changes:

1. All global options should go before subcommands, i.e. `idf.py build -C ~/some/project` will not work anymore, only `idf.py -C ~/some/project build` is acceptable
2. To provide multiple values to an option like `--define-cache-entry` it's necessary to repeat option many times, i.e. `idf.py -D entry1 entry2 entry3` will not work, right way is: `idf.py -D entry1 -D entry2 -D entry3`
At the moment there are 3 options like this:  `--define-cache-entry` in base list and `--test-components` and `--test-exclude-components` in the unit test extensions
3. Drops `defconfig` and `bootloader-clean` subcommands

Closes https://github.com/espressif/esp-idf/issues/3570
Closes https://github.com/espressif/esp-idf/issues/3571
2019-06-03 13:07:02 +02:00
4d3762a8df clk: Fix the overflow when setting ccount
The multiplication will be overflow when using 160 or 240 MHz, this can lead the inaccuracy of log time stamp in startup.
2019-06-03 11:04:47 +00:00
fa36433199 Merge branch 'feature/multiple_github_prs' into 'master'
Fixes from github PRs

See merge request idf/esp-idf!5040
2019-06-03 18:50:46 +08:00
399d2d2605 all: Using xxx_periph.h
Using xxx_periph.h in whole IDF instead of xxx_reg.h, xxx_struct.h, xxx_channel.h ... .

Cleaned up header files from unnecessary headers (releated to soc/... headers).
2019-06-03 14:15:08 +08:00
3ddab0b8f3 soc: Add xxx_periph.h for all modules
The "xxx_periph" header file includes all SOC-level definitions for that peripheral.

Closes: IDF-192
2019-06-03 13:56:54 +08:00
2f471cb046 Merge branch 'bugfix/pc_ble_example_uuid' into 'master'
protocomm_ble : Example updated to use custom 128bit service UUID

See merge request idf/esp-idf!5100
2019-06-03 13:23:46 +08:00
8b890bdaf3 Merge branch 'bugfix/protocomm_sec_mult_inst' into 'master'
Protocomm : Session security now supports multiple instances of the same type

See merge request idf/esp-idf!4756
2019-06-03 11:46:24 +08:00
92c5f17be0 Merge branch 'bugfix/protocomm_minor' into 'master'
Protocomm : Minor fixes

See merge request idf/esp-idf!5094
2019-06-03 09:48:03 +08:00
bc6b80e7c2 add missing source files to CMakeLists for HFP 2019-05-31 18:54:19 +08:00
b859584f91 Merge branch 'feature/btdm_modem_sleep_with_32K_XTAL_under_light_sleep' into 'master'
Feature/btdm modem sleep with 32 k xtal under light sleep

See merge request idf/esp-idf!4744
2019-05-31 18:51:10 +08:00
1cf1f7e723 Merge branch 'bugfix/docs_rtd_failure_on_missing_submodule' into 'master'
docs: Add mqtt submodule to RTD build configuration. Now any submodule included in...

See merge request idf/esp-idf!5096
2019-05-31 16:26:45 +08:00
30d9ee56fb Merge branch 'feature/config_spi_pins_based_on_efuse_value' into 'master'
feat(psram): config SPI psram pins based on efuse value

See merge request idf/esp-idf!4950
2019-05-31 16:15:56 +08:00
c187f1ef6b esp_event: fix bug in set_default_eth_handler 2019-05-31 16:00:15 +08:00
37c91133ff esp_event: fix minor memory leak when overwriting alredy registered handler 2019-05-31 08:31:06 +02:00
a38b50a8a9 esp_event: extend register/unregister test case to cover overwriting existing handler works as expected 2019-05-31 08:31:06 +02:00
8009320fb4 esp_wifi: fix wpa2 enterprise vulnerability issues
Fix following wpa2 enterprise vulnerability issues:
1. The station can complete 4-way handshake after EAP-FAIL is received
2. The station crashes if EAP-SUCCESS is received before PMK is setup
2019-05-30 21:19:26 +08:00
13908160fb components/bt: Fix make errors due to macro usage error 2019-05-30 20:19:43 +08:00
8cc90bfbb1 esp_wifi: fix MD5 unit tests with CMake 2019-05-30 11:42:12 +08:00
b68f5b4f8c Merge branch 'feature/kconfig_format_docs' into 'master'
docs: Kconfig formatting rules and backward compatibility of options

See merge request idf/esp-idf!5052
2019-05-30 10:11:56 +08:00
0b70dfc27f Add floating point performance test 2019-05-30 10:09:24 +10:00
5b15686e29 docs: Kconfig formatting rules and backward compatibility of options 2019-05-29 14:56:23 +02:00
5034a57605 Tools: Fix CMake menuconfig used with combination of MSYS and CMD 2019-05-29 14:35:57 +02:00
4f8d5d25c4 Delete unneeded code fragments from GPIO-example
Closes https://github.com/espressif/esp-idf/pull/2822
2019-05-29 18:02:18 +05:30
9ade9f68b3 Update i2c.rst
I2C mode is set during configuration, not the 'op(eration) mode'

Closes https://github.com/espressif/esp-idf/pull/3452
2019-05-29 18:02:18 +05:30
1c56e33d1c Improve Linux cmake getting started documentation
Closes https://github.com/espressif/esp-idf/pull/3347
2019-05-29 18:02:18 +05:30
9495b7a7a6 Minor fix on Scheduler Suspension subtitle
Closes https://github.com/espressif/esp-idf/pull/3343
2019-05-29 18:02:18 +05:30
4b1f8ef3a2 Correct seconds calculation from TLM data field
The SEC_CNT field in the eddystone TLM frame represents the number of centiseconds
elapsed since reboot. A divisor of 10 has been placed within the code to derive seconds from SEC_CNT.

Closes https://github.com/espressif/esp-idf/pull/3300
2019-05-29 18:02:18 +05:30
b6ad457904 Update esp_eddystone_api.h
Change incorrect bitshifts in big_endian_read_32() function.
This was giving wrong values of of the 4 byte fieldswithin the eddystone TLM message, namely 'ADV_CNT' and 'SEC_CNT'
2019-05-29 18:02:18 +05:30
485df5e6c5 Fixed inconcsistent file name
Closes https://github.com/espressif/esp-idf/pull/3270
2019-05-29 18:02:18 +05:30
920d35b5d0 Update i2c documentation
Description for i2c_slave_read_buffer had leftover from copying from write fct. data
pointer description described the wrong way (writing into internal buffer)

Closes https://github.com/espressif/esp-idf/pull/3268
2019-05-29 18:02:18 +05:30
4430456b64 Change SPI_USE_RXDATA->SPI_TRANS_USE_RXDATA and SPI_USE_TXDATA->SPI_TRANS_USE_TXDATA on documentation
Closes https://github.com/espressif/esp-idf/pull/2802
2019-05-29 18:02:18 +05:30
058c6afd3c Add option to disable server side SSL session tickets as well as client
Closes https://github.com/espressif/esp-idf/pull/2570
2019-05-29 18:02:18 +05:30
5f62d8be79 Merge branch 'docs/update_idf_monitor' into 'master'
Docs/update idf monitor

See merge request idf/esp-idf!5084
2019-05-29 18:11:41 +08:00
96db6f906a Docs/update idf monitor 2019-05-29 18:11:40 +08:00
1831a375ec protocomm_ble : Example updated to use custom 128bit service UUID
Also removed old hardcoded UUIDs from README of esp_prov
2019-05-29 13:53:08 +05:30
31b854e17d Merge branch 'feature/do_not_use_link_groups' into 'master'
Do not use link groups

See merge request idf/esp-idf!4897
2019-05-29 15:18:31 +08:00
05be37c87c idf_size: Support JSON output
Pass -DOUTPUT_JSON=1 to get JSON formatted output from CMake targets
2019-05-29 17:11:53 +10:00
da13efc17a Merge branch 'feature/btdm_msbc_codec' into 'master'
Wide Band Speech for HFP

See merge request idf/esp-idf!4854
2019-05-29 14:39:21 +08:00
73b90387cb Merge branch 'bugfix/reset_log_uart_port' into 'master'
esp32: Add reset CONSOLE_UART port

See merge request idf/esp-idf!5011
2019-05-29 14:28:37 +08:00
9ac5a464cd Merge branch 'doc/review_pwr_management' into 'master'
Doc/review power management

See merge request idf/esp-idf!4674
2019-05-29 12:59:53 +08:00
588f059159 Doc/review power management 2019-05-29 12:59:52 +08:00
c7a0d5e063 Fix bug in the floating point unit test code 2019-05-29 10:14:31 +10:00
d9a5c8f387 esp32: Use FPU for floating point divide, power, complex multiplications
* Linker was choosing ROM symbols for these, which use integer soft-float
  operations and are much slower.
* _divsf3() moved to IRAM to avoid regressions with any code that does
  integer float division in IRAM interrupt handlers (+88 bytes IRAM)
* Thanks to michal for reporting:
  https://esp32.com/viewtopic.php?f=14&t=10540&p=43367
2019-05-29 10:14:31 +10:00
154fc74f76 Merge branch 'bugfix/nvs_typedef_naming_pr3239' into 'master'
nvs: Append _t to nvs_handle & nvs_open_mode types

Closes IDFGH-891

See merge request idf/esp-idf!4783
2019-05-29 08:14:00 +08:00
80fb837b29 Merge branch 'bugfix/kconfig_checker_message' into 'master'
Tools: Produce a clearer message for Kconfig prefix errors

See merge request idf/esp-idf!5054
2019-05-29 08:10:31 +08:00
9d0ca60398 Merge branch 'bugfix/mqtt_improved_receive' into 'master'
MQTT improved receive and minor updates to weekend tests

See merge request idf/esp-idf!4947
2019-05-29 08:07:17 +08:00
db138ae19b feat(psram): config SPI psram pins based on efuse value 2019-05-28 21:25:16 +08:00
1031f77262 docs: Add mqtt submodule to RTD build configuration. Now any submodule included in documentation build by Doxygen should be included in this file 2019-05-28 20:11:21 +08:00
f678a6289d reduce the minimum delay uncertainty of esp_timer for Bluetooth modem sleep from 1.8ms to 0.5ms for lower power consumption 2019-05-28 19:56:31 +08:00
ff2c583a0d component/bt: Add option to configure BLE SCA through menuconfig and use a fixed value of clock cycle to estimate sleep duration for external 32kHz oscillator 2019-05-28 19:56:26 +08:00
5384338341 Protocomm : Minor fixes
List of changes:
* protocomm_httpd : Reset session_id static variable on start and stop
* security1 : Typo in checking failed dynamic allocation
2019-05-28 14:41:49 +05:30
9c6bec203d HTTP Server : Close new session immediately if open_fn fails
open_fn() was introduced in the context of HTTPS server, as a configurable callback function that is called by the HTTP server, on every newly created socket. It is responsible of allocating resources for per session transport security.

Earlier, if open_fn were to fail, the newly created socket would be closed by the server but the corresponding entry, for the now invalid socket, will remain in the internal socket database until that invalid socket is detected due to error when calling select(). Because of this delayed closing of sockets, the HTTPS server would quickly face shortage of available sessions when a lot of SSL handshake errors are happening (this typically occurs when a browser finds that the server certificate is self signed). This changes in this MR fix this issue by clearing up the socket from internal database, right after open_fn fails.

Closes https://github.com/espressif/esp-idf/issues/3479
2019-05-28 08:49:02 +00:00
d68f1907ef bugfix(flash): improve flash dio read timing
When flash work in DIO Mode, in order to ensure the fast read mode of flash
is a fixed value, we merged the mode bits into address part, and the fast
read mode value is 0 (the default value).
2019-05-28 14:51:04 +08:00
550b1897c8 Merge branch 'feature/idf_tools_dir_2' into 'master'
IDF tools metadata file and IDF_TOOLS_PATH support

See merge request idf/esp-idf!4411
2019-05-28 13:39:47 +08:00
b3b6ce2eea docs: remove reference of using link groups 2019-05-28 13:01:43 +08:00
22514c1dd9 cmake: For gcc8 use linker to find paths to libc, libm, libstdc++, etc
Removes the need to know/guess the paths to these libraries. Once we are gcc 8 only, we
can remove -nostdlib and no additional arguments are needed for system libraries.

The catch is: any time IDF overrides a symbol in the toolchain sysroot, we need
an undefined linker marker to make sure this symbol is seen by linker.
2019-05-28 12:54:37 +08:00
2c12080049 components: correct dependency information for linking without link groups 2019-05-28 10:51:02 +08:00
83ce35d638 cmake: do not use link groups 2019-05-28 10:51:02 +08:00
7963ac65af mqtt_tests: add weekend test for sending and receiving empty payload messages, update config options per new naming convetions 2019-05-27 21:57:18 +02:00
38d15cbd63 mdns tests: adapt mdns fuzzer test to compile with event loop library 2019-05-27 16:31:25 +02:00
d19b20388f lwip tests: adapt fuzzer test mocks to comply with 4.0 refactoring 2019-05-27 16:31:24 +02:00
db121a56e1 tcp_transport: modified ws_read to read payload directly to the read buffer and separately from header bytes
Previous version read all data to the buffer including header which reduced maximum payload read. This version uses a local array to receive header and reads payload bytes to the buffer
2019-05-27 16:31:24 +02:00
7403e8e11c component/bt: remove the pm_lock that prevents light sleep in case that external 32kHz crystal is used as Bluetooth low power clock 2019-05-27 17:47:33 +08:00
801f5d6e82 Merge branch 'bugfix/more_cmake_fixes' into 'master'
More CMake fixes

See merge request idf/esp-idf!5060
2019-05-27 15:48:25 +08:00
b2e54a9cc6 ci: Add IDF_DEPRECATED macro for things we only deprecate in our CI passes 2019-05-27 17:43:38 +10:00
02f2e63662 Merge branch 'feature/use_cmake_function_call_for_embedding_ulp' into 'master'
Use function call for embedding ULP binaries

See merge request idf/esp-idf!4242
2019-05-27 13:14:09 +08:00
c61a0bba4e Merge branch 'docs/translate-getting-started-guides-wrover' into 'master'
Add translation for ESP32-WROVER-KIT Getting Started Guides

See merge request idf/esp-idf!4672
2019-05-27 07:53:20 +08:00
440c42693d Add translation for ESP32-WROVER-KIT Getting Started Guides 2019-05-27 07:53:20 +08:00
0685a2e9f6 Merge branch 'bugfix/fix_no_disconnect_event_when_rx_disassoc_after_send_auth' into 'master'
wifi: fix the bug no disconnect event when STA recv disassoc after sending auth

Closes WIFI-431, WIFI-507, and IDFGH-1160

See merge request idf/esp-idf!4833
2019-05-24 19:56:50 +08:00
fcf4886172 components/bt: Support EV3 packet type 2019-05-24 17:36:10 +08:00
dd906a91a5 components/bt: Enable mSBC and add decoder and encoder 2019-05-24 17:36:10 +08:00
20758443df components/bt: Add packet loss concealment (PLC) for HFP 2019-05-24 17:33:52 +08:00
e10d5aaddc component/bt: modify the SBC decoder to support mSBC mode 2019-05-24 17:33:52 +08:00
7c28611a3d component/bt: modify the SBC encoder to support mSBC mode 2019-05-24 17:33:52 +08:00
f15323b453 component/bt: remove SBC frame scramling 2019-05-24 17:33:52 +08:00
8f7e01baed tools: add metadata file and idf_tools.py 2019-05-24 17:04:23 +08:00
8d1a9c07a0 tools/check_python_dependencies: make aware of IDF_TOOLS_PATH 2019-05-24 17:04:23 +08:00
8d136a103b idf.py: allow overriding the program name 2019-05-24 17:04:23 +08:00
74247ed7f5 ci: keep executables list formatted 2019-05-24 17:04:23 +08:00
22a991bb29 wifi bugfixs:
1. fix the bug no disconnect event when STA recv disassoc after sending auth
2. fix the bug full scan send multi events when recv deauth/disassoc

Closes https://github.com/espressif/esp-idf/issues/3474
2019-05-24 11:23:16 +08:00
fd70355d5d Merge branch 'bugfix/idfpy_confserver' into 'master'
Fix cmake confserver target

See merge request idf/esp-idf!5047
2019-05-23 19:54:04 +08:00
25b539d4fc cmake: make project includes know gcc version as well 2019-05-23 18:39:31 +08:00
74c6c926ea nghttp: move HAVE_CONFIG_H compile definition to component 2019-05-23 18:39:31 +08:00
f125a9aaf4 cmake: restore creation of kconfig_menus.json 2019-05-23 18:39:31 +08:00
49edb193ec Merge branch 'bugfix/fix_some_wifi_bugs_0508' into 'master'
esp_wifi: fix some wifi bugs 0508

Closes WIFI-310, WIFI-384, WIFI-526, and FCS-176

See merge request idf/esp-idf!4957
2019-05-23 17:55:03 +08:00
865b24144e remove secure boot test mode 2019-05-23 14:13:08 +05:30
a52451258e Fix cmake confserver target 2019-05-23 08:29:05 +02:00
c879aff6f5 Merge branch 'bugfix/cmake_git_describe' into 'master'
cmake: Project & IDF git revisions: Show un-annotated tags and -dirty flag

See merge request idf/esp-idf!5042
2019-05-23 12:36:49 +08:00
95dcfecedc cmake: Project & IDF git revisions: Show un-annotated tags and -dirty flag
Adds --tags and --dirty flags to cmake git_describe() calls, and not
pass the HEAD commit hash (incompatible with --dirty)

Makes IDF_VER output the same as in Make build system

Thanks to @william-ferguson-au for reporting this:
https://github.com/espressif/esp-idf/issues/3378#event-2355460974
2019-05-23 13:46:23 +10:00
0cb6b8be01 Merge branch 'feature/example_ota_over_ethernet' into 'master'
update ota example to support both Wi-Fi and Ethernet

Closes IDFGH-427

See merge request idf/esp-idf!4801
2019-05-23 11:27:26 +08:00
197e0ae147 esp_wifi: fix some WiFi bugs
Fix following WiFi bugs:
1. Make smartconfig thread-safe
2. Fix WiFi stop/deinit memory leak
3. Refactor for WiFi init/deinit/ioctl etc
4. Add declaration for esp_wifi_internal_ioctl()
5. Fix the bug that WiFi stop leads to task watchdog
2019-05-22 22:18:05 +08:00
d97d3c2bc7 Tools: Produce a clearer message for Kconfig prefix errors 2019-05-22 15:48:30 +02:00
81ca1c0139 Merge branch 'bugfix/fix_softap_crash_when_sta_reset' into 'master'
wifi: fix softap crash when sta reset

Closes WIFI-509

See merge request idf/esp-idf!4995
2019-05-22 21:00:40 +08:00
1886d8d4ef update ota examples to support both Wi-Fi and Ethernet 2019-05-22 17:56:10 +08:00
0e7442bb7a Merge branch 'feature/spi_slave_support_hal' into 'master'
spi_slave: add HAL support

See merge request idf/esp-idf!4830
2019-05-22 13:42:11 +08:00
1466f37a9b Merge branch 'bugfix/esp_event_unregistration_issue' into 'master'
esp_event: fix issue with post data preparation

Closes #76

See merge request idf/esp-idf!5007
2019-05-22 12:26:47 +08:00
8ed07d0bb2 esp_event: check that event data is prepared properly 2019-05-22 11:30:27 +08:00
136e5bc32d esp_event: style fixes 2019-05-22 11:29:56 +08:00
4042902402 esp_event: always alloc data when not posting from isr 2019-05-22 11:29:17 +08:00
f21b8bbf55 esp_event: fix issue with post data preparation
Fixes an issue with post instance data preparation. Currently, there is
no way to check if event data has really been set during handler
execution preparation. When data is not allocated from the heap, user
could have passed 0x0 which can lead to failed checks.

This also implements using the already allocated data memory for posting
events from non-ISR functions when data size is less than the capacity.
2019-05-22 11:28:39 +08:00
e8ade3c68d Merge branch 'feature/Kconfig_rename' into 'master'
Rename Kconfig options

Closes IDF-265

See merge request idf/esp-idf!4883
2019-05-22 11:08:36 +08:00
897bb55482 nvs: Append _t to nvs_handle & nvs_open_mode types
Merges https://github.com/espressif/esp-idf/pull/3239/
2019-05-22 02:53:28 +00:00
32027805d4 docs: update instructions on how to embed ulp binaries 2019-05-21 20:00:06 +08:00
443850b1a8 example: update ulp example to use cmake function 2019-05-21 20:00:06 +08:00
4483724df8 ulp: use cmake function to embed ulp binaries 2019-05-21 20:00:06 +08:00
e1db12993b bootloader: pass legacy header config variable to subproject 2019-05-21 17:03:45 +08:00
e1a3dc50de Merge branch 'bugfix/cmake_changes_fixes' into 'master'
CMake: various bugfixes

See merge request idf/esp-idf!5030
2019-05-21 15:53:15 +08:00
151f757912 Rename Kconfig options (examples) 2019-05-21 09:32:55 +02:00
1ad2283641 Rename Kconfig options (components/bootloader) 2019-05-21 09:32:55 +02:00
997b29a9ca Rename Kconfig options (components/esptool_py) 2019-05-21 09:32:55 +02:00
6c0a7a66f3 Rename Kconfig options (components/app_trace) 2019-05-21 09:32:55 +02:00
a1bddb923b Rename Kconfig options (components/bt) 2019-05-21 09:09:01 +02:00
24a2e5a17e Rename Kconfig options (components/tcpip_adapter) 2019-05-21 09:09:01 +02:00
d61d58e78d Rename Kconfig options (components/pthread) 2019-05-21 09:09:01 +02:00
0ae53691ba Rename Kconfig options (components/esp32) 2019-05-21 09:09:01 +02:00
d4af5e6fff Rename Kconfig options (components/ethernet) 2019-05-21 09:09:01 +02:00
b8111ab1d5 Rename Kconfig options (components/esp_wifi) 2019-05-21 09:09:01 +02:00
92950db44e Rename Kconfig options (components/lwip) 2019-05-21 09:09:01 +02:00
e9f1011b1b Rename Kconfig options (components/driver) 2019-05-21 09:09:01 +02:00
bf626f2aba Rename Kconfig options (components/esp_event) 2019-05-21 09:09:01 +02:00
976d2a4b7f Rename Kconfig options (components/freemodbus) 2019-05-21 09:09:01 +02:00
64c2aa15aa Rename Kconfig options (components/freertos) 2019-05-21 09:09:01 +02:00
c5000c83d2 Rename Kconfig options (root) 2019-05-21 09:09:01 +02:00
1af263ebb2 tools: Check syntax also of Kconfig.in files 2019-05-21 09:09:01 +02:00
979e1e32cb tools: Ignore sdkconfig.rename files from the example directory 2019-05-21 09:09:01 +02:00
67e7cd8a0f tools: Kconfig checker ignores test files 2019-05-21 09:09:01 +02:00
254c1c1085 Confgen: link config options to parent choices in the docs 2019-05-21 09:09:01 +02:00
30ca5c7a88 Confgen: Fix prefix removal to work for exact match only 2019-05-21 09:09:01 +02:00
3bf56cdd17 Merge branch 'bugfix/ws_read_fragmented_header' into 'master'
Fix reading http header if received in multiple chunks

See merge request idf/esp-idf!4996
2019-05-21 14:56:34 +08:00
be6f5563b4 esp32: Add reset uart
Fixed the case when the first part of log was missed
this was happened when:
 * CONFIG_CONSOLE_UART_CUSTOM option is selected (UART1)
 * The selected CONSOLE_UART port is used also for the console component
 * in code esp_restart() or abort() functions were called.
2019-05-21 06:18:28 +00:00
ba51e9fb5c Merge branch 'bugfix/aes_fault_inj' into 'master'
mbedtls: Add simple fault injection check for hardware AES peripheral

See merge request idf/esp-idf!5023
2019-05-21 13:44:32 +08:00
0ccb7541f5 Merge branch 'feature/nvs_check_item_modified' into 'master'
nvs: Check if an item is modified before writing out an identical copy

See merge request idf/esp-idf!4934
2019-05-21 10:54:21 +08:00
6b08e8b449 esp_timer: handle esp_timer_delete in timer task
Closes https://github.com/espressif/esp-idf/issues/3458
2019-05-21 10:48:28 +08:00
af98ca6b46 hwcrypto: Add AES fault injection check
Hardware AES-CBC performance changes:

Release config 11.0MB/sec -> 10.8MB/sec
Debug config 9.4MB/sec -> 9.8MB/sec

(Unrolling the loop to optimize the check improves
performance at -Og, even with the fault check.)
2019-05-21 12:41:42 +10:00
c9edb7c8a9 mbedtls: Add AES-CBC performance test
Hardware AES engine gets 11.0MB/sec on Release config
Software AES is around 2.3MB/sec on Release config
2019-05-21 12:41:40 +10:00
ef05ccf666 Merge branch 'feature/download_fonts_only_if_missing' into 'master'
Download font file only is not exists in target location

See merge request idf/esp-idf!4979
2019-05-21 09:51:39 +08:00
52cf8c39aa Download font file only is not exists in target location 2019-05-21 09:51:39 +08:00
d41d70b8ef tcp_transport: reading http header in a chunked mode until header terminator received (or timeout) to correctly receive all header if fragmented
Closes https://github.com/espressif/esp-idf/issues/3461
2019-05-20 16:40:03 +02:00
2273646bda wifi: fix softap crash when sta reset 2019-05-20 19:57:50 +08:00
b4ad6c1426 cmake: refactor quick check given component dirs 2019-05-20 19:24:17 +08:00
e1726a91ce cmake: project includes should know about ESP_PLATFORM variable 2019-05-20 18:24:34 +08:00
e3eb945fd2 cmake: restore use of GNU extensions from libc 2019-05-20 18:24:34 +08:00
5175a152d9 cmake: exclude dot-dirs from added components 2019-05-20 18:24:34 +08:00
078c69e689 cmake: remove redundant variable setting 2019-05-20 18:24:34 +08:00
33db6d608e spi_slave: add HAL support 2019-05-20 07:34:34 +00:00
595d702e97 Merge branch 'feature/update_esp_tls_config' into 'master'
esp-tls: Add support to add CN from config and validate PEM buffers

See merge request idf/esp-idf!4929
2019-05-20 14:00:37 +08:00
c8a2760741 Merge branch 'bugfix/windows_detection_on_make' into 'master'
Windows detection on Makefiles cleanup

See merge request idf/esp-idf!4945
2019-05-20 13:59:05 +08:00
8c6ff874af Merge branch 'bugfix/custom_log_uart_rx_pin' into 'master'
bootloader_support: Fix UART RXD pin for console output (CUSTOM option)

Closes IDFGH-505

See merge request idf/esp-idf!5009
2019-05-20 13:58:37 +08:00
826acbc3de Merge branch 'bugfix/custom_bootloader_subproject_build' into 'master'
CMake: Fix custom bootloader does not override original

See merge request idf/esp-idf!5000
2019-05-20 13:58:03 +08:00
6ca07eca68 esp_common: add version definitions in code and build system
Closes https://github.com/espressif/esp-idf/issues/2482
Closes IDF-253
2019-05-20 13:14:56 +08:00
113e02aa3a Merge branch 'bugfix/idf_py_fixes' into 'master'
idf.py fixes from GitHub

Closes IDFGH-1005 and IDFGH-1006

See merge request idf/esp-idf!5012
2019-05-20 12:22:19 +08:00
2b301f53e4 Merge branch 'bugfix/fix_build_make_macos' into 'master'
make: fix build failure on macos with GNU make <= 3.81

See merge request idf/esp-idf!5010
2019-05-20 10:44:49 +08:00
d1c6bbf42e esp-tls: Add support to add CN from config and validate PEM buffers 2019-05-17 20:06:44 +05:30
1cf6964386 ci: check that custom bootloader overrides original 2019-05-17 15:17:54 +08:00
927007fdd2 cmake: fix custom bootloader issue
Issue is that when users creates a custom bootloader from
$IDF_PATH/components/bootloader. Parent project build uses the copy but
bootloader subproject build uses the original still. The issue is solved
by passing the custom bootloader as extra component directory so
bootloader build knows to use the new copy (itself) in the build.
2019-05-17 15:17:32 +08:00
5c0ce79f59 idf.py: Fix encoding issue with serial port names on Windows
Closes https://github.com/espressif/esp-idf/issues/3334
2019-05-17 14:25:53 +08:00
907471ce41 Merge branch 'feature/cmake_changes_for_4.0' into 'master'
CMake for 4.0

See merge request idf/esp-idf!4452
2019-05-17 14:21:48 +08:00
f91d969c13 idf.py: Use mingw32-make for version check
Closes https://github.com/espressif/esp-idf/issues/3333
2019-05-16 21:20:10 +08:00
8f91d730da make: fix build failure on macos with GNU make <= 3.81
Closes https://github.com/espressif/esp-idf/issues/3459
2019-05-16 14:09:43 +02:00
6cdfde094d Merge branch 'bugfix/protocomm_ble_128bit_uuid' into 'master'
protocomm_ble : Fix support for custom service UUIDs

See merge request idf/esp-idf!4978
2019-05-16 19:55:47 +08:00
98c77cebb2 bootloader_support: Fix UART RXD pin for console output (CUSTOM option)
The RXD pin is assigned as input (fix for custom uart option).

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

Closes: IDFGH-505
2019-05-16 11:18:56 +00:00
ad3b820e70 Merge branch 'bugfix/docs_build_failure_on_rtd' into 'master'
Fixed Breathe version to avoid docs build failure on ReadTheDocs server....

See merge request idf/esp-idf!4928
2019-05-15 21:27:40 +08:00
dc3f7824dc Merge branch 'doc/add_translation_for_api-reference_index.rst' into 'master'
Add Chinese translation for index.rst files and esp_wifi.rst file in api-reference following Kirill's English review

See merge request idf/esp-idf!4943
2019-05-15 21:05:45 +08:00
2864d6deb3 Add Chinese translation for index.rst files and esp_wifi.rst file in api-reference following Kirill's English review, including:
-network/index.rst
-network/esp_wifi.rst
-peripherals/index.rst
-provisioning/index.rst
2019-05-15 21:05:44 +08:00
27fe2006de Fixed Breathe version to avoid docs build failure on ReadTheDocs server. Provided RTD project configuration file to be able to select python version for specific to esp-idf release. 2019-05-15 20:40:48 +08:00
015922f8d9 esp_prov : Runtime discovery of Service UUID and endpoint name mapping
List of changes:
* Retrieve UUID property from Bluez device object before connecting to retrieve UUID contained in advertisement
* Read Characteristic User Descriptions attribute of each UUID for mapping endpoint names
* To support older implementations with hardcoded Name-UUID map, revert to fallback mode in order if advertisement data has no UUID field
2019-05-15 12:27:03 +00:00
120bd3a456 protocomm_ble : Fixed custom service UUID support
List of changes:
* Use 128 bit characteristic UUIDs when creating GATT table entries
* Change primary service attribute value to 128 bit custom service UUID
* Use raw advertisement data to convey flags and 128 bit primary service UUID
* Use raw scan response to send device name as complete local name
* Increase maximum device name length in relation to maximum scan response length
* Set Characteristic User Description attributes for each characteristic to convey protocomm endpoint names
2019-05-15 12:27:03 +00:00
f9043c43c9 Merge branch 'bugfix/win_py_case_insensitive' into 'master'
idf.py: Add more case-insensitive support on Win

See merge request idf/esp-idf!4991
2019-05-15 14:16:52 +08:00
208e1ecc29 Merge branch 'bugfix/mdns_docs_usage' into 'master'
mdns: documentation: fixed inconsistent enum in example of reading mdns results

See merge request idf/esp-idf!4997
2019-05-15 12:57:24 +08:00
1b4c7d30e5 Merge branch 'bugfix/esp_efuse_fields_unused_variable' into 'master'
efuse: Fix unused variable warning when NDEBUG

Closes IDFGH-1114

See merge request idf/esp-idf!4955
2019-05-15 12:48:28 +08:00
3f7bd872ac Merge branch 'refactor/power_management' into 'master'
power_management: Using port*_CRITICAL_ISR to be consistent with FreeRTOS

See merge request idf/esp-idf!4412
2019-05-15 12:27:58 +08:00
786f5641f7 mdns: documentation: fixed inconsistent enum in example of reading mdns results 2019-05-14 16:41:07 +02:00
0458bacc4e Merge branch 'bugfix/httpd_log_purge' into 'master'
esp_http_server : Logging of purged data to monitor made configurable

Closes IDFGH-1034

See merge request idf/esp-idf!4941
2019-05-14 18:07:51 +08:00
7493bd2e28 cmake: add command to get config value 2019-05-14 18:01:14 +08:00
de9bb5a160 cmake: fix scope issues 2019-05-14 18:01:14 +08:00
477fa49fc0 examples: update idf_as_lib example to use new api 2019-05-14 18:01:14 +08:00
c564d1730f esp_common: append gc sections link flag 2019-05-14 18:01:14 +08:00
d214bb912f examples: update with build system changes 2019-05-14 18:01:14 +08:00
eb867aeff3 idf.py: Add more case-insensitive support 2019-05-14 11:45:39 +07:00
ffec9d4947 components: update with build system changes 2019-05-13 19:59:17 +08:00
ee92352bf8 docs: update with build system changes 2019-05-13 19:57:39 +08:00
99f8a811fd cmake: Warn if something which looks like a component directory isn't
Otherwise, fails build at the add_subdirectory stage
2019-05-13 19:57:39 +08:00
3cf56ea6b6 cmake: Fix menuconfig target
need to load mconf path as build property
2019-05-13 19:57:39 +08:00
c6dc47b3e2 cmake: build system changes 2019-05-13 19:57:39 +08:00
e6a714480d unit-test-app: freertos_compliance config added
Signed-off-by: Sachin Parekh <sachin.parekh@espressif.com>
2019-05-13 16:39:19 +05:30
d803465ec6 ref_clock: port*_CRITICAL vanilla FreeRTOS compliance
Signed-off-by: Sachin Parekh <sachin.parekh@espressif.com>
2019-05-13 16:39:19 +05:30
a190b527ac power_management: port*_CRITICAL vanilla FreeRTOS compliance
Signed-off-by: Sachin Parekh <sachin.parekh@espressif.com>
2019-05-13 16:39:19 +05:30
db8041a67f intr_alloc: port*_CRITICAL vanilla FreeRTOS compliance
Signed-off-by: Sachin Parekh <sachin.parekh@espressif.com>
2019-05-13 16:39:19 +05:30
f3db0b5a4a crosscore_init: port*_CRITICAL vanilla FreeRTOS compliance
Signed-off-by: Sachin Parekh <sachin.parekh@espressif.com>
2019-05-13 16:39:19 +05:30
5979086379 timer: port*_CRITICAL vanilla FreeRTOS compliance
Signed-off-by: Sachin Parekh <sachin.parekh@espressif.com>
2019-05-13 16:39:19 +05:30
7f37824eb7 rtc_module: port*_CRITICAL vanilla FreeRTOS compliance
Signed-off-by: Sachin Parekh <sachin.parekh@espressif.com>
2019-05-13 16:39:19 +05:30
da41885e85 rmt: port*_CRITICAL vanilla FreeRTOS compliance
Signed-off-by: Sachin Parekh <sachin.parekh@espressif.com>
2019-05-13 16:39:19 +05:30
e9898b1280 periph_ctrl: port*_CRITICAL vanilla FreeRTOS compliance
Signed-off-by: Sachin Parekh <sachin.parekh@espressif.com>
2019-05-13 16:39:19 +05:30
5c6b9adf11 freertos: port*_CRITICAL_SAFE API added
port*_CRITICAL_SAFE API calls port*_CRITICAL or port*_CRITICAL_ISR
depending on the context (Non-ISR or ISR respectively).

FREERTOS_CHECK_PORT_CRITICAL_COMPLIANCE Kconfig option added

Signed-off-by: Sachin Parekh <sachin.parekh@espressif.com>
2019-05-13 16:39:19 +05:30
56078159d4 Merge branch 'bugfix/xTaskIncrementTick' into 'master'
freertos: Fix xTaskIncrementTick for unwind the Tick for CPU1

Closes IDF-183

See merge request idf/esp-idf!4792
2019-05-13 12:34:54 +08:00
6488e8a8b5 Merge branch 'feature/example_restful_server' into 'master'
add http restful server example

Closes IDF-584

See merge request idf/esp-idf!4829
2019-05-13 12:33:21 +08:00
ecd3db0795 Merge branch 'feature/sha_rewrite_rom_functions' into 'master'
esp32: Rewrite esp_sha() function with mbedtls APIs

See merge request idf/esp-idf!4236
2019-05-13 12:32:45 +08:00
bbdeff1da1 esp32: Rewrite esp_sha function
It removes using a STALL_OTHER_CPU while sha operations.
It improves performance with SHA.
2019-05-13 12:32:45 +08:00
014de712ab Merge branch 'feature/update_cjson_lib_to_1.7.11' into 'master'
cJSON: update to v1.7.11

Closes IDFGH-1004

See merge request idf/esp-idf!4881
2019-05-13 12:31:19 +08:00
01b738055b Merge branch 'docs/translate-getting-started-guides-pico' into 'master'
Add translation for ESP32-PICO-KIT Getting Started Guides

See merge request idf/esp-idf!4640
2019-05-13 11:19:52 +08:00
975a9c49f0 Add translation for ESP32-PICO-KIT Getting Started Guides 2019-05-13 11:19:52 +08:00
6fd535c985 Merge branch 'docs/translate_idf_versions' into 'master'
Add translation for version file

See merge request idf/esp-idf!4917
2019-05-10 19:17:49 +08:00
0caabec88f Add translation for version file 2019-05-10 19:17:49 +08:00
6bf423d1e1 esp_http_server : Logging of purged data to monitor made configurable
List of changes:
* Kconfig option HTTPD_LOG_PURGE_DATA enables logging of purged data
* Kconfig option HTTPD_PURGE_BUF_LEN sets purge buffer length
* Purged data is logged in hex

Closes https://github.com/espressif/esp-idf/issues/3359
2019-05-10 14:25:39 +05:30
1c46caf70c Merge branch 'bugfix/modify_TCP_MSS_range' into 'master'
Change the default value of TCP_MSS to 1440 and TCP_MSS Range : [536 1460]

See merge request idf/esp-idf!4968
2019-05-10 13:52:16 +08:00
11c17ab5b6 add RESTful API server example 2019-05-10 13:21:14 +08:00
ce45e7806b Merge branch 'feature/add_promiscuous_control_for_ethernet' into 'master'
add promiscuous mode control for Ethernet

See merge request idf/esp-idf!4953
2019-05-10 12:51:15 +08:00
b6a24bbd25 Merge branch 'feature/esp-https-ota-basic-auth' into 'master'
esp_https_ota: component refactoring, bugfixes and feature additions

See merge request idf/esp-idf!4245
2019-05-10 12:39:14 +08:00
b991aa1ecb Merge branch 'bugfix/fix_minor_gh_issues' into 'master'
mdns: minor fixes mainly from GitHub

Closes #77

See merge request idf/esp-idf!4930
2019-05-10 12:31:30 +08:00
073573aa5d Merge branch 'bugfix/issue_with_encryption_flag_for_partition' into 'master'
partition: Fix "encrypted" read/write when encryption is disabled

See merge request idf/esp-idf!4927
2019-05-10 10:51:21 +08:00
8720a13d0f Merge branch 'bugfix/spiffsgen_path_on_windows' into 'master'
Fix issue with spiffsgen path when creating image in Windows

Closes IDFGH-1095

See merge request idf/esp-idf!4931
2019-05-10 10:23:28 +08:00
b4979f9c2a Merge branch 'bugfix/restore_ccache_use' into 'master'
CMake : Restore ccache use

Closes IDFGH-673

See merge request idf/esp-idf!4944
2019-05-10 10:16:04 +08:00
403f588fd0 Change the default value of TCP_MSS to 1440 and TCP_MSS Range : [536 1460] 2019-05-09 19:49:59 +08:00
c2aef48a57 Merge branch 'bugfix/pass_IDF_TARGET_to_bootloader_build' into 'master'
pass IDF_TARGET variable to bootloader build process

See merge request idf/esp-idf!4963
2019-05-09 19:45:20 +08:00
67dd55eae8 Change the default value of TCP_MSS to 1440 and TCP_MSS Range : [576 1460] 2019-05-09 17:59:25 +08:00
63e4677c55 pass IDF_TARGET variable to bootloader build process 2019-05-09 14:19:02 +08:00
eeca0804e6 Merge branch 'bugfix/https_doc_api' into 'master'
esp_http_server : Minor clarification in httpd_req_get_url_query_str() API documentation

Closes IDFGH-1052

See merge request idf/esp-idf!4942
2019-05-09 11:23:01 +08:00
c549581b7c Merge branch 'bugfix/err_to_name_include' into 'master'
Fixes for error code generator

Closes IDFGH-1103

See merge request idf/esp-idf!4946
2019-05-09 11:21:52 +08:00
15070ea648 add promiscuous mode control in emac driver
1. add promiscuous mode control in emac driver
2. fix minor bugs in IP101 driver
2019-05-08 17:15:21 +08:00
7822484aaa efuse: Fix unused variable warning when NDEBUG
Merges: https://github.com/espressif/esp-idf/pull/3429
Closes: https://github.com/espressif/esp-idf/issues/3432
2019-05-08 09:14:24 +08:00
afe57d6ff4 ci: check that build uses ccache when present 2019-05-07 12:00:41 +08:00
bfe5b13905 tools/gen_esp_err_to_name.py: Don't include already included headers 2019-05-06 15:08:37 +02:00
20bd142077 Fix paths to the new esp_common in the ESP error code generator 2019-05-06 15:07:27 +02:00
051b5c45c5 Fix includes in esp_err_to_name.c.in.
esp_err_t provided by esp_err.h and thus is required and not optional.
While the python script adds the header, it wraps it with an __has_include
directive that is not supported on all compilers (notably GCC 4.8).

Closes https://github.com/espressif/esp-idf/pull/3424
2019-05-06 14:52:13 +02:00
0ad13cd40f ldgen,make: simplify os check 2019-05-06 20:31:05 +08:00
459dd29444 cmake: restore ccache use when present
Closes https://github.com/espressif/esp-idf/issues/3116
2019-05-06 20:04:07 +08:00
417cac6654 Merge branch 'bugfix/blockdiag_seqdiag_cn_fonts' into 'master'
Introduce separate fonts used by blockdiag, sequdiag, actdiag, nwdiag, rackdiag…

See merge request idf/esp-idf!4646
2019-05-06 18:09:21 +08:00
5e1c19d73d esp_http_server : Minor clarification in httpd_req_get_url_query_str() API documentation
Closes https://github.com/espressif/esp-idf/issues/3374
2019-05-06 14:32:24 +05:30
e0097bc740 cJSON: update to v1.7.11
Closes https://github.com/espressif/esp-idf/issues/3332
2019-05-06 14:07:54 +08:00
754a454402 Introduce separate fonts used by blockdiag, sequdiag, actdiag, nwdiag, rackdiag and packetdiag for Chinese and English version of documentation 2019-05-06 13:19:58 +08:00
394d89e7da Correct diagram layout to make text descriptions fit into blocks 2019-05-06 13:19:58 +08:00
df61612f8f Merge branch 'bugifx/httpd_reuseaddr' into 'master'
esp_http_server : Allow binding to same address and port upon restarting server without delay

Closes IDFGH-1060

See merge request idf/esp-idf!4903
2019-05-06 08:45:09 +08:00
f3f4e58313 project_config_mk: fix if condition 2019-05-05 19:12:33 +03:00
867ea68d5a fix spiffsgen.py wrong path delimiter on windows 2019-05-05 17:50:15 +08:00
38ec1b9a86 component/bt: fix some performance issues in A2DP source data flow control
1. modify the limit of frames to send to avoid dropping packet on A2DP source due to TX data queue overflow
2. reduce the A2DP source data queue size in order to achieve faster control respnonse
2019-05-05 11:42:27 +08:00
1ca60c46f1 Merge branch 'bugfix/kconfig_no_split_headers' into 'master'
kconfig: Don't create "split" directory structures under build/include/config

Closes IDFGH-962

See merge request idf/esp-idf!4768
2019-05-05 11:31:34 +08:00
6faaeafcdd Merge branch 'bugfix/http_file_server' into 'master'
File Server Example : Check longer than allowed filenames when converting from URIs to filepaths

See merge request idf/esp-idf!4886
2019-05-05 11:24:52 +08:00
af48977f21 mdns: fixed mdns crashing on reception of txt packet without a corresponding service
closes #2866
2019-05-03 16:37:43 +02:00
c050a75616 mdns: use const char* for mdns txt items types to remove warning when assigning 2019-05-03 16:31:32 +02:00
a851aac255 mdns: updated doxygen comments documenting mdns api
Closes https://github.com/espressif/esp-idf/issues/1718
2019-05-03 16:29:12 +02:00
eddd5c4f2c mdns: update mdns_out_question_s to be in line with mdns_parsed_question_s struct
Closes  https://github.com/espressif/esp-idf/issues/1568
2019-05-03 14:54:59 +02:00
7892cf6a03 partition: Fix "encrypted" read/write when encryption is disabled
According to the documentation[1][2] for partitions, setting the encrypted
flag for partitions should be a no-op when system level encryption isn't
enabled.  The current implementation, however, does not actually match
the documentation and it ends up with an unreadable partition via the
partition API if a partition flag is marked as encrypted without
system-level encryption enabled.  (This is because the writes go through
the encryption block, and reads do not go through the encryption block
when this situation occurs causing unreadable data to the application
running.) This fixes up the read-back of the partition table to match
whether or not the partition is currently encrypted under the hood.

This should not affect the bootloader's code for reading/writing encrypted
partitions as the bootloader directly invokes the spi_flash_write*(...)
APIs.

[1] https://docs.espressif.com/projects/esp-idf/en/latest/api-guides/partition-tables.html#flags
[2] https://docs.espressif.com/projects/esp-idf/en/latest/security/flash-encryption.html#encrypted-partition-flag

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

Signed-off-by: Tim Nordell <tim.nordell@nimbelink.com>
2019-05-03 15:03:04 +05:30
ef49c41e15 Merge branch 'bugfix/esp_http_client_event_name' into 'master'
esp-http-client: Fix incorrect event name HTTP_EVENT_HEADER_SENT

See merge request idf/esp-idf!4921
2019-05-03 14:57:09 +08:00
9563931c3a Merge branch 'fix/nvs_console' into 'master'
nvs_console: Fix type comparison

See merge request idf/esp-idf!4920
2019-05-03 14:47:27 +08:00
22a89c50e8 Merge branch 'bugfix/win_fullclean_symlink' into 'master'
idf.py: Detect symlinks on Windows during fullclean

Closes IDFGH-1055

See merge request idf/esp-idf!4915
2019-05-03 12:10:04 +08:00
4e6d39f009 esp-http-client: Fix incorrect event name HTTP_EVENT_HEADER_SENT
Closes https://github.com/espressif/esp-idf/issues/3095
2019-05-02 16:15:59 +05:30
893c1d82f7 nvs_console: Fix type comparison
Closes https://github.com/espressif/esp-idf/issues/3320
2019-05-02 15:31:57 +05:30
6ccdca5114 idf.py: Detect symlinks on Windows during fullclean
Closes https://github.com/espressif/esp-idf/issues/3377
2019-05-02 10:03:11 +02:00
64e3ab364e examples/system/ota/advanced_https_ota: Add example for newly introduced APIs in esp_https_ota component 2019-05-02 12:29:29 +05:30
ffad8b27a3 esp_http_server : Allow binding to same address and port upon restarting server without delay
Issue : Restarting the server without 30sec delay between httpd_stop() and httpd_start() causes EADDRINUSE error
Resolution : Use setsockopt() to enable SO_REUSEADDR on listener socket

Closes https://github.com/espressif/esp-idf/issues/3381
2019-05-02 05:29:38 +00:00
c5f58d11e8 Merge branch 'bugfix/missing_ldgen_libraries_file_on_windows' into 'master'
make: fix missing rule for creating ldgen_libraries file

See merge request idf/esp-idf!4907

Closes https://github.com/espressif/esp-idf/issues/3394
2019-05-01 13:08:23 +08:00
c3fa2497b9 nvs: Check if an item is modified before writing out an identical copy
This prevents wear and tear on the flash, and it also is faster in some
cases since the read-out of flash is a cheaper operation than the erasure
of flash.  Some library modules (such as the esp_wifi) write out to NVS
upon every initialization without checking first that the existing value
is the same, and this speeds up initialization of modules that make
these design choices and moves it into a centralized place.

The comparison functions are based on the read-out functions of the same
name, and changes out the memcpy(...) operations for memcmp(...)
operations.

Signed-off-by: Tim Nordell <tim.nordell@nimbelink.com>
2019-04-30 11:39:58 -05:00
db86b31ef4 Merge branch 'fix/spi_master_dio_qio_hal' into 'master'
spi_master: fix the dual/quad io issue

See merge request idf/esp-idf!4894
2019-04-30 16:14:53 +08:00
f94f158cf5 Merge branch 'bugfix/move_spiffsgen_example_to_storage' into 'master'
spiffsgen follow-ups

See merge request idf/esp-idf!4893
2019-04-30 13:48:54 +08:00
4cc8b92d22 make: fix missing rule for creating ldgen_libraries file 2019-04-30 11:54:01 +08:00
f49e91f744 esp_https_ota: Add support for URL redirection, basic auth and more control with new APIs
Bugfixes:
- Fix http url redirection issue
- Fix basic/digest auth issue with http url

Features:
- Add support for adding custom http header
- Add support for reading firmware image header
- Add support for monitoring upgrade status
  - This requires breaking down esp_https_ota API such that it allows finer application level control
  - For simpler use-cases previous API is still supported

Closes https://github.com/espressif/esp-idf/issues/3218
Closes https://github.com/espressif/esp-idf/issues/2921
2019-04-29 18:58:07 +05:30
59afbe4eed File Server Example : Check longer than allowed filenames when converting from URIs to filepaths
This change prevents buffer overflows in case of really long file paths.

Other changes:
* Remove query (?) and fragment (#) component from URI when converting to file path
* /index.html and favicon.ico can be overridden by files with same name and path in SPIFFS
* README.md updated
2019-04-29 12:19:59 +05:30
86e1fc564e esp_http_client: Add API for adding authorization info
There was existing support for adding authorization info in esp_http_client
but it was functional only while using `esp_http_client_perform` API. This commit just moves
existing authorization addition logic into publicly exposed API.
2019-04-29 11:44:37 +05:30
ba1ff1692b Merge branch 'doc/review_api-reference_indexes' into 'master'
Doc/review api reference indexes

See merge request idf/esp-idf!4876
2019-04-29 10:53:42 +08:00
b672002a5f Doc/review api reference indexes 2019-04-29 10:53:42 +08:00
eb3791faba Merge branch 'bugfix/udp_multicast_example_errors' into 'master'
udp_multicast_example: better handling wrong addresses

Closes IDFGH-979

See merge request idf/esp-idf!4784
2019-04-29 09:21:07 +08:00
1ed3be9c79 Merge branch 'feature/use_libraries_directly_with_ldgen' into 'master'
Pass libraries as arguments to ldgen directly

See merge request idf/esp-idf!4887
2019-04-29 08:49:42 +08:00
3694ed30eb Merge branch 'bugfix/ldgen_fails_when_wifi_ram_opt_off' into 'master'
ldgen: do not generate rules when no condition is true

See merge request idf/esp-idf!4757
2019-04-29 08:44:13 +08:00
0b523c2300 spi_master: fix the dual/quad io issue
introduced in f871cc5ffa

The issue is caused by

1. The hal didn't pass the io_mode to LL.
2. The setup_device function overwrite the trans-specific settings.
2019-04-27 01:36:47 +08:00
4a288c9f30 example: use mbedtls to compute hash in spiffsgen example 2019-04-26 22:37:41 +08:00
fa21b5f33b spiffs: move spiffsgen example with other storage related examples 2019-04-26 22:37:41 +08:00
643d0f2164 freertos/test: Add unit tests for xTaskIncrementTick 2019-04-26 22:36:12 +08:00
b1ecd75d83 ldgen: pass component libraries directly 2019-04-26 20:06:53 +08:00
ca6cff7637 Merge branch 'bugfix/fix_build_cmake_example_failing' into 'master'
Fix false positive errors with CMake example builds

See merge request idf/esp-idf!4608
2019-04-26 18:20:53 +08:00
fe2565f5d7 Merge branch 'feature/make_bootloader_support_target_dependent' into 'master'
make bootloader_support depend on IDF_TARGET

See merge request idf/esp-idf!4798
2019-04-26 15:36:48 +08:00
6890326504 Merge branch 'test/always_deploy_test_result_on_master' into 'master'
CI: always deploy test result to Jira on master

See merge request idf/esp-idf!4840
2019-04-26 14:34:57 +08:00
df9113e0e1 Merge branch 'feature/kconfig_backward_comp' into 'master'
Rename deprecated Kconfig options in a backward compatible way

Closes IDF-155

See merge request idf/esp-idf!4551
2019-04-26 10:09:29 +08:00
207e87932b Merge branch 'fix/fix_soc_dram_low_addr' into 'master'
fix the dram low addr defined in the soc.h header

See merge request idf/esp-idf!4882
2019-04-26 08:43:22 +08:00
b5bbd42b9a Merge branch 'bugfix/btdm_abort_if_deinit_spp_without_init' into 'master'
components/bt: Fix abort if call esp_spp_deinit without calling esp_spp_init

See merge request idf/esp-idf!4859
2019-04-25 20:38:37 +08:00
9c7fb51d7d Merge branch 'feature/btdm_add_ble_link_timeout_config' into 'master'
Component/bt: add ble link timeout config in menuconfig

See merge request idf/esp-idf!4786
2019-04-25 20:04:53 +08:00
89798b328b Merge branch 'bugfix/select_init_sem' into 'master'
VFS: Allocate socket select semaphore outside ISR

See merge request idf/esp-idf!4591
2019-04-25 19:10:08 +08:00
9a00b7706e fix the dram low addr defined in the soc.h header 2019-04-25 17:29:48 +08:00
7724a2e1a0 Merge branch 'bugfix/wifi_fix_wps_fail_when_ap_is_encrypted' into 'master'
esp_wifi: fix the bug that WPS fails when AP is encrypted

Closes IDF-623

See merge request idf/esp-idf!4827
2019-04-25 17:05:48 +08:00
8e434c1bf0 freertos: Fix xTaskIncrementTick for unwind the Tick for CPU1
xTaskIncrementTick have to unwind uxPendedTicks on CPU1 and CPU0.

Use case: If an erase operation was run on the CPU1 then it leads
to starving other tasks which waiting time. Waited tasks just skipped.

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

Closes: IDF-183
2019-04-25 13:03:01 +08:00
23ee93ea76 Rename deprecated Kconfig options in a backward compatible way 2019-04-24 12:53:02 +02:00
2522268c20 ldgen: do not generate rules when no condition is true
Closes https://github.com/espressif/esp-idf/issues/3295
2019-04-24 18:25:24 +08:00
cf9f2aa466 Merge branch 'feature/set_redirection' into 'master'
Add a `esp_http_client_set_redirection` function

See merge request idf/esp-idf!4856
2019-04-24 15:50:53 +08:00
e1f743c8eb esp_wifi: fix the bug that WPS fails when AP is encrypted 2019-04-24 13:57:14 +08:00
db6b210a5f components/bt: Fix abort if call esp_spp_deinit without calling esp_spp_init 2019-04-24 11:17:54 +08:00
e1592c8c81 Merge branch 'bugfix/docs_tutorials' into 'master'
Docs update

See merge request idf/esp-idf!4150
2019-04-24 08:36:20 +08:00
e0d796bf33 Add a esp_http_client_set_redirection function When using direct operations instead of esp_http_client_perform, we need a way to set redirection URL when we get 30x response codes. Added the function for the same. User can now check status code and call esp_http_client_set_redirection function to enable redirection. Related change in adf: https://gitlab.espressif.cn:6688/adf/esp-adf-internal/merge_requests/187
Signed-off-by: Vikram Dattu <vikram.dattu@espressif.com>
2019-04-23 19:29:49 +05:30
a0f0c19e15 Merge branch 'doc/review_versions' into 'master'
Review the versions.rst document.

See merge request idf/esp-idf!4753
2019-04-23 17:22:41 +08:00
b89ff9e6db Review the versions.rst document. 2019-04-23 06:03:33 +00:00
8513b8ead4 Merge branch 'bugfix/pyparsing' into 'master'
Temporarily fix incompatibility with pyparsing 2.4.0

See merge request idf/esp-idf!4809
2019-04-23 10:35:50 +08:00
1718a93119 Merge branch 'bugfix/scan_fail_when_no_ap_found' into 'master'
fix the bug when scan fail after STA failed to connect to a nonexistent AP

Closes WIFI-76

See merge request idf/esp-idf!4630
2019-04-23 10:20:43 +08:00
823395dea6 Merge branch 'bugfix/fix_iperf_exit_error' into 'master'
examples: fix iperf exit error

Closes XIAOMI-62

See merge request idf/esp-idf!4788
2019-04-22 19:47:10 +08:00
0ae4eb4f09 Component/bt: add ble link timeout config in menuconfig
- add ble link timeout config in menuconfig
- disable background connection when call gatts_open
2019-04-22 09:16:19 +00:00
5e15840ac1 examples: fix iperf exit error 2019-04-22 12:14:21 +08:00
513353c641 wifi: fix the bug when scan fail after STA failed to connect to a nonexistent AP 2019-04-22 11:59:40 +08:00
47988e90ea Merge branch 'feature/esp_event_loop_examples_provisioning' into 'master'
examples/provisioning: use esp_event library for event handling

Closes IDF-55

See merge request idf/esp-idf!4030
2019-04-22 07:48:48 +08:00
50ecd6c3b6 CI: always deploy test result to Jira on master 2019-04-21 13:14:28 +08:00
7ca556a3ca Merge branch 'feature/jira_test_management' into 'master'
test: jira test management

See merge request idf/esp-idf!4751
2019-04-21 10:37:01 +08:00
9549ae4c12 test: sync integration test cases 2019-04-19 16:44:00 +08:00
af4daf6a22 test: include chip in test case ID 2019-04-19 14:39:44 +08:00
b7d26ddfe3 CI: add job to sync test to Jira 2019-04-19 14:39:44 +08:00
4b526ec0c4 test: let CI import integration test report 2019-04-19 14:39:44 +08:00
ad0d8a4767 test: save throughput result to junit report 2019-04-19 14:39:44 +08:00
b75400294a test: collect unit-test performance items and save to report 2019-04-19 14:39:44 +08:00
0462620a23 tiny-test-fw: support save performance to junit report:
1. support get performance from DUT
2. update performance to `testcase.stdout` in JunitReport
2019-04-19 12:17:13 +08:00
4b9a38d883 Merge branch 'feature/freemodbus_master_support_upd_arch' into 'master'
examples: freemodbus port common master and slave interface implementation

See merge request idf/esp-idf!3707
2019-04-18 12:42:05 +08:00
dd9de16100 Merge branch 'test/modify_mesh_ci_master' into 'master'
test: update mesh test cases for ci test

See merge request idf/esp-idf!4647
2019-04-18 11:28:50 +08:00
912c8e31fc Merge branch 'bugfix/pm_isr_exit_lock' into 'master'
pm: prevent interrupt nesting during esp_pm_impl_isr_hook

See merge request idf/esp-idf!4775
2019-04-18 11:16:26 +08:00
a20d02b7f1 Merge branch 'feature/remove_dependency_to_soc' into 'master'
global: remove dependency to soc everywhere except driver and kernel components

See merge request idf/esp-idf!4678
2019-04-18 08:08:41 +08:00
66c5fb5e5a Merge branch 'bugfix/fix_signal_test_bug' into 'master'
esp_wifi: fix a bug caused by signal test code

See merge request idf/esp-idf!4810
2019-04-17 22:06:43 +08:00
9cb08ebe4c Merge branch 'feature/add_cloud_frameworks_doc' into 'master'
Add documentation for Cloud Frameworks

See merge request idf/esp-idf!4547
2019-04-17 20:24:55 +08:00
3cbb378948 docs: Add cloud frameworks doc 2019-04-17 10:29:05 +00:00
801e2cdaa3 test: update mesh test cases for ci
add mesh cases in files:
TC_IT_MESH_EST.yml, TC_IT_MESH_COMM.yml and TC_IT_MESH_MISC.yml
2019-04-17 17:05:33 +08:00
4c50e51305 esp_wifi: fix a bug caused by signal test code
Fix a bug caused by signal test code.
2019-04-17 16:32:15 +08:00
3bb7dba995 Merge branch 'bugfix/use_libc_gnu_extensions' into 'master'
build: Add a standard way to use GNU extensions from libc

See merge request idf/esp-idf!4769
2019-04-17 16:22:37 +08:00
08adc39102 Temporarily fix incompatibility with pyparsing 2.4.0 2019-04-17 09:57:42 +02:00
48109e1f5d Merge branch 'bugfix/adjtime_ut' into 'master'
newlib: Fix adjtime

See merge request idf/esp-idf!4676
2019-04-17 15:15:31 +08:00
d31ee806be pm: prevent interrupt nesting during esp_pm_impl_isr_hook
Follows the approach proposed in https://github.com/espressif/esp-idf/pull/3110,
but masks the interrupts during the entire ISR hook, not only during
leave_idle. Interrupt nesting during update_ccompare may also cause
issues.

Closes https://github.com/espressif/esp-idf/issues/3057
2019-04-17 07:13:52 +00:00
92989b5718 Merge branch 'bugfix/esp_tls_closing_fd0' into 'master'
esp_tls: fix incorrect closing of fd 0 on connection failure

See merge request idf/esp-idf!4726
2019-04-17 15:10:20 +08:00
8edc995ad6 Merge branch 'bugfix/pr_3250' into 'master'
Fix: Lost username when setting new URL with a path.

Closes IDFGH-904

See merge request idf/esp-idf!4755
2019-04-17 15:08:26 +08:00
327963e0cc Merge branch 'bugfix/ut_leaks_tags' into 'master'
test: clean up "leaks" tags from most unit tests

See merge request idf/esp-idf!4779
2019-04-17 14:52:34 +08:00
269c4c74d2 udp_multicast_example: better handling wrong addresses
inet_aton returns 0 on failure, but socket_add_ipv4_multicast_group has to return negative values for failures
getaddrinfo sets res to zero of address could not resolved, but doesn't necessarily return an
error. res is now checked for zero before dereferencing

Merges https://github.com/espressif/esp-idf/pull/2814
2019-04-17 06:52:23 +00:00
410f5c3f7d build: Add a standard way to use GNU extensions from libc, since we have a general configured newlib in the toolchain 2019-04-17 12:08:36 +07:00
853dd3ff7a Merge branch 'bugfix/gcc8_compat' into 'master'
Remove warning (gcc8)

See merge request idf/esp-idf!4795
2019-04-17 13:02:47 +08:00
453a33ce79 mdns example: Remove a warned unused constant 2019-04-17 11:21:53 +07:00
3a9e24d7b4 Merge branch 'bugfix/fix_set_config_bug_for_bssid_set' into 'master'
wifi: fix the set config bug for bssid_set

Closes WIFI-419

See merge request idf/esp-idf!4785
2019-04-16 20:27:09 +08:00
bb4f5617ab test: clean up "leaks" tags from most unit tests 2019-04-16 20:07:40 +08:00
3f2d6a0891 make bootloader_support depend on IDF_TARGET
1. move chip-specific code(e.g. encryption) into IDF_TARGET directory
2. splict app-only code to idf directory which won't be compiled into bootloader
2019-04-16 17:37:56 +08:00
449d2a6367 freemodbus: Fix bug with incorrect coils read mask
Contains two different component folders per each implementation (serial_master and serial_slave) with concrete ports.
Added common public api for master and slave and common interface for master and slave implementation.
Add support of cmake system (added cmake files).
Added sdkconfig.defaults files for slave and master modbus examples.
Updated make file and KConfig for freemodbus component
Update according to review and fix doxygen warnings
Fix Doxyfile to pass documentation build
Update headers and change interface file names as per review comments
Merge  branch feature/freemodbus_move_rs485_mode_control
Update after review:
The stack modbus folder updated to support master and slave ports together and moved into freemodbus/modbus
Stack and port files updated to remove duplicated simbols
Make file, KConfig and CMakeLists.txt updated to compile master and slave stacks, common interface and concrete implementations of ports
Stack callback functions execute callbacks using interface pointer from concrete port implementation
User can instantiate any of concrete port using common API (only one concrete port at a time) and it does not require to select port by KConfig
Port pins and mode configuration moved into example files from port files to allow user select pins and port mode (customer request)
Changes tested using pymodbus, ModbusPoll and communication between two boards
Updated DoxyFile according to public include path
Fix maximum instance size for slave (merge from master of customer issue)
Fix critical section issue TW#28622 (change spin lock based critical section to semaphore)
Move serial port files into component port folder for master and slave accordingly
Fix example issue showed in the log when IO slave is not configured correctly
Fix conflicts while merging from origin/master
Fix errors handling in modbus controller interface + some final corrections according to review
Update maximum allowed number of slaves in the network segment
Fix bug with incorrect coils read mask

Closes https://github.com/espressif/esp-idf/issues/858
2019-04-16 10:21:20 +02:00
86e9acc2c9 Protocomm : Added new APIs for opening and closing secure sessions
New APIs:
* protocomm_open_session()
* protocomm_close_session()

This allows external applications using protocomm to manually create and close sessions.

These internally call the new_transport_session() and close_transport_session() APIs implemented by the security scheme in use.

Updated unit tests with usage of new APIs
2019-04-16 13:50:01 +05:30
cccf829366 Protocomm : Session security now supports multiple instances of the same type
List of changes:
* Security APIs accept handle to instance created during initialization
* Protocomm internally stores the security instance handle and calls security APIs with this handle as first parameter
2019-04-16 13:47:13 +05:30
74dd9b4f5f esp_http_client: fix CI issues & return value 2019-04-16 09:03:14 +02:00
4a6c5032f4 Fix: Lost username when setting new URL with a path.
Closes https://github.com/espressif/esp-idf/pull/3250
2019-04-16 08:58:36 +02:00
562af8f65e global: move the soc component out of the common list
This MR removes the common dependency from every IDF components to the SOC component.

Currently, in the ``idf_functions.cmake`` script, we include the header path of SOC component by default for all components.
But for better code organization (or maybe also benifits to the compiling speed), we may remove the dependency to SOC components for most components except the driver and kernel related components.

In CMAKE, we have two kinds of header visibilities (set by include path visibility):

(Assume component A --(depends on)--> B, B is the current component)

1. public (``COMPONENT_ADD_INCLUDEDIRS``): means this path is visible to other depending components (A) (visible to A and B)
2. private (``COMPONENT_PRIV_INCLUDEDIRS``): means this path is only visible to source files inside the component (visible to B only)

and we have two kinds of depending ways:

(Assume component A --(depends on)--> B --(depends on)--> C, B is the current component)

1. public (```COMPONENT_REQUIRES```): means B can access to public include path of C. All other components rely on you (A) will also be available for the public headers. (visible to A, B)
2. private (``COMPONENT_PRIV_REQUIRES``): means B can access to public include path of C, but don't propagate this relation to other components (A). (visible to B)

1. remove the common requirement in ``idf_functions.cmake``, this makes the SOC components invisible to all other components by default.
2. if a component (for example, DRIVER) really needs the dependency to SOC, add a private dependency to SOC for it.
3. some other components that don't really depends on the SOC may still meet some errors saying "can't find header soc/...", this is because it's depended component (DRIVER) incorrectly include the header of SOC in its public headers. Moving all this kind of #include into source files, or private headers
4. Fix the include requirements for some file which miss sufficient #include directives. (Previously they include some headers by the long long long header include link)

This is a breaking change. Previous code may depends on the long include chain.
You may need to include the following headers for some files after this commit:

- soc/soc.h
- soc/soc_memory_layout.h
- driver/gpio.h
- esp_sleep.h

The major broken include chain includes:

1. esp_system.h no longer includes esp_sleep.h. The latter includes driver/gpio.h and driver/touch_pad.h.
2. ets_sys.h no longer includes soc/soc.h
3. freertos/portmacro.h no longer includes soc/soc_memory_layout.h

some peripheral headers no longer includes their hw related headers, e.g. rom/gpio.h no longer includes soc/gpio_pins.h and soc/gpio_reg.h

BREAKING CHANGE
2019-04-16 13:21:15 +08:00
7097e5b0d0 wifi: fix the set config bug for bssid_set 2019-04-16 10:57:00 +08:00
936ee2884b Merge branch 'bugfix/esp_efuse_get_pkg_ver' into 'master'
efuse: Fix excess data coming from uninitialized variable

Closes IDFGH-976

See merge request idf/esp-idf!4778
2019-04-16 08:10:53 +08:00
652302bd06 Merge branch 'feature/sntp_cb_function' into 'master'
sntp: Add some modes for time synchronization

Closes IDF-236

See merge request idf/esp-idf!4472
2019-04-16 07:28:04 +08:00
0e69a7efc2 efuse: Fix excess data coming from uninitialized variable
Fixed esp_efuse_get_pkg_ver() function

Closes: https://github.com/espressif/esp-idf/pull/3309
Closes: IDFGH-976
2019-04-15 12:32:26 +00:00
1c21bc5c81 Merge branch 'bugfix/freemodbus_fix_incorrect_read_coil_event' into 'master'
freemodbus: fix incorrectly set coils read event in modbus controller

See merge request idf/esp-idf!4749
2019-04-15 19:41:49 +08:00
603d293365 Merge branch 'feature/btdm_AVRCP_TG' into 'master'
component/bt: implement AVRCP Target APIs

See merge request idf/esp-idf!3899
2019-04-15 18:53:51 +08:00
15be5e47a1 softap_prov_test : example script updated to accomodate for changes in logs 2019-04-15 10:19:29 +00:00
d784fbb314 examples/provisioning : Call esp_wifi_init() only in main function before starting provisioning
Removed all other instances of call to esp_wifi_init(), because every time this is called it
will override its previously set default event handler and hence cause numerous warnings.

Also, call nvs_flash_init() only once, that is before calling esp_wifi_init() in main function
2019-04-15 10:19:29 +00:00
3608f9bde4 examples/provisioning : use esp_event library to handle WiFi/IP events 2019-04-15 10:19:29 +00:00
7e5be1b58c sntp/lwip: Add some modes for time synchronization
Closes: IDF-236
Closes: https://github.com/espressif/esp-idf/pull/1668
2019-04-15 18:11:47 +08:00
8b2128ce07 Merge branch 'feature/add_support_for_signal_test' into 'master'
esp_wifi:  add support for signal test

Closes WIFI-324

See merge request idf/esp-idf!4717
2019-04-15 17:45:01 +08:00
d359d4c77c Merge branch 'bugfix/fix_deprecated_warning_with_dfs_init_auto_config' into 'master'
cpu_start: fix warnings with CONFIG_PM_DFS_INIT_AUTO option

See merge request idf/esp-idf!4761
2019-04-15 15:57:49 +08:00
95a1683158 Merge branch 'feature/esp_event_loop_examples_protocols' into 'master'
examples/protocols: move Wi-Fi connection code into helper component, support Ethernet

See merge request idf/esp-idf!3766
2019-04-15 15:54:22 +08:00
77645472ae esp_tls: fix incorrect closing of fd 0 on connection failure
Closes https://github.com/espressif/esp-idf/issues/3149
2019-04-15 10:59:50 +05:30
9a5e93c286 kconfig: Don't create "split" directory structures under build/include/config
Reported in https://github.com/espressif/esp-idf/issues/3299

If a config item contains a reserved filename in Windows like _CON_ then an invalid
directory is created.

We don't rely on this feature all, so disable it.
2019-04-15 05:28:46 +00:00
f935294c48 Merge branch 'doc/move_WiFi_Kconfig' into 'master'
move WiFi-specific Kconfig to esp-wifi component

See merge request idf/esp-idf!4736
2019-04-15 12:00:59 +08:00
9628c60a1d examples/protocols/mdns: use common network component 2019-04-15 03:32:05 +00:00
aa4a7804ec examples/protocols/asio: use common network component 2019-04-15 03:32:05 +00:00
ee3035257a examples/protocols/coap: use common network component 2019-04-15 03:32:05 +00:00
fbc407f088 examples/protocols/esp_http_client: use common network component 2019-04-15 03:32:05 +00:00
e1d1f10e8a examples/protocols/http(s,2)_request: use common network component 2019-04-15 03:32:05 +00:00
a5b0f5d6ed examples/protocols/http(s)_server: use common network component 2019-04-15 03:32:05 +00:00
6548afcf49 examples/protocols/mqtt: use common network component 2019-04-15 03:32:05 +00:00
a46d94250d examples/protocols/openssl: use common network component 2019-04-15 03:32:05 +00:00
e0f3f62cdf examples/protocols/sntp: use common network component 2019-04-15 03:32:05 +00:00
28cf1c83df examples/protocols/sockets: use common network component 2019-04-15 03:32:05 +00:00
b3a235945e ci: don’t look for project CMakeLists in common_components 2019-04-15 03:32:05 +00:00
22bef90bd3 examples: add component for protocol examples network functionality 2019-04-15 03:32:05 +00:00
eebbced5b6 freemodbus: fix incorrectly set coils read event
incorrect set of the MB_EVENT_COILS_WR event is changed while read coils in mbcontroller.c file
added read/write handling for appropriate registers in freemodbus.c example file

Closes https://github.com/espressif/esp-idf/issues/3289
2019-04-15 03:30:31 +00:00
f4328e5346 cpu_start: fix warnings with CONFIG_PM_DFS_INIT_AUTO option
Closes https://github.com/espressif/esp-idf/issues/3297
2019-04-15 03:08:26 +00:00
2e129ca31d esp_wifi: add support for signal test
Add support for WiFi signal test
2019-04-15 10:14:31 +08:00
f871cc5ffa Merge branch 'feat/spi_hal_support' into 'master'
spi_master: refactor and add HAL support

See merge request idf/esp-idf!4159
2019-04-15 07:57:11 +08:00
a9efefdc73 Merge branch 'bugfix/rename_ldgen_common_module' into 'master'
ldgen: rename common module

See merge request idf/esp-idf!4758
2019-04-14 11:20:22 +08:00
7150ac61cd ldgen: rename common module 2019-04-13 08:59:32 +08:00
6a323a6d7c Merge branch 'feature/wifi_refactor_softap_power_save' into 'master'
refactor softap power save

Closes WIFI-415 and IDF-81

See merge request idf/esp-idf!1905
2019-04-12 23:48:11 +08:00
0e1a39f813 Merge branch 'bugfix/nvs_fix_erase_any' into 'master'
nvs_flash: Multi-page blob erased using nvs_erase_key should be cleaned properly

See merge request idf/esp-idf!4634
2019-04-12 23:04:10 +08:00
ab672a5ee7 Merge branch 'bugfix/btdm_fix_memory_leak_when_set_txpwr' into 'master'
component/bt: fix memory leak when settig tx power

See merge request idf/esp-idf!4712
2019-04-12 23:00:44 +08:00
91eb59f543 Merge branch 'bugfix/improve_spi_timing_for_psram_and_flash' into 'master'
bugfix(psram): improve spi cs timing settings for psram

See merge request idf/esp-idf!4641
2019-04-12 22:57:04 +08:00
7728f8755e Merge branch 'feat/example_sdio_over_spi' into 'master'
sdio: support SDIO over spi

See merge request idf/esp-idf!3069
2019-04-12 16:12:57 +08:00
65664f8e99 Merge branch 'feature/move_aws_iot_to_independent_repository' into 'master'
aws_iot: moving AWS IoT to independent repository

See merge request idf/esp-idf!4624
2019-04-12 16:06:38 +08:00
0b186bc4e3 Merge branch 'feature/esp_event_loop_examples_wifi' into 'master'
examples/wifi,ethernet,system: use esp_event library for event handling

See merge request idf/esp-idf!3765
2019-04-12 13:55:15 +08:00
0bca9d20d8 Merge branch 'feature/esp_event_loop_library_compat_base' into 'master'
Implement Wi-Fi, Ethernet, IP event handling based on esp_event library

Closes IDF-37 and IDF-267

See merge request idf/esp-idf!3635
2019-04-12 13:54:18 +08:00
1cfa09d4e8 aws_iot: moving AWS IoT to independent repository
Like other cloud frameworks, AWS IoT will also be supported through
independent repository, https://github.com/espressif/esp-aws-iot
2019-04-12 05:36:05 +00:00
f2ce4fc81b Merge branch 'bugfix/enb_secboot_post_flash_enc' into 'master'
Enable secure boot only after encrypting flash

Closes IDF-234

See merge request idf/esp-idf!4709
2019-04-12 13:33:50 +08:00
e259f3eb70 Merge branch 'feature/unit_test_tag_leaks' into 'master'
Add support a [leaks] tag for UT

Closes IDF-143

See merge request idf/esp-idf!4333
2019-04-12 09:31:23 +08:00
5021129e71 Add support a [leaks] tag for UT 2019-04-12 09:31:23 +08:00
9985c33a46 sdio: support SDIO over spi in the example 2019-04-12 02:24:29 +08:00
8a364b4bdf sdmmc: support SDIO over SPI 2019-04-12 02:24:28 +08:00
b576bf25a7 refactor softap power save
1. Softap support multicast and broadcast saving and flushing
    when the associated stations enable IEEE80211 legacy power
    save(which is called modem sleep in ESP32).
    2. Improve the frame saving and flushing mechanism of softap power
    save.
2019-04-11 20:16:58 +08:00
3ec7bec6a7 Merge branch 'doc/review_system_log-index' into 'master'
Review log.rst and index.rst files in api-reference/system

See merge request idf/esp-idf!4738
2019-04-11 15:33:39 +08:00
a01ec59f74 Review log.rst and index.rst files in api-reference/system 2019-04-11 15:33:38 +08:00
a50fc4f015 Final formulation of the sentence in a Command Line chapter 2019-04-11 09:27:52 +03:00
c3324d5645 Added some words about a non-obvious point at the Command Line section 2019-04-11 09:27:51 +03:00
c0df805ded make esp_wifi component depend on CONFIG_NO_BLOBS
If CONFIG_NO_BLOBS is enabled, esp_wifi won't link wifi library.
2019-04-11 14:07:52 +08:00
958c2792e3 move WiFi-specific Kconfig to esp-wifi component
1. separate Kconfig from esp32 component
2. modify component.mk for esp_wifi a little bit to make it depend on IDF_TARGET
2019-04-11 12:33:15 +08:00
b4056560c0 examples/wifi: use esp_event library to handle events 2019-04-11 12:32:03 +08:00
11355c4162 examples/system: use esp_event library to handle events 2019-04-11 12:32:03 +08:00
2a48db0f48 examples/ethernet: use esp_event library to handle events 2019-04-11 12:32:03 +08:00
70eda3d221 Merge branch 'feature/gcc8_use_bundled_newlib' into 'master'
Use newlib headers and libraries from toolchain when compiling with GCC 8.2

See merge request idf/esp-idf!4450
2019-04-11 12:19:29 +08:00
25784ba87a wifi: don’t disable event handling for SoftAP
Events are needed to initialise the tcpip_adapter and start the DHCP server
2019-04-11 12:05:27 +08:00
74cd8dac9d esp_event: don’t warn if no handlers are present for specific event 2019-04-11 12:05:27 +08:00
198d7d4754 tcpip_adapter: unregister shutdown handlers, don’t fail on repeated registration 2019-04-11 12:04:58 +08:00
b1a722b2ca system_api: return error on repeated registration of shutdown handler 2019-04-11 12:04:58 +08:00
bd309a133f system_api: add esp_unregister_shutdown_handler 2019-04-11 12:04:58 +08:00
b94fcb192e event: re-add wifi disconnect reason logging (e621e0af) 2019-04-11 12:04:58 +08:00
6890ea09cd docs: add event handling API guide 2019-04-11 12:04:58 +08:00
a2d59525e5 mdns: use esp_event library to handle events 2019-04-11 12:04:58 +08:00
b1d1e37f87 event loop: re-implement based on esp_event library
Includes ds2ds unit test fix, iperf example test fix
2019-04-11 12:04:58 +08:00
1872e34115 tcpip_adapter: add event declarations 2019-04-11 12:04:58 +08:00
c001553027 ethernet: add event declarations 2019-04-11 12:04:58 +08:00
8b57fe9515 wifi: add event declarations 2019-04-11 12:04:58 +08:00
e37b0ad648 esp_event: move trailing semicolons out of defines 2019-04-11 12:04:58 +08:00
76b39403ad Merge branch 'bugfix/wifi_spike_power' into 'master'
esp32: fix the issue that the spike transmit power of WiFi is higher than configured when WiFi and Bluetooth coexist

See merge request idf/esp-idf!4611
2019-04-11 11:49:26 +08:00
0b59b6069e Merge branch 'feature/post_events_from_isr' into 'master'
Support posting events from ISR

See merge request idf/esp-idf!4283
2019-04-11 09:15:13 +08:00
a567b6c1f6 pthread: Use a definition only if we have the old toolchain 2019-04-10 21:07:10 +07:00
62b0d51c02 Enable secure boot only after encrypting flash
This prevents a device from being bricked in case when both secure boot & flash encryption are enabled and encryption gets interrupted during first boot. After interruption, all partitions on the device need to be reflashed (including the bootloader).

List of changes:
* Secure boot key generation and bootloader digest generation logic, implemented inside function esp_secure_boot_permanently_enable(), has been pulled out into new API esp_secure_boot_generate_digest(). The enabling of R/W protection of secure boot key on EFUSE still happens inside esp_secure_boot_permanently_enable()
* Now esp_secure_boot_permanently_enable() is called only after flash encryption process completes
* esp_secure_boot_generate_digest() is called before flash encryption process starts
2019-04-10 18:17:58 +05:30
9a319772e1 nvs_flash: Multi-page blob erased using nvs_erase_key should be cleaned properly
Earlier eraseItem function in Storage class would do lazy cleanup of
multi-page blobs if called using type "ANY" instead of "BLOB". It used to
just delete BLOB data and index would remain as is. Any subsequent read
would delete index entry as well. This however would return a valid
length without error if nvs_get_blob API was just used for finding
length and not reading the complete blob. This change fixes this issue.

Closes https://github.com/espressif/esp-idf/issues/3255
2019-04-10 11:45:29 +00:00
659f1a1253 esp_event: test posting from interrupt handler 2019-04-10 18:06:05 +08:00
2b914f2d22 esp_event: allow posting events from ISRs 2019-04-10 18:06:05 +08:00
c43a83596b ci: add unit test job 2019-04-10 18:06:05 +08:00
72eb170c4f components/bt: Fix errors caused by rebase 2019-04-10 17:59:23 +08:00
61bd453c15 component/bt: implement AVRCP Target APIs
1. Add more notification events to the enum according to the event list in AVRCP specification.
2. Add API and callback events for basic AVRCP target functionalities to do init, deinit, callback-registration, connection status indication.
3. Implement API to set/get supported PASSTHROUGH command on local AVRCP TG, implement callback events for remote passthrough command indication.
4. Implement API to set/get supported notification eventIDs on local AVRCP TG, implement API to send event notifications to remote CT. \
   Currently supported event in TG only includes ESP_AVRC_RN_VOLUME_CHANGE(0xd), which can be extended in later commits.
5. Implement callback events for SetAbsoluteVolume command indication on TG.
6. Add limitation of event_ids supported in RegisterNotification command in CT. The supported event_ids include: \
   ESP_AVRC_RN_PLAY_STATUS_CHANGE(0x1), ESP_AVRC_RN_TRACK_CHANGE(0x2), ESP_AVRC_RN_PLAY_POS_CHANGE(0x5), ESP_AVRC_RN_VOLUME_CHANGE(0xd).
7. Add feature bit mask in parameter of callback event ESP_AVRC_CT_REMOTE_FEATURES_EVT for peer feature information got from SDP.
8. Add API and callback event to AVRCP CT to retrieve remote TG's supported notification event capabilities.
9. Modify data type for parameter of callback event ESP_AVRC_CT_CHANGE_NOTIFY_EVT.
10. Change AVRCP version from 1.3 to 1.4 for compatibility cause in using AbsoluteVolume feature.
11. Modify local AVRCP device to be category 1 as CT and category 2 as TG that applies to bluetooth headphones or speakers.
12. Update the use of AVRCP APIs and events in the two examples: a2dp_sink and a2dp_gatts_coex, which include the demo of volume control and notification.
2019-04-10 16:34:13 +08:00
a9425cd045 Merge branch 'bugfix/http_client_redirection' into 'master'
Fix url redirection issue

See merge request idf/esp-idf!4623
2019-04-10 14:48:22 +08:00
2e6c8cdce3 esp32: disable -Wframe-address
Since the behavior is well defined on Xtensa with Window ABI we can
suppress a frame-address warning. Also fix the CMAKE_C*_FLAGS parsing.
2019-04-10 13:52:30 +08:00
5719cd6fac newlib: when compiling with GCC8, use newlib headers and libraries from toolchain 2019-04-10 13:52:30 +08:00
05aab5c0b9 newlib: force including IDF locks implementation 2019-04-10 13:52:30 +08:00
898b4bdf4d newlib: when compiling with GCC8, use newlib headers and libraries from toolchain 2019-04-10 13:52:30 +08:00
8c2f2867d8 esp_rom: don’t include locale functions when compiling with newlib 3 2019-04-10 13:52:30 +08:00
e84b26f531 esp_rom: export newlib functions as strong symbols 2019-04-10 13:52:30 +08:00
31b4fc8eb8 pthread: add dummy implementation of pthread_setcancelstate
Used by new versions of newlib in stdio functions.
2019-04-10 13:48:57 +08:00
d15e18aa5d newlib: fixes for compatibility with newlib 3.0 2019-04-10 13:48:57 +08:00
4770acf1cb newlib: add missing tzset() to the time test 2019-04-10 13:48:57 +08:00
5a203a5371 sysview: fix test case for compatibility with new binutils
Since the ‘addr2line’ works correctly in the new version of binutils,
line numbers are different.
2019-04-10 13:48:57 +08:00
7027d2dfe8 spi_master: compile as C11 due to use of stdatomic.h
stdatomic.h is available both in newlib and GCC include directories.
Normally (if you invoke the compiler without any flags) GCC include
directories are first on the list, so GCC’s stdatomic.h is used. In
IDF, we used to pass newlib include path as an extra include
directory, so newlib’s stdint.h got included instead.

Newlib 2.2.0 stdatomic implementation is compatible with -std=gnu99
but incompatible with -std=gnu11. And GCC doesn’t support atomic_load
with -std=gnu99 (it’s a C11 feature). So when we used atomic_load
with -std=gnu99, it worked due to newlib’s header.

Since we are no longer going to be including newlib headers into IDF,
GCC stdatomic will be used instead. Hence, add -std=gnu11 for source
files which use atomic features.
2019-04-10 13:48:57 +08:00
a875505546 Fix url redirection issue.
Operation:
In `esp_http_client_set_url`, we check for if old_host is same as new_host.
Delete and open new connection if host is different.

Issue:
We just pointed `client->connection_info.host` to `old_host` and reassigned it.
This made old_host and new_host always point to same location and hence, using old_host with new request.

Fix:
Made a separate copy for old_host using strdup.

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

Signed-off-by: Vikram Dattu <vikram.dattu@espressif.com>
2019-04-10 05:40:16 +00:00
c064e00842 Merge branch 'bugfix/make_bootloader_depends_on_target' into 'master'
make bootloader depend on IDF_TARGET

See merge request idf/esp-idf!4704
2019-04-10 13:07:52 +08:00
62a9eacced newlib: Fix adjtime
Fixed adjtime function: While using the adjtime() function,
the time correction accumulated an error
when reading the time frequently (using gettimeofday).
2019-04-10 04:33:44 +00:00
c580eecf89 esp32_wifi: fix the issue that the spike transmit power of WiFi is higher
than configured when WiFi and Bluetooth coexist
2019-04-10 10:19:55 +08:00
83d2ff07c6 Merge branch 'bugfix/increase_block_scan_timeout_value' into 'master'
esp_wifi: increase block scan timeout value

Closes WIFI-396

See merge request idf/esp-idf!4695
2019-04-09 20:45:21 +08:00
448d32bc53 bugfix(psram): improve spi cs timing settings for psram
1. remove redundant SPI clock settings, use rom functions to set clock.
2. remove redundant SPI cs setup and hold settings.
3. for old 32Mbit psram, cs hold time must only be 0.5T due to the special driving mode.(cs_setup = 0; cs_hold = 0)
4. for new 64Mbit psram, cs hold time is recommended to be 2.5T. (cs_setup = 1, cs_setup_time = 0;cs_hold = 1, cs_hold_time = 1)
2019-04-09 11:24:10 +08:00
2cf4a69f9b Merge branch 'bugfix/ws_transport_crash_on_connect_fail' into 'master'
transport_ws: Stop connecting when the parent's connect call has failed

See merge request idf/esp-idf!4701
2019-04-09 10:19:47 +08:00
911e503a36 Merge branch 'bugfix/prov_fix_conn_id' into 'master'
Unified Provisioning: Miscellaneous fixes in BLE

See merge request idf/esp-idf!4691
2019-04-09 09:28:18 +08:00
005f95e3f3 esp_wifi: increase WiFi block scan timeout value
Increase WiFi block scan internal timeout value.
2019-04-09 09:24:34 +08:00
49d04250e9 Merge branch 'fix/mfg_util_todo_leftback' into 'master'
mfg_util: Remove to-do line leftback

See merge request idf/esp-idf!4707
2019-04-09 09:18:44 +08:00
8e91677701 Merge branch 'bugfix/bootloader_flash_crypt_cnt_ff' into 'master'
flash encryption: reduce FLASH_CRYPT_CNT bit width to 7 bits

See merge request idf/esp-idf!4642
2019-04-09 08:10:06 +08:00
daee3dfa5f Merge branch 'bugfix/wifi_fix_no_tbtt_after_rx_wrong_beacon' into 'master'
esp_wifi: fix the bug that no TBTT will be generated anymore after receiving wrong beacon when WiFi and BT coexist.

Closes IDF-589

See merge request idf/esp-idf!4716
2019-04-08 19:38:23 +08:00
78034879a8 make bootloader depend on IDF_TARGET 2019-04-08 11:08:06 +08:00
5d43ec64bd esp_wifi: fix the bug that no TBTT will be generated anymore after receiving
wrong beacon when WiFi and BT coexist.
2019-04-08 10:36:29 +08:00
a717825b7e Unified Provisioning: Miscellaneous fixes in BLE
1. Pass the correct conn_id to protocomm_req_handle
In transport_simple_ble_write(), passing param->exec_write.conn_id would
be invalid. Instead param->write.conn_id should be passed
Similar change in transport_simple_ble_exec_write() to use
param->exec_write.conn_id

2. simple_ble_start() assumes that the mode is BLE only and enables
Bluetooth controller accordingly. For, cases having BT + BLE like Alexa
(Provisioning over BLE + Audio over classic BT), this assumption should
be removed.
2019-04-05 14:27:24 +05:30
041c784ff8 Merge branch 'feature/common_fragment_grammar' into 'master'
ldgen: Common fragment grammar

See merge request idf/esp-idf!4576
2019-04-05 07:19:22 +08:00
16ee5663ad transport_ws: Stop connecting when the parent's connect call has failed
Merges https://github.com/espressif/esp-idf/pull/3164
2019-04-04 16:14:42 +02:00
791209d0eb Merge branch 'bugfix/coex_bt_disconn' into 'master'
components/coex: Fix BT disconnecting due to too many reset BB

See merge request idf/esp-idf!4675
2019-04-04 20:53:04 +08:00
6e4a89ffce component/bt: fix memory leak when settig tx power 2019-04-04 19:49:23 +08:00
3ab9d00219 Merge branch 'bugfix/btdm_fix_warning_when_disable_logs' into 'master'
components/bt: Fix warning when disable debug logs or in release mode and improve the code structure

See merge request idf/esp-idf!4618
2019-04-04 18:45:25 +08:00
e7f85f1987 Merge branch 'bugfix/btdm_disconn_with_apple_device' into 'master'
components/bt: Fix disconnect with apple device

See merge request idf/esp-idf!4665
2019-04-04 18:44:53 +08:00
c81ebbf38e ldgen: add backward-compatibility with previous mapping fragment style 2019-04-04 16:33:56 +08:00
94bc240a5e docs: update linker script generation docs 2019-04-04 16:33:56 +08:00
3996316524 mfg_util: Remove todo line leftback 2019-04-04 13:59:52 +05:30
90ee405afd ldgen: update component linker fragment files 2019-04-04 15:57:34 +08:00
7900178b7c ldgen: update tests for common fragment parsing 2019-04-04 15:56:46 +08:00
7dcef2c33c ldgen: implement common fragment parsing 2019-04-04 15:56:14 +08:00
e349329d86 Merge branch 'doc/fix-an-important-typo-in-Getting-Started-Guide' into 'master'
Fixed a typo that cannot wait

See merge request idf/esp-idf!4685
2019-04-04 15:40:56 +08:00
34e89c46de Merge branch 'update/mfg_util' into 'master'
mfg_util: Add changes to mfg_util as per changes in nvs_util

See merge request idf/esp-idf!3573
2019-04-04 14:40:33 +08:00
63261ec2d7 Merge branch 'bugfix/httpd_accept_conn' into 'master'
esp_http_server : Only accept new connections if server has capacity to handle more

Closes IDFGH-749

See merge request idf/esp-idf!4655
2019-04-04 14:26:49 +08:00
5136b76798 Merge branch 'feature/micro-ecc-only-in-bootloader' into 'master'
Use micro_ecc library only in bootloader

See merge request idf/esp-idf!4082
2019-04-04 14:26:48 +08:00
d6394818b0 Merge branch 'feature/misc_adjustment_of_esp32' into 'master'
misc adjustment of esp32 component

Closes IDF-36

See merge request idf/esp-idf!4627
2019-04-04 11:16:46 +08:00
203af5c0a5 Merge branch 'bugfix/soc_register_struct_names' into 'master'
soc:Added names to anonymous register structs

See merge request idf/esp-idf!4668
2019-04-04 07:42:24 +08:00
9542063236 esp_http_server : Test added to check limit on max_open_sockets config option 2019-04-03 13:34:12 +00:00
7e676c1055 esp_http_server : Only accept new connections if server has capacity to handle more
This fix prevents HTTP server from accepting new connections when the total count of connected
sockets has reached the max_open_sockets limit set during configuration. The pending connections
are kept in backlog until atleast one of the connected sockets is closed. The maximum number of
connection requests that can kept in backlog is specified as backlog_conn configuration option.
Note that this modification has no effect when LRU purge is enabled.

Also added sanity check on setting for max_open_sockets during configuration.

Solution suggested by jimparis https://github.com/espressif/esp-idf/issues/3183#issue-421234265

Closes https://github.com/espressif/esp-idf/issues/3183
2019-04-03 13:34:12 +00:00
88efcdbe35 components/coex: Fix BT disconnecting due to too many reset BB
Update coex version to 1.1.6
2019-04-03 20:42:03 +08:00
f5b03c9ea3 misc adjustment of esp32 component 2019-04-03 19:57:46 +08:00
1cee7d4746 Fix a very important typo that cannot wait 2019-04-03 18:34:34 +08:00
a332bca0c7 components/bt: Fix disconnect with apple device
1. Fix disconnect with apple device
    2. Fix hci_refresh_enc_key_cmd will be ignored
    3. Fix hci_refresh_enc_key_cmd will crash

    Closes https://github.com/espressif/esp-idf/issues/3140
2019-04-03 17:22:01 +08:00
a88b40483d mfg_util: Add changes to mfg_util as per changes in nvs_util
revert changeson this file

Update README for mfg util

Update to correct coding style of script
2019-04-03 11:31:49 +05:30
30e3e26834 Merge branch 'feature/support_comments_in_csv' into 'master'
nvs_util: Add support to include comments in csv file

See merge request idf/esp-idf!4656
2019-04-03 11:12:51 +08:00
4aac441e46 soc:Added names to anonymous register structs
For typedef volatile struct in components/soc/esp32/include/soc

Merges https://github.com/espressif/esp-idf/pull/3199
2019-04-03 03:09:44 +00:00
4b4cd7fb51 efuse/flash encryption: Reduce FLASH_CRYPT_CNT to a 7 bit efuse field
8th bit is not used by hardware.

As reported https://esp32.com/viewtopic.php?f=2&t=7800&p=40895#p40894
2019-04-03 14:07:20 +11:00
dd6e8db7ec Merge branch 'doc/translate_404_page' into 'master'
Add translation for 404 page

See merge request idf/esp-idf!4635
2019-04-02 17:49:43 +08:00
53daf930c3 Merge branch 'bugfix/fix_some_sta_certification_issues' into 'master'
esp32: fix some STA certification issues

Closes WIFI-295, WIFI-299, WIFI-305, WIFI-306, WIFI-358, WIFI-367, and WIFI-368

See merge request idf/esp-idf!4434
2019-04-02 14:32:26 +08:00
3af14a065d Merge branch 'bugfix/undefined_partition_table_bin_warning' into 'master'
make: fix undefined variables warning for PARTITION_TABLE_BIN

Closes IDFGH-685

See merge request idf/esp-idf!4633
2019-04-02 11:49:58 +08:00
43d3e75125 Merge branch 'feature/derive_esp_wifi_from_esp32' into 'master'
derive esp_wifi from esp32 component

See merge request idf/esp-idf!4602
2019-04-02 10:13:15 +08:00
ae585b6615 Merge branch 'bugfix/external_rtc_start_fail' into 'master'
Bugfix/external rtc start fail

See merge request idf/esp-idf!4374
2019-04-02 09:42:27 +08:00
fd91818074 Merge branch 'feature/sysview_heap_tracing' into 'master'
SystemView based heap and log tracing

See merge request idf/esp-idf!3952
2019-04-02 09:07:55 +08:00
3914f17d26 apptrace: Adds test for logtrace_proc script 2019-04-01 19:31:45 +03:00
296c9549a4 sys_view: Adds heap & log tracing example 2019-04-01 19:31:45 +03:00
d2db2ef03c docs: Adds host-based heap tracing description 2019-04-01 19:31:45 +03:00
8c6a924cdf sys_view: Adds processing scripts for heap & log traces 2019-04-01 19:31:45 +03:00
5ef3a64c00 sys_view: Adds heap tracing API 2019-04-01 19:31:27 +03:00
2f8b6cfc77 Merge branch 'feature/btdm_add_mesh_adv_type_and_srv_uuid_for_dup_scan_except' into 'master'
Component/bt: add mesh beacon adv and svc uuid for duplicate scan exceptional list

See merge request idf/esp-idf!4592
2019-04-01 21:49:18 +08:00
b82872102e esp32: fix some STA certification issues
Fix following STA WFA certification issues:
1. STA HT2040 coexist
2. Disallow WEP/TKIP with HT rates
3. WPA2 improvement
4. Minor refactor for WiFi internal global variable auth_type
2019-04-01 21:39:47 +08:00
335576013e heap: Separate standalone and common part of tracing module 2019-04-01 15:56:15 +03:00
2d52ac48f9 apptrace: Adds checks for user arguments in apptrace API 2019-04-01 15:56:14 +03:00
c0f37a324e apptrace: Fixes tracing xQueueGiveFromISR 2019-04-01 15:56:13 +03:00
d52ecb71d6 Merge branch 'feature/spiffs_image_generator' into 'master'
SPIFFS Image Generator

See merge request idf/esp-idf!4156
2019-04-01 20:08:40 +08:00
79bb5de426 derive esp_wifi from esp32 component 2019-04-01 20:04:52 +08:00
66e38e9bac nvs_util: Add support to include comments in csv file
Closes https://github.com/espressif/esp-idf/issues/2965
2019-04-01 16:52:43 +05:30
fd28549dfa ci: Fix the cleaning stale submodule script to support difference in sub-pathes 2019-04-01 15:47:01 +05:30
816fe38f3a app_update: remove redundant (additional) check for signature verification
Call `esp_image_verify` takes care of validating image signature.
2019-04-01 15:47:01 +05:30
fcff80ecf8 fix cmake build for bootloader 2019-04-01 15:47:01 +05:30
202f689baa bootloader: use mbedTLS for secure boot verification in firmware 2019-04-01 15:46:52 +05:30
369e170ebc micro-ecc: move into booloader directory 2019-04-01 15:45:26 +05:30
5b2247df2d Merge branch 'bugfix/increase_block_scan_time' into 'master'
wifi: increase the block scan time

Closes WIFI-378 and WIFI-379

See merge request idf/esp-idf!4645
2019-04-01 17:24:04 +08:00
8914f6f9cd Merge branch 'bugfix/http_server_lf_term_hdr' into 'master'
HTTP Server : Fix for tolerating LF terminated headers

Closes IDFGH-748

See merge request idf/esp-idf!4588
2019-04-01 13:25:24 +08:00
b13ceaf468 wifi: increase the block scan time because of changing channel will take at 30nm when BT/WiFi coexist 2019-04-01 03:12:20 +00:00
7cbd863d04 Merge branch 'bugfix/coap_gcc8_format_error' into 'master'
coap: fix format error with GCC 8, define WITH_POSIX in the port header

See merge request idf/esp-idf!4639
2019-03-29 23:50:52 +08:00
005c5196e9 Merge branch 'doc/review_get_st_wrover_kit_rm' into 'master'
Delete a file which accidentally ended up in the idf's root derictory. Its…

See merge request idf/esp-idf!4632
2019-03-29 01:52:43 +08:00
e2ce0860f6 Updated 404 page not found pages, both Chinese and English versions. 2019-03-28 19:06:43 +08:00
af2fc96ee1 spi_master: refactor and add HAL support 2019-03-28 17:14:50 +08:00
624725d6e0 coap: define WITH_POSIX in coap_config.h instead of globally 2019-03-28 16:29:13 +08:00
8016448fb1 coap: silence format truncation warning (appears with GCC 8) 2019-03-28 16:28:25 +08:00
76da10a665 Merge branch 'docs/translate-getting-started-guides-devkitc2' into 'master'
Add translation for Devkitc guides and index files

See merge request idf/esp-idf!4522
2019-03-28 15:34:17 +08:00
6fcfdd3d6a Merge branch 'update/nvs_partition_util' into 'master'
Update for creation of unique filename for encryption keys

See merge request idf/esp-idf!3808
2019-03-28 15:07:44 +08:00
0acc2f59e5 Component/bt: add mesh beacon adv and svc uuid for duplicate scan exceptional list 2019-03-28 06:09:19 +00:00
85fb54a501 Merge branch 'feature/separate_xtensa_from_esp32' into 'master'
separate xtensa from esp32

See merge request idf/esp-idf!4625
2019-03-28 14:04:03 +08:00
cd8c42600c nvs_util: Add support for creation of unique encryption keys 2019-03-28 05:06:12 +00:00
1db51e18b9 Merge branch 'bugfix/restore_deleted_factory_offset' into 'master'
partition_table: restore needed factory offset variable

See merge request idf/esp-idf!4601
2019-03-28 12:03:27 +08:00
957301f293 add translation for devkitc guides and index files 2019-03-27 17:41:36 +00:00
f14d61966d Merge branch 'feature/docs_provide_404_page' into 'master'
docs: Introduced custom 404 page in readthedocs documentation to replace…

See merge request idf/esp-idf!4541
2019-03-28 01:38:31 +08:00
cb87e786a5 docs: Introduced custom 404 page in readthedocs documentation to replace… 2019-03-28 01:38:31 +08:00
7112b9492e make: fix undefined variables warning for PARTITION_TABLE_BIN
Closes https://github.com/espressif/esp-idf/issues/3136
2019-03-27 21:02:55 +08:00
dbdb299bb1 create xtensa component
1. move xtensa specific files out of esp32 component
2. merge xtensa-debug-module component into xtensa
2019-03-27 20:24:28 +08:00
da90966828 Merge branch 'feature/mqtt_weekend_tests' into 'master'
introducing weekend tests for mqtt and fuzzer test (mdns, LWIP)

Closes IDF-540

See merge request idf/esp-idf!4230
2019-03-27 19:12:33 +08:00
ade05b4802 Delete a file which accidentally ended up in the idf's root derictory. Its original copy is safe and sound where it should be and is up to date. 2019-03-27 18:09:13 +08:00
18946a5421 Merge branch 'feature/common_parts_into_esp_common' into 'master'
move common include files from esp32 into esp_common

See merge request idf/esp-idf!4515
2019-03-27 17:00:58 +08:00
21f6b4d6c3 Merge branch 'bugfix/modify_wifi_reason_code' into 'master'
wifi: modify wifi reason code

Closes WIFI-268 and WIFI-388

See merge request idf/esp-idf!4604
2019-03-27 16:50:35 +08:00
fe793eb574 Merge branch 'bugfix/btdm_modify_HCI_GET_CMD_BUF' into 'master'
Component/bt: modify HCI_GET_CMD_BUF

See merge request idf/esp-idf!4465
2019-03-27 14:23:52 +08:00
fc6b413667 Merge branch 'bugfix/btdm_add_new_param_for_update_whitelist_api' into 'master'
Component/bt: add new param for update_whitelist API

See merge request idf/esp-idf!4493
2019-03-27 14:23:12 +08:00
db95996453 docs: Add documentation for spiffsgen 2019-03-27 09:09:47 +08:00
09d7383180 example: Add SPIFFS image generation from build system example 2019-03-27 09:09:47 +08:00
a1218478a1 Merge branch 'feature/move_hwcrypto_to_mbedtls' into 'master'
move hwcrypto from esp32 to mbedtls

See merge request idf/esp-idf!4610
2019-03-27 09:07:52 +08:00
94bd4e0a26 HTTP Server : Added example tests for verifying parser behavior on arbitrary HTTP terminations (LF, CRLF, etc.) 2019-03-26 14:21:40 +05:30
990af312d1 HTTP Server : Fix for tolerating LF terminated headers
List of changes:
* When parsing requests, count termination from LF characters only
* Correct memcpy() length parameter in httpd_unrecv() (pointed out by jimparis in GitHub issue thread)
* Use ssize_t to store results of length subtractions during parsing
* Modify some comments to reduce ambiguity

Closes https://github.com/espressif/esp-idf/issues/3182
2019-03-26 14:21:40 +05:30
709a320f33 move hwcrypto from esp32 to mbedtls 2019-03-26 16:24:22 +08:00
e2ed49cdc3 Merge branch 'doc/review_get_st_wrover_kit' into 'master'
Doc/review get st wrover kit

See merge request idf/esp-idf!4579
2019-03-26 16:12:42 +08:00
a1c39e4a53 Doc/review get st wrover kit 2019-03-26 16:12:42 +08:00
54c6bf0b9b Merge branch 'doc/review_get_st_pico' into 'master'
Doc/review get st pico

See merge request idf/esp-idf!4603
2019-03-26 16:11:11 +08:00
bae824439e Doc/review get st pico 2019-03-26 16:11:11 +08:00
59d77660ef components/bt: Fix warning when disable debug logs or in release mode and improve the code structure 2019-03-26 14:37:37 +08:00
a2f07b0806 move common include files from esp32 into esp_common 2019-03-26 11:57:03 +08:00
9f3b550ff4 Merge branch 'bugfix/from_github' into 'master'
Bugfixes from GitHub

See merge request idf/esp-idf!4607
2019-03-26 11:17:46 +08:00
ebe7190f01 wifi: modify wifi reason code 2019-03-26 11:16:47 +08:00
4d9c3a262d cmake,make: Support SPIFFS image generation from build systems 2019-03-25 12:51:52 +08:00
ca06f73a51 spiffs: Add host test for generated spiffs image 2019-03-25 12:51:52 +08:00
8ba10bf3dc spiffs: Implement spiffs image generation 2019-03-25 12:51:52 +08:00
eb5abca23d nvs_flash: Fix typo in README.rst
Merges https://github.com/espressif/esp-idf/pull/3216

This should read "except for the new key-value pair" instead of
"expect for the new key-value pair".

Signed-off-by: Tim Nordell <tim.nordell@nimbelink.com>
2019-03-24 19:56:10 +01:00
955aa2e4e0 Update README.md
Merges https://github.com/espressif/esp-idf/pull/3104
2019-03-24 19:54:00 +01:00
Dan
eb83924e95 Fix math: 8192 = 2 ** 13
Merges https://github.com/espressif/esp-idf/pull/3133
2019-03-24 19:54:00 +01:00
3a4354c770 ci: fix cmake example build fail 2019-03-24 16:51:48 +08:00
2df9fb057d VFS: Allocate socket select semaphore outside ISR 2019-03-22 13:47:32 +00:00
c0bdea6aae Component/bt: add new param for update_whitelist() 2019-03-22 12:22:51 +00:00
bc60bbbeaf fuzzer tests: update of mdns and lwip host compilation for fuzzer testing
Closes IDF-540
2019-03-22 11:37:26 +01:00
997883be1e ci: assign fuzzer tests to be executed as weekend tests 2019-03-22 11:37:26 +01:00
5141e0ec24 tcp_transport: ws fix on reception of longer data than receive buffer 2019-03-22 11:37:26 +01:00
f05228be36 tiny-test-fw: update sdkconfig python dictionary to contain values without trailing newlines 2019-03-22 11:37:26 +01:00
1465f53f49 mqtt tests: adding weekend test for mqtt library to exercise publishing/receiving different data and references esp-mqtt commits to pass these tests
testing conditions:
transports (tcp, ssl, ws..)
qos (0, 1, 2)
short repeated messages (packed packets)
oversized messages (fragmented packets)
publish from a different thread

Closes https://github.com/espressif/esp-idf/issues/2870 by means of including commit 815623dfe5a0e41fa0e51ab4e336feb3eaa5ba15 from esp-mqtt
Closes https://github.com/espressif/esp-idf/issues/2975 by means of including commit 752953dc3be007cca4255b66a35d3087e61f6a54 from esp-mqtt
Closes https://github.com/espressif/esp-idf/issues/2850 by means of including commits df455d2a5fe562dd1b8351da99a1d6d82b66eff3 17fd713bced4f2d00df7ed664ed82a7d108ab317 from esp-mqtt
2019-03-22 11:37:26 +01:00
7e93d4986c partition_table: restore needed factory offset variable 2019-03-22 15:24:23 +08:00
69b58f1e9c Merge branch 'bugfix/tinydtls_mirror' into 'master'
ci: add mirror for tinydtls submodule

See merge request idf/esp-idf!4597
2019-03-22 15:22:14 +08:00
24bd5f3267 ci: add mirror for tinydtls submodule 2019-03-22 14:27:08 +08:00
c2d1f83bce Merge branch 'mesh/decouple_addition' into 'master'
wifi: decouple mesh functions from net80211

See merge request idf/esp-idf!4393
2019-03-22 12:57:03 +08:00
1be147c457 Merge branch 'feature/allow_components_to_declare_images_to_flash' into 'master'
Allow components to present their own images to flash

See merge request idf/esp-idf!4148
2019-03-22 11:14:37 +08:00
426bb08552 Merge branch 'feature/move_common_src_to_esp_common' into 'master'
move common source files from esp32 to esp_common

See merge request idf/esp-idf!4589
2019-03-22 11:12:05 +08:00
fcedf442ce move common source files from esp32 to esp_common 2019-03-22 10:35:03 +08:00
80dd3ae749 Merge branch 'bugfix/cmake_component_path' into 'master'
cmake: Set COMPONENT_PATH during early expansion of dependencies

Closes IDFGH-787

See merge request idf/esp-idf!4557
2019-03-22 07:13:11 +08:00
940a1f6e79 Merge branch 'feature/separate_rom_from_esp32' into 'master'
separate rom from esp32 component to esp_rom

Closes IDF-542

See merge request idf/esp-idf!4500
2019-03-21 22:10:45 +08:00
3a779380a7 Merge branch 'feature/semihost_vfs' into 'master'
Adds semihosting VFS driver

Closes IDF-367

See merge request idf/esp-idf!4145
2019-03-21 22:03:06 +08:00
58314feff9 Merge branch 'feature/http_server_pinned_to_core_support' into 'master'
HTTP Server: Added ability to select core

See merge request idf/esp-idf!4586
2019-03-21 19:19:13 +08:00
ffa8bed7c8 Merge branch 'bugfix/nvs_util_write_single_page_big_blob_data' into 'master'
nvs_util: Fix to support write operation of multiple single page big blob data

See merge request idf/esp-idf!4268
2019-03-21 19:10:29 +08:00
eee89118d9 Merge branch 'feature/idf_monitor_save_log' into 'master'
tools: Create log files from IDF Monitor

Closes IDF-364

See merge request idf/esp-idf!4414
2019-03-21 19:06:31 +08:00
bf5e3de955 Merge branch 'doc/app_trace_zh_CN' into 'master'
zh_CN translation of app_trace

See merge request idf/esp-idf!4087
2019-03-21 18:58:32 +08:00
c159984264 separate rom from esp32 component to esp_rom
1. separate rom include files and linkscript to esp_rom
2. modefiy "include rom/xxx.h" to "include esp32/rom/xxx.h"
3. Forward compatible
4. update mqtt
2019-03-21 18:51:45 +08:00
4fc548112e Merge branch 'bugfix/ldgen_type_1_fails_on_windows' into 'master'
Fix library path parsing in windows

Closes IDFGH-733

See merge request idf/esp-idf!4516
2019-03-21 18:38:51 +08:00
33d555dbdd Merge branch 'doc/http_server_zh_CN' into 'master'
zh_CN translation of HTTP Server API reference

See merge request idf/esp-idf!4548
2019-03-21 18:37:15 +08:00
77e7af4e90 Merge branch 'feature/update_libcoap_4.2.0' into 'master'
Update component/coap to libcoap version release-4.2.0

See merge request idf/esp-idf!4499
2019-03-21 18:35:20 +08:00
106dc05903 Merge branch 'feature/specify_includes_belonging_esp32' into 'master'
move esp32 chip specific includes to esp32/xxx.h

See merge request idf/esp-idf!4534
2019-03-21 18:34:08 +08:00
57e1b5dad8 Merge branch 'bugfix/newlib_fcntl_r_signature' into 'master'
vfs: change fcntl argument to int (instead of va_list), add weak fcntl

See merge request idf/esp-idf!4549
2019-03-21 18:30:34 +08:00
ce07a1057c Merge branch 'feature/make-debug-verbose-usable' into 'master'
logs: Make verbose and debug logging cleaner

Closes IDFGH-782

See merge request idf/esp-idf!4578
2019-03-21 18:29:50 +08:00
743fa44544 Merge branch 'bugfix/esp_debug_includes' into 'master'
mbedtls: Fix esp_debug not including its dependencies

See merge request idf/esp-idf!4581
2019-03-21 18:28:39 +08:00
47b5c5bc90 Merge branch 'bugfix/fixes_from_github' into 'master'
Fixes from Github

See merge request idf/esp-idf!4510
2019-03-21 18:27:53 +08:00
efcd10ea31 Fix missing declaration of __bswap64 in endian.h
Merges https://github.com/espressif/esp-idf/pull/2983
2019-03-21 15:08:11 +08:00
fc880e2429 Fixed a small spelling mistake
Merges https://github.com/espressif/esp-idf/pull/3089
2019-03-21 15:08:11 +08:00
36c73e6d70 Easier use of -Wsign-conversion warnings needs changes.
Merges https://github.com/espressif/esp-idf/pull/3129
2019-03-21 15:08:04 +08:00
e5e41e0a5e Fix comment typos in WiFi types header
Merges https://github.com/espressif/esp-idf/pull/3145
2019-03-21 15:06:24 +08:00
85653acfb4 check-lxdialog.sh: Support libintl on FreeBSD
To unbreak "make menuconfig."

Merges https://github.com/espressif/esp-idf/pull/3168
2019-03-21 15:06:24 +08:00
e24ac7a346 Add another auto-generated file to .gitignore.
* Update tools/kconfig/.gitignore for auto-generated file *.o.

Merges https://github.com/espressif/esp-idf/pull/3073
2019-03-21 15:06:24 +08:00
6f5f40dae4 updated buffer size too small for popular carrier in India Airtel -> airtelgprs.com
Merges https://github.com/espressif/esp-idf/pull/3010
2019-03-21 15:06:24 +08:00
178c9d15de Fix comments in ULP MOVE instruction examples
Merges https://github.com/espressif/esp-idf/pull/2992
2019-03-21 15:06:24 +08:00
d43e3e7fc6 Merge branch 'feature/ci_use_custom_toolchain' into 'master'
ci: Add an ability to use custom toolchain for testing

See merge request idf/esp-idf!4561
2019-03-21 14:51:12 +08:00
13cf867023 logs: Make verbose and debug logging cleaner
* Closes #3193
* Closes IDFGH-782

The logs that are deleted in this commit make debug and verbose mode
unusable.
2019-03-21 11:54:04 +05:30
25043c4d56 Merge branch 'feature/merge_flash_data_type-flash_partitions' into 'master'
merge esp_flash_data_types into esp_flash_partitions

See merge request idf/esp-idf!4504
2019-03-21 13:40:40 +08:00
6d4a7b1a7e Merge branch 'bugfix/cmake_soc_test' into 'master'
soc: fix compiling unit tests with CMake

Closes IDF-499

See merge request idf/esp-idf!4545
2019-03-21 13:34:58 +08:00
7f1047847a HTTP Server: Added ability to select core
The task that runs the HTTP server can now be pinned to a particular core by setting `core_id`
in the HTTP server configuration.  By default, the core is set to `tskNO_AFFINITY`, meaning
it can run on any core.

Merges https://github.com/espressif/esp-idf/pull/3190
2019-03-21 11:22:58 +08:00
7cec2e8342 ci: Add an ability to use custom toolchain for testing 2019-03-21 09:50:26 +07:00
c1e5e19d0b Merge branch 'bugfix/heap_caps_int_overflows' into 'master'
heap: Add integer overflow checks on MALLOC_CAP_32BIT & MALLOC_CAP_EXEC

See merge request idf/esp-idf!4451
2019-03-21 09:47:38 +08:00
112c54e043 Merge branch 'doc/ota_readme_cert_cn' into 'master'
ota example: Mention the certificate needs CN set correctly

See merge request idf/esp-idf!4441
2019-03-21 09:26:12 +08:00
b7ee11231d mbedtls: Fix esp_debug not including its dependencies
As reported on forum: https://esp32.com/viewtopic.php?f=13&t=9782&p=40464#p40464
2019-03-21 10:48:55 +11:00
2994d25f27 Merge branch 'bugfix/sphinx_build_failure_on_rtd' into 'master'
docs: Upgraded sphinx package version to prevent build failures on readthedocs…

See merge request idf/esp-idf!4552
2019-03-21 02:14:36 +08:00
bd103f3743 Merge branch 'feature/btdm_add_api_to_clean_gattc_cache' into 'master'
Component/bt: add api to clean gattc cache

See merge request idf/esp-idf!3951
2019-03-20 22:05:00 +08:00
c1600f28d1 Merge branch 'bugfix/btdm_fix_no_adv_report_when_scaning_with_sleep_enable' into 'master'
Component/bt: fix no adv report when scanning with sleep enable

See merge request idf/esp-idf!4535
2019-03-20 21:36:23 +08:00
c5fb88c2e2 Merge branch 'bugfix/btdm_fix_build_warning_when_bluedroid_disable_log' into 'master'
Component/bt: fix build warning when bluedroid disable log

See merge request idf/esp-idf!4524
2019-03-20 21:09:59 +08:00
7f606d0c2b Component/bt: modify HCI_GET_CMD_BUF 2019-03-20 19:35:06 +08:00
95301c16bd Fix external start fail 2019-03-20 18:34:01 +08:00
5ba87240b5 soc/rtc: Bypass touchpad current to external 32k crystal oscillator 2019-03-20 18:34:01 +08:00
b5ac319160 vfs: Adds example for semihosting VFS driver 2019-03-20 12:52:52 +03:00
9efd7d3d34 zh_CN translation of HTTP Server API reference 2019-03-20 16:45:16 +08:00
60b5cdde20 nvs_util: Fix to support write of multiple singlepage big blob data
Closes https://github.com/espressif/esp-idf/issues/3011
2019-03-20 08:15:36 +00:00
b2b0f75fbb Decouple Wifi and ESP-Mesh to reduce bin size
Do not link mesh code when mesh is not used
2019-03-20 15:17:03 +08:00
d31a137f9c Merge branch 'bugfix/mesh_memory_leak' into 'master'
mesh: fix memory leak and group send

See merge request idf/esp-idf!4438
2019-03-20 14:57:05 +08:00
34d118d445 Merge branch 'feature/optimized_gpio_intr_service' into 'master'
driver: Add optimization by speed in ISR functions for gpio, rmt, pcnt

Closes IDF-328

See merge request idf/esp-idf!4241
2019-03-20 14:19:17 +08:00
dc5ff1d633 Merge branch 'bugfix/btdm_fix_blufi_prepare_write_crash' into 'master'
Component/bt: fix blufi prepare write crash

See merge request idf/esp-idf!4447
2019-03-20 11:46:15 +08:00
886d8a6f28 Merge branch 'bugfix/newlib_misc_cleanups' into 'master'
newlib: minor cleanup

See merge request idf/esp-idf!4550
2019-03-20 11:08:20 +08:00
fe92829971 Merge branch 'feature/separate_eventloop_from_esp32' into 'master'
separate legacy esp_event from esp32 component to esp_event

See merge request idf/esp-idf!4539
2019-03-20 09:59:17 +08:00
abdc9f50d8 cmake: Set COMPONENT_PATH during early expansion of dependencies
Works around bug where components/soc/CMakeLists.txt was testing "EXISTS
${COMPONENT_PATH}/${SOC_NAME}" and this test could pass during early
expansion if COMPONENT_PATH was empty and a directory /esp32 exists
on Windows.

Closes https://github.com/espressif/esp-idf/issues/3195
2019-03-20 10:45:45 +11:00
b7b5c3a8c7 Merge branch 'bugfix/error_in_bootloader_loadprohibited' into 'master'
esp_tool: Exclude elf-sha256 from bootloader

Closes IDFGH-690

See merge request idf/esp-idf!4520
2019-03-20 07:28:09 +08:00
57b2d5ae56 docs: Upgraded sphinx package version to prevent build failures on readthedocs site. Upgraded versions of other packages that are used during documentation build. 2019-03-19 17:04:58 +01:00
1d0bffb20a lwip, wpa_supplicant: use endianness macros from libc if possible 2019-03-19 22:15:32 +08:00
068b700786 newlib: remove usage of pre-ANSI defines 2019-03-19 22:15:26 +08:00
ac612b5422 newlib: enable timeradd, timersub, and similar macros
This uses a hack (temporarily defining __rtems__ from a wrapper header
file) to include timeradd, timersub, and similar macros, without
modifying newlib headers.
2019-03-19 22:15:12 +08:00
76d4b0150d Revert "feat(time): enable the macro timeradd, timersub, timerclear, etc."
This reverts commit 8f994b9dce.
2019-03-19 22:15:06 +08:00
48b1433772 vfs: change fcntl argument to int (instead of va_list), add weak fcntl 2019-03-19 21:44:17 +08:00
060cf9d6b4 Merge branch 'power_management/i2s+i2c' into 'master'
Power management/i2s+i2c

See merge request idf/esp-idf!4338
2019-03-19 17:27:59 +08:00
9a5fc6228b Merge branch 'bugfix/fix_minor_make_build_system_issue' into 'master'
make: use `shell` command to extract version string

See merge request idf/esp-idf!4526
2019-03-19 17:24:30 +08:00
f19ecbbbfa Merge branch 'test/detect_exception_in_idf_dut' into 'master'
tiny-test-fw: support detect exception in IDFDUT

See merge request idf/esp-idf!4527
2019-03-19 17:23:55 +08:00
0514a65cc9 esptool: Only insert SHA256 if overwriting zero data 2019-03-19 13:29:07 +08:00
98db4d2eb6 esp_tool: Exclude elf-sha256 from bootloader
Closes: IDFGH-690
2019-03-19 12:54:25 +08:00
73851e0b5c soc: fix compiling unit tests with CMake
soc unit tests have not been included when compiling with CMake,
because ../${SOC_NAME}/test was not evaluated relative to the
CMakeLists.txt directory.

Also call register_components() regardless of the presence of test
directory for particular target.
2019-03-19 11:42:51 +08:00
0a3975e80d test: handle exception by unit test script:
unit test script will detect exception, we don't need to let test fail
when exception happened.
2019-03-19 11:24:08 +08:00
b85e9e5cda tiny-test-fw: support translate backtrace in IDFDUT 2019-03-19 11:24:08 +08:00
f11eba7802 tiny-test-fw: support detect exception in IDFDUT 2019-03-19 11:24:08 +08:00
8fbb63c2a7 Merge branch 'bugfix/i2c_driver_release_opt' into 'master'
driver/i2c: write i2c command structure to hardware in one operation

See merge request idf/esp-idf!4538
2019-03-19 10:59:21 +08:00
2a419fa599 tools: Create log files from IDF Monitor 2019-03-18 19:33:20 +01:00
ab4b57e03d example:coap_server: Change app task stack size 2019-03-18 12:33:52 +00:00
fecd7a16d4 example:coap_client: Change app task stack size 2019-03-18 12:33:52 +00:00
bc9d1a65d7 Update component/coap to libcoap version release-4.2.0
This takes the code up to the latest released version of libcoap.

As there have been API changes, coap_client and coap_server in
examples/protocols have been updated to use the new APIs.

Further information on the new libcoap APIs can be found at
https://libcoap.net/doc/reference/4.2.0/

coap_client has been updated to handle BLOCK2 responses from
"coap://californium.eclipse.org"
coap_client has been modified to only send out one request (and wait for
the response)

coap_server has been updated to support Observe subscriptions, and well as
adding in PUT and DELETE handlers to work on the Espressif resource

coap_server and coap_client have had their stack sizes increased.

port/coap_io.c has been added, a copy of libcoap/src/coap_io.c with support
added for systems that do not have RFC 3542 section 20 support.

port/coap_io_socket.c has been removed as a lot of the code is now
replicated in different libcoap files.

Once this PR is place, then adding in DTLS will be a lot simpler (as a
separate PR)

Signed-off-by: Jitin George <jitin@espressif.com>

Merges https://github.com/espressif/esp-idf/pull/3148
2019-03-18 12:33:52 +00:00
fd9bc30aca separate legacy esp_event from esp32 component to esp_event 2019-03-18 19:58:04 +08:00
f0a82d7185 driver/i2c: write i2c command structure to hardware in one operation
GCC compiler can generate 8-bit stores when modifying bitfields of
volatile structs (https://github.com/espressif/esp-idf/issues/597).
In the specific case of I2C driver, this resulted in byte_num field
to be written using s8i. However the peripheral requires 32-bit
writes, and ignores 8-bit writes. This change modifies the code to
compose the 32-bit command register value first, and then write the
complete value to the hardware.
2019-03-18 18:23:50 +08:00
96aa08a0ff Merge branch 'bugfix/coredump_fixes' into 'master'
espcoredump fixes for GCC 8.2

See merge request idf/esp-idf!4528
2019-03-18 18:23:25 +08:00
956c25dedd move esp32 chip specific includes to esp32/xxx.h 2019-03-18 17:14:05 +08:00
fae39dc326 merge esp_flash_data_types into esp_flash_partitions 2019-03-18 08:51:55 +00:00
a628577f64 Component/bt: fix no adv report when scaning with sleep enable 2019-03-18 16:35:50 +08:00
4de5ae7468 PM: I2S and I2C added in the Power Management docs
Signed-off-by: Sachin Parekh <sachin.parekh@espressif.com>
2019-03-18 08:21:21 +00:00
7fc6445035 I2S: Enable Power Management locks
Acquires PM_APB_FREQ_MAX lock when carrying any transaction on I2S if
Power Management Framework is enabled.

Signed-off-by: Sachin Parekh <sachin.parekh@espressif.com>
2019-03-18 08:21:21 +00:00
d0234ad24a I2C: Enable Power Management locks
Acquires PM_APB_FREQ_MAX lock when carrying any transaction on I2C if
Power Management Framework is enabled.

Signed-off-by: Sachin Parekh <sachin.parekh@espressif.com>
2019-03-18 08:21:21 +00:00
7d96b3442a mesh: fix memory leak and group send
fix a bug in group send
fix esp_mesh_set_router when router_t not initialized
fix mesh memory leak with invalid option
2019-03-18 14:43:21 +08:00
f1e9078cb0 Merge branch 'bugfix/fix_the_bug_cal_PMK_too_long' into 'master'
wifi: fix the bug that calculate PMK too long

Closes IDFGH-524

See merge request idf/esp-idf!4349
2019-03-18 14:26:48 +08:00
1940ee0910 Component/bt: fix build warning when bluedroid disable log 2019-03-18 14:18:12 +08:00
63dabd1a17 espcoredump: fix test with esp32-2018r1 toolchain 2019-03-18 12:47:29 +08:00
6221f5a819 espcoredump: fix test compilation error with GCC 8 2019-03-18 12:47:22 +08:00
2dd3344342 heap: Add integer overflow checks on MALLOC_CAP_32BIT & MALLOC_CAP_EXEC 2019-03-18 01:41:58 +00:00
9ce7ffb440 ldgen: fix library path parsing in windows
Closes https://github.com/espressif/esp-idf/issues/3173
2019-03-18 03:47:38 +08:00
234de8de55 cmake: Allow components to present their own images to flash 2019-03-18 03:45:22 +08:00
e4d97bef3d make: use shell command to extract version string 2019-03-17 21:33:22 +08:00
5beb2802e0 Merge branch 'bugfix/bluetooth_fix_API_esp_bt_gap_set_scan_mode' into 'master'
Modify esp_bt_gap_set_scan_mode() to be able to set connection modes as well as discoverable modes

See merge request idf/esp-idf!2208
2019-03-17 14:19:11 +08:00
8e4b82548a Merge branch 'bugfix/suppress_dhcpserver_debug_output' into 'master'
dhcpserver: suppress send_nak debug output

Closes IDFGH-557

See merge request idf/esp-idf!4491
2019-03-17 14:12:58 +08:00
f6665cf90b Merge branch 'bugfix/esp_prov_ble_rw_except' into 'master'
esp_prov : Catch DBus exception when reading/writing to BLE GATT characteristic

See merge request idf/esp-idf!4503
2019-03-15 21:10:53 +08:00
6408ef9e7c wifi: fix the bug that when call set_config before connecting to an encrypted AP, PMK will be recalculated
Closes https://github.com/espressif/esp-idf/issues/2880
2019-03-15 16:28:58 +08:00
b1a81e8167 Merge branch 'bugfix/bb_watchdog_reset' into 'master'
esp32: add WiFi baseband watchdog reset

See merge request idf/esp-idf!4409
2019-03-15 16:12:30 +08:00
6400714d9b Merge branch 'feature/confserver_v2' into 'master'
confserver: Add v2 confserver protocol with separate visibility info

See merge request idf/esp-idf!4162
2019-03-15 14:49:05 +08:00
cc9b06d4da Merge branch 'bugfix/esp_sha_signing_sha256' into 'master'
secure boot: Fix esp_sha INT WDT, switch to using mbedTLS API

Closes IDFGH-681

See merge request idf/esp-idf!4440
2019-03-15 14:35:38 +08:00
87881b76ad Merge branch 'bugfix/make_gcc_version_evaluation' into 'master'
make: Ensure that component_project_vars.mk not generated before config

See merge request idf/esp-idf!4474
2019-03-15 14:30:48 +08:00
b4d87191ef Merge branch 'bugfix/esp-http-client-event-fixes' into 'master'
Minor bugfixes in esp_http_client and tcp_transport

See merge request idf/esp-idf!4467
2019-03-15 11:45:40 +08:00
416b756ea4 Merge branch 'bugfix/name_conflict_esp32_project_ld' into 'master'
esp32: Rename esp32.common.ld to esp32.project.ld to avoid build errors when downgrading

See merge request idf/esp-idf!4484
2019-03-15 11:42:20 +08:00
a44f43c2ea confserver: Send an error response if JSON request is malformatted 2019-03-15 14:31:45 +11:00
6897dab2de confserver: In protocol V2, a "load" should only send back changes not all items 2019-03-15 14:31:45 +11:00
02802a5113 confserver: Add support for new V2 protocol
V2 adds:
* Independent result for visibility (showing/hiding menus)
* Includes adding IDs for all items (menus & symbols) in kconfig_menus.json

Still backwards compatible with V1, with some small changes (menu items now listed in results).

Also added some protocol docs, changed the "listening on stdin" message to come after any kconfiglib warnings
2019-03-15 14:31:45 +11:00
f02ceb747e Merge branch 'bugfix/idf_py_windows_relpath' into 'master'
idf.py: Fix Windows issue if project and IDF are on different drives

Closes IDFGH-478

See merge request idf/esp-idf!4404
2019-03-15 09:36:25 +08:00
048cd2a887 esp_prov : Catch DBus exception when reading/writing to BLE GATT characteristic
This is useful in the context of provisioning when server initiates disconnection if secure session establishment fails.
2019-03-14 18:33:34 +05:30
b8f23fbd42 Merge branch 'bugfix/ble_assert_8192' into 'master'
fix the bug assert(8192 0) in rwble.c 234

See merge request idf/esp-idf!4461
2019-03-14 20:24:33 +08:00
9b0e6e3b49 esp_http_client: Fix header sent event bug 2019-03-14 14:31:28 +05:30
d943c8de94 tcp_transport: Fix case sensitive header comparison
Closes https://github.com/espressif/esp-idf/issues/3106
2019-03-14 14:31:28 +05:30
ce6b73ca5f Merge branch 'bugfix/console_allow_buffered' into 'master'
console example: use buffered stdout by default

See merge request idf/esp-idf!4476
2019-03-14 15:40:42 +08:00
1b3373543f Merge branch 'feature/trim_idf_ver_to_fit_32bit_field' into 'master'
tools/test_build_system: Trim IDF_VER to fit a 32-bit field

Closes IDFGH-682

See merge request idf/esp-idf!4477
2019-03-14 15:39:20 +08:00
b39bd0615c fix the bug assert(8192 0) in rwble.c 234 2019-03-14 15:38:23 +08:00
7c69f6172b Merge branch 'bugfix/spi_flash_mmap_stale_data_issue' into 'master'
spi_flash: fix stale read issue for memory mapped partition

See merge request idf/esp-idf!4437
2019-03-14 14:56:12 +08:00
fa2998d70b dhcpserver: suppress send_nak debug output
Closes https://github.com/espressif/esp-idf/issues/2924
2019-03-14 14:00:35 +08:00
12bdf8e45b esp32: Chunk input blocks for esp_sha() function performance, add perf test 2019-03-14 05:56:06 +00:00
1cc726b2a3 secure boot: Use mbedtls_sha256() not esp_sha()
Latter is probably compiled into most firmwares already, saves some size.

Ref https://github.com/espressif/esp-idf/issues/3127
2019-03-14 05:56:06 +00:00
6a6fbde83d esp32 hwcrypto: Prevent esp_sha() from disabling interrupts for extended period
* Closes https://github.com/espressif/esp-idf/issues/3127
* Closes IDFGH-681

Also reported at https://esp32.com/viewtopic.php?f=13&t=9506
2019-03-14 05:56:06 +00:00
981585df95 Merge branch 'feature/github_sync_prs_jira' into 'master'
github: Sync PRs to JIRA as well

See merge request idf/esp-idf!4487
2019-03-14 13:53:10 +08:00
d6a2590e40 Merge branch 'ci/print_error_label_check' into 'master'
ci: Print an error in the log if the label check fails

See merge request idf/esp-idf!4485
2019-03-14 11:37:20 +08:00
d0739861e8 github: Sync PRs to JIRA as well
Currently the GitHub sync half-syncs these (as it will create a JIRA issue as soon as the first
comment is made on the PR).
2019-03-14 14:29:46 +11:00
31ca6e399b Merge branch 'bugfix/mdns_add_remove_multiple_srv_master' into 'master'
mdns: fix possible crash if tx packet contained answer to removed service

Closes IDF-498 and IDF-504

See merge request idf/esp-idf!4348
2019-03-14 08:10:23 +08:00
f552977309 make: Ensure that component_project_vars.mk not generated before config
* Fix the situation where component_project_vars.mk is generated before config exists
* Does not fix situation where config is changed and component_project_vars.mk contents should be
  changed. This may still require a rebuild.
2019-03-14 10:57:36 +11:00
3bfb0d86e3 ci: Print an error in the log if the label check fails
One less step for a developer to figure out why this failed.
2019-03-14 10:15:49 +11:00
974796fa6c Merge branch 'bugfix/remove_malloc_ble_prov' into 'master'
Protocomm BLE: Make changes in handling BLE read/write requests

See merge request idf/esp-idf!4444
2019-03-14 07:08:50 +08:00
a79c5b8271 esp32: Rename esp32.common.ld to esp32.project.ld to avoid build errors when downgrading
Linker script generator produces build/esp32/esp32.common.ld from
components/esp32/ld/esp32.common.ld.in

This works fine until IDF is downgraded to V3.1 which uses components/esp32/ld/esp32.common.ld and
doesn't track build/esp32/esp32.common.ld at all.

At this point, the linker runs in the build/esp32 directory and "-T esp32.common.ld" picks up the
linker script generated .ld file, which causes mis-builds.

As reported on forums: https://esp32.com/viewtopic.php?f=13&t=9684&p=40105
2019-03-14 09:59:31 +11:00
16b2fd2dce Merge branch 'doc/review_get_started' into 'master'
Update IDF getting started sections for make and cmake as well as IDF monitor…

See merge request idf/esp-idf!4331
2019-03-14 00:10:26 +08:00
49cca9288f Update IDF getting started sections for make and cmake as well as IDF monitor… 2019-03-14 00:10:26 +08:00
b1b5849c4c rmt/driver: Sped the rmt_driver_isr_default ISR
Used __builtin_ctz function to sped ISR.
2019-03-13 13:50:43 +00:00
3307735bc0 pcnt/driver: Sped the pcnt_intr_service ISR
Used __builtin_ctz function to sped ISR.
2019-03-13 13:50:43 +00:00
b8dc48ab18 gpio/driver: Sped the gpio_intr_service ISR up by 1.5 uSeconds (+-50% faster).
Removed as much branching (if statements) from the
gpio_intr_service ISR, as possible and split the while loop into
two. Also forced writing the two status*_w1tc variables only once,
instead of every time after calling the external function hooks.

The measurements below, was done using the following tools:

Toolchain version: crosstool-ng-1.22.0-80-g6c4433a
Compiler version: 5.2.0

Here follows a comparison of the gpio_intr_service ISR's
execution time, using a DS1054 oscilloscope. All the time spent
calling external functions, via the function pointers
gpio_isr_func[gpio_num].fn, were disregarded.

With OPTIMIZATION_FLAGS = -Og, 1.34 uSeconds faster:

3.22 uSec (with this patch)
4.56 uSec (with commit 71c90ac4)

100 - (100 * 4.56 / 3.22) = 42% faster

With OPTIMIZATION_FLAGS = -Os, 1.65 uSeconds faster:

2.89 uSec (with this patch)
4.54 uSec (with commit 71c90ac4)

100 - (100 * 4.54 / 2.89) = 57% faster

Signed-off-by: Konstantin Kondrashov <konstantin@espressif.com>

Merges https://github.com/espressif/esp-idf/pull/2861
2019-03-13 13:50:43 +00:00
126d6b2de2 tools/test_build_system: Add tests with long IDF_VER 2019-03-13 20:43:33 +08:00
d34ca0b897 Merge branch 'test/fix_some_ut_not_assigned' into 'master'
test: fix some ut case not assigned

See merge request idf/esp-idf!4449
2019-03-13 20:42:24 +08:00
945bd36884 examples: don't enable buffering on stdout in console examples
newlib uses significantly more stack space when printing to an
unbuffered stream. To reduce the amount of stack space required to
use the console, don’t disable buffering. linenoise should support
unbuffered stdout instead.
2019-03-13 20:32:37 +08:00
fa57fb3c1c console/linenoise: support buffered stdout 2019-03-13 20:17:25 +08:00
f8ca296438 cmake: Trim IDF_VER to fit a 32-bit field 2019-03-13 20:04:43 +08:00
53208f6324 make: Trim IDF_VER to fit a 32-bit field
Closes: https://github.com/espressif/esp-idf/issues/3131
2019-03-13 20:01:28 +08:00
296fbca2e7 Component/bt: fix blufi prepare write crash 2019-03-13 17:57:25 +08:00
265e983a45 mdns: fix possible crash when probing on particular interface with duplicated service instances due to naming conflicts on network
Issue: MDNS server initially sends probing packets to resolve naming confilicts with already registered service instances. In case of a conflict, instance name is altered and probing restarts. Original instance however wasnnot removed from the structure and upon service removal only one entry was removed and a dangling service might have been kept in the structure to bring about a crash.
Resolution: Keep only one instance of a service in the probing structure.

Closes IDF-498
2019-03-13 10:22:41 +01:00
c87f0cb6ca mdns: enable pcbs before starting service thread to avoid updating pcb's internal variables from concurent tasks
possible race condition: user task runs mdns_init, which enables pcbs while mdns-task already created could execute enable/disable of the same pcbs if an appropriate system event received
2019-03-13 10:22:41 +01:00
48b5501c25 mdns: fix possible deadlock on mdns deinit calling mdns_free()
mnds_free() initiates stop and delete timer tasks, which after locking the mutex could lead to a dead lock in case timer task executed before deleting the task, as it would wait indefinitelly for unlocking the mutex. This condition is fixed by calling _mdns_stop_timer without locking the mutex, because there's no need to protect any data when stopping and deleting the timer task

Closes https://github.com/espressif/esp-idf/issues/1696
2019-03-13 10:22:41 +01:00
021dc5d453 mdsn: fix race condition in updating packet data from user task when failed to allocate or queue a new service
Issue: mdns_service_add API allocates and queues an action to be processed in mdns task context; when allocation or queueing fails, allocated structure needs to be freed. Function _mdns_free_service did not only fee all the structures, but also updates packet data.
Resolution: Moved removal of packet data outside of _mdns_free_service function.
2019-03-13 10:22:41 +01:00
67051a286b mdns: fix possible crash when packet scheduled to transmit contained service which might have been already removed
packets scheduled to transmit are pushed to action queue and removed from tx_queue_head structure, which is searched for all remaining services and while service is removed, then service questions/asnwers are also removed from this structure. This update fixes possible crash when packet is pushed to action queue, and when service is removed, its answers are removed from tx_queue_head, but not from action queue. this could lead to a crash when the packet is poped from action queue containing questions/answers to already removed (freed) service

Closes IDF-504
2019-03-13 10:22:41 +01:00
75287eb569 Merge branch 'feature/btdm_add_adv_report_flow_control' into 'master'
Component/bt: add BLE adv report flow control

See merge request idf/esp-idf!4423
2019-03-13 16:58:07 +08:00
d5e78e79d3 Component/bt: add api to clean gattc cache 2019-03-13 15:23:33 +08:00
7541d23523 Merge branch 'feat/spi_master_variable_dummy' into 'master'
spi_master: add support for variable dummy length in a same device

See merge request idf/esp-idf!4360
2019-03-13 15:15:58 +08:00
e77540b695 Merge branch 'test/spi_sio_test' into 'master'
spi: add test for sio mode

See merge request idf/esp-idf!3416
2019-03-13 15:15:43 +08:00
5107f9f9b2 Merge branch 'bugfix/confgen_expr_value' into 'master'
confgen: Fix bug with JSON metadata conditional range generation

See merge request idf/esp-idf!4402
2019-03-13 13:54:17 +08:00
d9ce0bb705 Modify esp_bt_gap_set_scan_mode() to be able to set connection modes as well as discoverable modes
The current API is insufficient to allow the users to set different combinations of connection and discoverable mode

Users should be able to choose the device modes independently:
1. Connectable-
  i. Non-connectable mode
  ii. Connectable mode

2. Discoverable-
  i. Non-discoverable mode
  ii. Limited discoverable mode
  iii. General discoverable mode
2019-03-13 11:24:00 +05:30
16adb9d62a spi_flash: add test case for stale read issue on memory mapped partition 2019-03-13 05:38:01 +00:00
2752654043 spi_flash: fix stale read issue for memory mapped partition
On flash program operation (either erase or write), if corresponding address has
cache mapping present then cache is explicitly flushed (for both pro and app cpu)

Closes https://github.com/espressif/esp-idf/issues/2146
2019-03-13 05:38:01 +00:00
fa5bc5d58b Merge branch 'bugfix/ssid_passwords_null_terminated' into 'master'
wifi: Specify that SSID & Password fields should be NULL terminated strings

See merge request idf/esp-idf!4468
2019-03-13 13:29:09 +08:00
710bcbd447 Merge branch 'feature/freertos_check_mutex_owner' into 'master'
freertos: check that mutex is released by owner task

See merge request idf/esp-idf!4012
2019-03-13 13:15:34 +08:00
961e433395 Merge branch 'bugfix/spi_flash_exclude_encrypted' into 'master'
esp_partition: disable encrypted reads/writes if flash encryption is disabled

See merge request idf/esp-idf!4099
2019-03-13 13:15:24 +08:00
674d234283 esp32: add WiFi baseband watchdog reset
When WiFi enter into a special status (11b weak mode), then reset
Wifi baseband to recover to normal mode.
2019-03-13 11:09:30 +08:00
79d37b75f3 wifi: Specify that SSID & Password fields should be NULL terminated strings
Closes https://github.com/espressif/esp-idf/issues/1176
2019-03-13 11:44:41 +11:00
d5f15a45ca Component/bt: add BLE adv report flow control 2019-03-12 11:10:26 +08:00
1bc1fb7005 ci: add one more unit test job 2019-03-11 14:40:54 +00:00
37144dfa07 mdns: use binary semaphore instead of mutex when searching
mdns_search_once_t::lock is used to synchronize tasks (taken by one
task and given by the other) so it should not be a mutex.
Convert to semaphore, and rename to indicate its purpose.
2019-03-11 14:40:54 +00:00
d539183b40 esp32: use binary semaphore instead of mutex in dport tests 2019-03-11 14:40:54 +00:00
13523c95b4 freertos: check that mutex is released by owner task
Mutex type semaphores should be acquired and released by the same task.
Add a check to xQueueGenericSend for this condition.
2019-03-11 14:40:54 +00:00
ce065f1a4f Protocomm BLE: Make changes in handling BLE read/write requests
1. Remove unwanted malloc during BLE send response
2. Populate the missing parameters in the response - handle, offset, auth_req
2019-03-11 19:39:26 +05:30
ee7dd2c128 test: fix some ut case not assigned:
we didn't remove UT case file correctly for cmake build. even we use
artifact from make jobs, cmake case file will be used to assign test.
2019-03-11 09:44:47 +00:00
4a575d5449 idf.py: Fix Windows issue if project and IDF are on different drives
Closes https://github.com/espressif/esp-idf/issues/2753
2019-03-11 04:31:13 +00:00
4fc14e8eb6 vfs: Adds semihosting VFS driver 2019-03-08 15:08:10 +03:00
8d62b0d173 ota example: Mention the certificate needs CN set correctly 2019-03-08 18:32:55 +11:00
673441aba0 confgen: Fix bug with JSON metadata conditional range generation
When generating JSON metadata for ranges where there are conditional ranges (ie different allowed range
depending on another config setting), the JSON metadata would always have the last named range as
the expression was not evaluated properly.

Thanks to ulfalizer on GitHub for pointing this out.

Closes https://github.com/espressif/esp-idf/issues/2195
2019-03-01 15:38:23 +11:00
b812520b19 spi_master: add support for variable dummy length in a same device
Resolves https://github.com/espressif/esp-idf/issues/2741
2019-02-27 02:13:33 +08:00
2dc3c61114 test: add unit test for spi sio mode 2019-01-30 20:57:26 +08:00
305354d0a2 test: change spi test host to macros 2019-01-30 20:57:25 +08:00
61839fc4a5 esp-idf | revise app_trace EN version 2019-01-30 11:39:23 +08:00
fb2ebb19c6 translate app_trace to zh_CN 2019-01-30 11:35:15 +08:00
bf35ef1ce7 esp_partition: disable encrypted reads/writes if flash encryption is disabled
Saves 400 bytes of IRAM.
2019-01-10 21:51:09 +08:00
5356 changed files with 539907 additions and 155120 deletions

20
.flake8
View File

@ -140,26 +140,26 @@ exclude =
.git,
__pycache__,
# submodules
components/bootloader/subproject/components/micro-ecc/micro-ecc,
components/esptool_py/esptool,
components/micro-ecc/micro-ecc,
components/nghttp/nghttp2,
components/libsodium/libsodium,
components/json/cJSON,
components/mbedtls/mbedtls,
components/expat/expat,
components/json/cJSON,
components/libsodium/libsodium,
components/mbedtls/mbedtls,
components/nghttp/nghttp2,
components/bt/host/nimble/nimble,
components/unity/unity,
examples/build_system/cmake/import_lib/main/lib/tinyxml2
examples/build_system/cmake/import_lib/main/lib/tinyxml2,
# other third-party libraries
tools/kconfig_new/kconfiglib.py,
tools/kconfig_new/menuconfig.py,
# autogenerated scripts
components/protocomm/python/constants_pb2.py,
components/protocomm/python/sec0_pb2.py,
components/protocomm/python/sec1_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/custom_config/components/custom_provisioning/python/custom_config_pb2.py,
# temporary list (should be empty)
components/nvs_flash/nvs_partition_generator/nvs_partition_gen.py,
tools/esp_app_trace/pylibelf,
tools/mass_mfg/mfg_gen.py,

92
.github/ISSUE_TEMPLATE/bug_report.md vendored Normal file
View File

@ -0,0 +1,92 @@
---
name: Bug report
about: ESP-IDF crashes, produces incorrect output, or has incorrect behavior
title: ''
labels: ''
assignees: ''
---
----------------------------- Delete below -----------------------------
**Reminder: If your issue is a general question, starts similar to "How do I..", or is related to 3rd party development kits/libs, please discuss this on our community forum at https://esp32.com instead.**
INSTRUCTIONS
============
Before submitting a new issue, please follow the checklist and try to find the answer.
- [ ] I have read the documentation [ESP-IDF Programming Guide](https://docs.espressif.com/projects/esp-idf/en/latest/) and the issue is not addressed there.
- [ ] I have updated my IDF branch (master or release) to the latest version and checked that the issue is present there.
- [ ] I have searched the issue tracker for a similar issue and not found a similar issue.
If the issue cannot be solved after the steps before, please follow these instructions so we can get the needed information to help you in a quick and effective fashion.
1. Fill in all the fields under **Environment** marked with [ ] by picking the correct option for you in each case and deleting the others.
2. Describe your problem.
3. Include [debug logs from the "monitor" tool](https://docs.espressif.com/projects/esp-idf/en/latest/get-started/idf-monitor.html#automatically-decoding-addresses), or [coredumps](https://docs.espressif.com/projects/esp-idf/en/latest/api-guides/core_dump.html).
4. Providing as much information as possible under **Other items if possible** will help us locate and fix the problem.
5. Use [Markdown](https://guides.github.com/features/mastering-markdown/) (see formatting buttons above) and the Preview tab to check what the issue will look like.
6. Delete these instructions from the above to the below marker lines before submitting this issue.
**IMPORTANT: If you do not follow these instructions and provide the necessary details, your issue may not be resolved.**
----------------------------- Delete above -----------------------------
## Environment
- Development Kit: [ESP32-Wrover-Kit|ESP32-DevKitC|ESP32-PICO-Kit|ESP32-LyraT|ESP32-LyraTD-MSC|none]
- Kit version (for WroverKit/PicoKit/DevKitC): [v1|v2|v3|v4]
- Module or chip used: [ESP32-WROOM-32|ESP32-WROOM-32D|ESP32-WROOM-32U|ESP32-WROVER|ESP32-WROVER-I|ESP32-WROVER-B|ESP32-WROVER-IB|ESP32-SOLO-1|ESP32-PICO-D4|ESP32]
- IDF version (run ``git describe --tags`` to find it):
// v3.2-dev-1148-g96cd3b75c
- Build System: [Make|CMake|idf.py]
- Compiler version (run ``xtensa-esp32-elf-gcc --version`` to find it):
// 1.22.0-80-g6c4433a
- Operating System: [Windows|Linux|macOS]
- (Windows only) environment type: [MSYS2 mingw32|ESP Command Prompt|Plain Command Prompt|PowerShell].
- Using an IDE?: [No|Yes (please give details)]
- Power Supply: [USB|external 5V|external 3.3V|Battery]
## Problem Description
//Detailed problem description goes here.
### Expected Behavior
### Actual Behavior
### Steps to reproduce
1. step1
2. ...
// If possible, attach a picture of your setup/wiring here.
### Code to reproduce this issue
```cpp
// the code should be wrapped in the ```cpp tag so that it will be displayed better.
#include "esp_log.h"
void app_main()
{
}
```
// If your code is longer than 30 lines, [GIST](https://gist.github.com) is preferred.
## Debug Logs
```
Debug log goes here, should contain the backtrace, as well as the reset source if it is a crash.
Please copy the plain text here for us to search the error log. Or attach the complete logs but leave the main part here if the log is *too* long.
```
## Other items if possible
- [ ] sdkconfig file (attach the sdkconfig file from your project folder)
- [ ] elf file in the ``build`` folder (**note this may contain all the code details and symbols of your project.**)
- [ ] coredump (This provides stacks of tasks.)

16
.github/ISSUE_TEMPLATE/config.yml vendored Normal file
View File

@ -0,0 +1,16 @@
blank_issues_enabled: false
contact_links:
- name: ESP-IDF Programming Guide
url: https://docs.espressif.com/projects/esp-idf/en/latest/
about: Documentation for configuring and using ESP-IDF
- name: Espressif documentation page
url: https://www.espressif.com/en/support/download/documents
about: Hardware documentation (datasheets, Technical Reference Manual, etc)
- name: Forum
url: https://esp32.com
about: For questions about using ESP-IDF and/or ESP32 series chips. Please submit all questions starting "How do I..." here.
- name: Hardware-related services
url: https://www.espressif.com/en/products/hardware-services
about: Espressif service providing hardware design and certification support

View File

@ -0,0 +1,26 @@
---
name: Feature request
about: Suggest an idea for ESP-IDF
title: ''
labels: 'Type: Feature Request'
assignees: ''
---
**Is your feature request related to a problem? Please describe.**
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
**Describe the solution you'd like**
A clear and concise description of what you want to happen.
**Describe alternatives you've considered**
A clear and concise description of any alternative solutions or features you've considered.
Please give as many details as you can. Include suggestions for useful APIs or interfaces if relevant.
**Additional context**
Add any other context or screenshots about the feature request here.

17
.github/main.workflow vendored
View File

@ -1,17 +0,0 @@
workflow "Sync issues to JIRA" {
on = "issues"
resolves = ["Sync to JIRA"]
}
workflow "Sync issue comments to JIRA" {
on = "issue_comment"
resolves = ["Sync to JIRA"]
}
action "Sync to JIRA" {
uses = "espressif/github-actions/sync_issues_to_jira@master"
secrets = ["GITHUB_TOKEN", "JIRA_URL", "JIRA_USER", "JIRA_PASS"]
env = {
JIRA_PROJECT = "IDFGH"
}
}

19
.github/workflows/issue_comment.yml vendored Normal file
View File

@ -0,0 +1,19 @@
name: Sync issue comments to JIRA
# This workflow will be triggered when new issue comment is created (including PR comments)
on: issue_comment
jobs:
sync_issue_comments_to_jira:
name: Sync Issue Comments to Jira
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@master
- name: Sync issue comments to JIRA
uses: espressif/github-actions/sync_issues_to_jira@master
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
JIRA_PASS: ${{ secrets.JIRA_PASS }}
JIRA_PROJECT: IDFGH
JIRA_URL: ${{ secrets.JIRA_URL }}
JIRA_USER: ${{ secrets.JIRA_USER }}

19
.github/workflows/new_issues.yml vendored Normal file
View File

@ -0,0 +1,19 @@
name: Sync issues to Jira
# This workflow will be triggered when a new issue is opened
on: issues
jobs:
sync_issues_to_jira:
name: Sync issues to Jira
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@master
- name: Sync GitHub issues to Jira project
uses: espressif/github-actions/sync_issues_to_jira@master
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
JIRA_PASS: ${{ secrets.JIRA_PASS }}
JIRA_PROJECT: IDFGH
JIRA_URL: ${{ secrets.JIRA_URL }}
JIRA_USER: ${{ secrets.JIRA_USER }}

24
.github/workflows/new_prs.yml vendored Normal file
View File

@ -0,0 +1,24 @@
name: Sync remain PRs to Jira
# This workflow will be triggered every hour, to sync remaining PRs (i.e. PRs with zero comment) to Jira project
# Note that, PRs can also get synced when new PR comment is created
on:
schedule:
- cron: "0 * * * *"
jobs:
sync_prs_to_jira:
name: Sync PRs to Jira
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@master
- name: Sync PRs to Jira project
uses: espressif/github-actions/sync_issues_to_jira@master
with:
cron_job: true
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
JIRA_PASS: ${{ secrets.JIRA_PASS }}
JIRA_PROJECT: IDFGH
JIRA_URL: ${{ secrets.JIRA_URL }}
JIRA_USER: ${{ secrets.JIRA_USER }}

32
.github/workflows/python_lint.yml vendored Normal file
View File

@ -0,0 +1,32 @@
name: Python CI
# This workflow will be triggered when a PR modifies some python relevant files
on:
pull_request:
paths:
- "**.py"
- "requirements.txt"
jobs:
python_lint:
name: python lint
runs-on: ubuntu-latest
strategy:
matrix:
python-version: [2.7, 3.5, 3.6, 3.7]
steps:
- name: Checkout
uses: actions/checkout@master
- name: Set up Python environment
uses: actions/setup-python@master
with:
python-version: ${{ matrix.python-version }}
- name: Install dependencies
run: |
pip install --upgrade pip
pip install -r requirements.txt
- name: Lint with flake8
run: |
pip install flake8
flake8 . --config=.flake8

30
.gitignore vendored
View File

@ -36,6 +36,10 @@ docs/*/xml_in/
docs/*/man/
docs/doxygen_sqlite3.db
# Downloaded font files
docs/_static/DejaVuSans.ttf
docs/_static/NotoSansSC-Regular.otf
# Unit test app files
tools/unit-test-app/sdkconfig
tools/unit-test-app/sdkconfig.old
@ -48,29 +52,31 @@ tools/test_idf_monitor/outputs
TEST_LOGS
# AWS IoT Examples require device-specific certs/keys
examples/protocols/aws_iot/*/main/certs/*.pem.*
# gcov coverage reports
*.gcda
*.gcno
coverage.info
coverage_report/
# Windows tools installer build
tools/windows/tool_setup/.*
tools/windows/tool_setup/input
tools/windows/tool_setup/dl
tools/windows/tool_setup/keys
tools/windows/tool_setup/Output
test_multi_heap_host
# VS Code Settings
.vscode/
# Results for the checking of the Python coding style
# VIM files
*.swp
*.swo
# Clion IDE CMake build & config
.idea/
cmake-build-*/
# Results for the checking of the Python coding style and static analysis
.mypy_cache
flake8_output.txt
# ESP-IDF library
# ESP-IDF default build directory name
build
# lock files for examples and components
dependencies.lock

File diff suppressed because it is too large Load Diff

64
.gitmodules vendored
View File

@ -1,71 +1,81 @@
[submodule "components/esp32/lib"]
path = components/esp32/lib
url = https://github.com/espressif/esp32-wifi-lib.git
#
# All the relative URL paths are intended to be GitHub ones
# For Espressif's public projects please use '../../espressif/proj', not a '../proj'
#
[submodule "components/esptool_py/esptool"]
path = components/esptool_py/esptool
url = https://github.com/espressif/esptool.git
url = ../../espressif/esptool.git
[submodule "components/bt/lib"]
path = components/bt/lib
url = https://github.com/espressif/esp32-bt-lib.git
[submodule "components/bt/controller/lib"]
path = components/bt/controller/lib
url = ../../espressif/esp32-bt-lib.git
[submodule "components/micro-ecc/micro-ecc"]
path = components/micro-ecc/micro-ecc
url = https://github.com/kmackay/micro-ecc.git
[submodule "components/bootloader/subproject/components/micro-ecc/micro-ecc"]
path = components/bootloader/subproject/components/micro-ecc/micro-ecc
url = ../../kmackay/micro-ecc.git
[submodule "components/coap/libcoap"]
path = components/coap/libcoap
url = https://github.com/obgm/libcoap.git
[submodule "components/aws_iot/aws-iot-device-sdk-embedded-C"]
path = components/aws_iot/aws-iot-device-sdk-embedded-C
url = https://github.com/espressif/aws-iot-device-sdk-embedded-C.git
url = ../../obgm/libcoap.git
[submodule "components/nghttp/nghttp2"]
path = components/nghttp/nghttp2
url = https://github.com/nghttp2/nghttp2.git
url = ../../nghttp2/nghttp2.git
[submodule "components/libsodium/libsodium"]
path = components/libsodium/libsodium
url = https://github.com/jedisct1/libsodium.git
url = ../../jedisct1/libsodium.git
[submodule "components/spiffs/spiffs"]
path = components/spiffs/spiffs
url = https://github.com/pellepl/spiffs.git
url = ../../pellepl/spiffs.git
[submodule "components/json/cJSON"]
path = components/json/cJSON
url = https://github.com/DaveGamble/cJSON.git
url = ../../DaveGamble/cJSON.git
[submodule "components/mbedtls/mbedtls"]
path = components/mbedtls/mbedtls
url = https://github.com/espressif/mbedtls.git
url = ../../espressif/mbedtls.git
[submodule "components/asio/asio"]
path = components/asio/asio
url = https://github.com/espressif/asio.git
url = ../../espressif/asio.git
[submodule "components/expat/expat"]
path = components/expat/expat
url = https://github.com/libexpat/libexpat.git
url = ../../libexpat/libexpat.git
[submodule "components/lwip/lwip"]
path = components/lwip/lwip
url = https://github.com/espressif/esp-lwip.git
url = ../../espressif/esp-lwip.git
[submodule "components/mqtt/esp-mqtt"]
path = components/mqtt/esp-mqtt
url = https://github.com/espressif/esp-mqtt.git
url = ../../espressif/esp-mqtt.git
[submodule "components/protobuf-c/protobuf-c"]
path = components/protobuf-c/protobuf-c
url = https://github.com/protobuf-c/protobuf-c
url = ../../protobuf-c/protobuf-c.git
[submodule "components/unity/unity"]
path = components/unity/unity
url = https://github.com/ThrowTheSwitch/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 = https://github.com/leethomason/tinyxml2
url = ../../leethomason/tinyxml2.git
[submodule "components/bt/host/nimble/nimble"]
path = components/bt/host/nimble/nimble
url = ../../espressif/esp-nimble.git
[submodule "components/cbor/tinycbor"]
path = components/cbor/tinycbor
url = ../../intel/tinycbor.git
[submodule "components/esp_wifi/lib"]
path = components/esp_wifi/lib
url = ../../espressif/esp32-wifi-lib.git

21
.readthedocs.yml Normal file
View File

@ -0,0 +1,21 @@
# .readthedocs.yml
# Read the Docs configuration file
# See https://docs.readthedocs.io/en/stable/config-file/v2.html for details
# Required
version: 2
# Optionally build your docs in additional formats such as PDF and ePub
formats:
- pdf
# Optionally set the version of Python and requirements required to build your docs
python:
version: 2.7
install:
- requirements: docs/requirements.txt
# We need to list all the submodules included in documenation build by DOxygen
submodules:
include:
- components/mqtt/esp-mqtt

View File

@ -1,7 +0,0 @@
language: python
sudo: false
python:
- "3.4"
script:
- pip install flake8
- travis_wait 20 python -m flake8 --config=.flake8 .

View File

@ -1,161 +1,117 @@
cmake_minimum_required(VERSION 3.5)
project(esp-idf C CXX ASM)
if(NOT IDF_PATH)
set(IDF_PATH ${CMAKE_CURRENT_LIST_DIR})
if(CMAKE_CURRENT_LIST_DIR STREQUAL CMAKE_SOURCE_DIR)
message(FATAL_ERROR "Current directory '${CMAKE_CURRENT_LIST_DIR}' is not buildable. "
"Change directories to one of the example projects in '${CMAKE_CURRENT_LIST_DIR}/examples' and try "
"again.")
endif()
include(tools/cmake/idf_functions.cmake)
unset(compile_options)
unset(c_compile_options)
unset(cxx_compile_options)
unset(compile_definitions)
unset(link_options)
#
# Set variables that control the build configuration and the build itself
#
idf_set_variables()
# Add the following build specifications here, since these seem to be dependent
# on config values on the root Kconfig.
kconfig_set_variables()
#
# Generate a component dependencies file, enumerating components to be included in the build
# as well as their dependencies.
#
execute_process(COMMAND "${CMAKE_COMMAND}"
-D "COMPONENTS=${IDF_COMPONENTS}"
-D "COMPONENT_REQUIRES_COMMON=${IDF_COMPONENT_REQUIRES_COMMON}"
-D "EXCLUDE_COMPONENTS=${IDF_EXCLUDE_COMPONENTS}"
-D "TEST_COMPONENTS=${IDF_TEST_COMPONENTS}"
-D "TEST_EXCLUDE_COMPONENTS=${IDF_TEST_EXCLUDE_COMPONENTS}"
-D "BUILD_TESTS=${IDF_BUILD_TESTS}"
-D "DEPENDENCIES_FILE=${CMAKE_BINARY_DIR}/component_depends.cmake"
-D "COMPONENT_DIRS=${IDF_COMPONENT_DIRS}"
-D "BOOTLOADER_BUILD=${BOOTLOADER_BUILD}"
-D "IDF_TARGET=${IDF_TARGET}"
-D "IDF_PATH=${IDF_PATH}"
-D "DEBUG=${DEBUG}"
-P "${IDF_PATH}/tools/cmake/scripts/expand_requirements.cmake"
WORKING_DIRECTORY "${PROJECT_PATH}"
RESULT_VARIABLE expand_requirements_result)
if(expand_requirements_result)
message(FATAL_ERROR "Failed to expand component requirements")
endif()
include("${CMAKE_BINARY_DIR}/component_depends.cmake")
#
# We now have the following component-related variables:
#
# IDF_COMPONENTS is the list of initial components set by the user
# (or empty to include all components in the build).
# BUILD_COMPONENTS is the list of components to include in the build.
# BUILD_COMPONENT_PATHS is the paths to all of these components, obtained from the component dependencies file.
#
# Print the list of found components and test components
#
string(REPLACE ";" " " BUILD_COMPONENTS_SPACES "${BUILD_COMPONENTS}")
message(STATUS "Component names: ${BUILD_COMPONENTS_SPACES}")
unset(BUILD_COMPONENTS_SPACES)
message(STATUS "Component paths: ${BUILD_COMPONENT_PATHS}")
# Print list of test components
if(TESTS_ALL EQUAL 1 OR TEST_COMPONENTS)
string(REPLACE ";" " " BUILD_TEST_COMPONENTS_SPACES "${BUILD_TEST_COMPONENTS}")
message(STATUS "Test component names: ${BUILD_TEST_COMPONENTS_SPACES}")
unset(BUILD_TEST_COMPONENTS_SPACES)
message(STATUS "Test component paths: ${BUILD_TEST_COMPONENT_PATHS}")
endif()
# Generate project configuration
kconfig_process_config()
# Include sdkconfig.cmake so rest of the build knows the configuration
include(${SDKCONFIG_CMAKE})
# Verify the environment is configured correctly
idf_verify_environment()
# Check git revision (may trigger reruns of cmake)
## sets IDF_VER to IDF git revision
idf_get_git_revision()
# Check that the targets set in cache, sdkconfig, and in environment all match
idf_check_config_target()
## get PROJECT_VER
if(NOT BOOTLOADER_BUILD)
app_get_revision("${CMAKE_SOURCE_DIR}")
endif()
# Add some idf-wide definitions
idf_set_global_compile_options()
# generate compile_commands.json (needs to come after project)
set(CMAKE_EXPORT_COMPILE_COMMANDS 1)
#
# Setup variables for linker script generation
#
ldgen_set_variables()
# Include any top-level project_include.cmake files from components
foreach(component ${BUILD_COMPONENT_PATHS})
set(COMPONENT_PATH "${component}")
include_if_exists("${component}/project_include.cmake")
unset(COMPONENT_PATH)
endforeach()
#
# Add each component to the build as a library
#
foreach(COMPONENT_PATH ${BUILD_COMPONENT_PATHS})
get_filename_component(COMPONENT_NAME ${COMPONENT_PATH} NAME)
list(FIND BUILD_TEST_COMPONENT_PATHS ${COMPONENT_PATH} idx)
if(NOT idx EQUAL -1)
list(GET BUILD_TEST_COMPONENTS ${idx} test_component)
set(COMPONENT_NAME ${test_component})
if(CONFIG_COMPILER_OPTIMIZATION_SIZE)
list(APPEND compile_options "-Os")
list(APPEND compile_options "-freorder-blocks")
elseif(CONFIG_COMPILER_OPTIMIZATION_DEFAULT)
list(APPEND compile_options "-Og")
elseif(CONFIG_COMPILER_OPTIMIZATION_NONE)
list(APPEND compile_options "-O0")
elseif(CONFIG_COMPILER_OPTIMIZATION_PERF)
list(APPEND compile_options "-O2")
endif()
component_get_target(COMPONENT_TARGET ${COMPONENT_NAME})
else() # BOOTLOADER_BUILD
add_subdirectory(${COMPONENT_PATH} ${COMPONENT_NAME})
endforeach()
unset(COMPONENT_NAME)
unset(COMPONENT_PATH)
# each component should see the include directories of its requirements
#
# (we can't do this until all components are registered and targets exist in cmake, as we have
# a circular requirements graph...)
foreach(component ${BUILD_COMPONENTS})
component_get_target(component_target ${component})
if(TARGET ${component_target})
get_component_requirements(${component} deps priv_deps)
list(APPEND priv_deps ${IDF_COMPONENT_REQUIRES_COMMON})
foreach(dep ${deps})
component_get_target(dep_target ${dep})
add_component_dependencies(${component_target} ${dep_target} PUBLIC)
endforeach()
foreach(dep ${priv_deps})
component_get_target(dep_target ${dep})
add_component_dependencies(${component_target} ${dep_target} PRIVATE)
endforeach()
if(CONFIG_BOOTLOADER_COMPILER_OPTIMIZATION_SIZE)
list(APPEND compile_options "-Os")
list(APPEND compile_options "-freorder-blocks")
elseif(CONFIG_BOOTLOADER_COMPILER_OPTIMIZATION_DEBUG)
list(APPEND compile_options "-Og")
elseif(CONFIG_BOOTLOADER_COMPILER_OPTIMIZATION_NONE)
list(APPEND compile_options "-O0")
elseif(CONFIG_BOOTLOADER_COMPILER_OPTIMIZATION_PERF)
list(APPEND compile_options "-O2")
endif()
endforeach()
if(IDF_BUILD_ARTIFACTS)
# Write project description JSON file
make_json_list("${BUILD_COMPONENTS}" build_components_json)
make_json_list("${BUILD_COMPONENT_PATHS}" build_component_paths_json)
configure_file("${IDF_PATH}/tools/cmake/project_description.json.in"
"${IDF_BUILD_ARTIFACTS_DIR}/project_description.json")
unset(build_components_json)
unset(build_component_paths_json)
endif()
set(BUILD_COMPONENTS ${BUILD_COMPONENTS} PARENT_SCOPE)
if(CONFIG_COMPILER_CXX_EXCEPTIONS)
list(APPEND cxx_compile_options "-fexceptions")
else()
list(APPEND cxx_compile_options "-fno-exceptions")
endif()
ldgen_add_dependencies()
if(CONFIG_COMPILER_CXX_RTTI)
list(APPEND cxx_compile_options "-frtti")
else()
list(APPEND cxx_compile_options "-fno-rtti")
list(APPEND link_options "-fno-rtti") # used to invoke correct multilib variant (no-rtti) during linking
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(CONFIG_COMPILER_OPTIMIZATION_ASSERTIONS_DISABLE)
list(APPEND compile_definitions "-DNDEBUG")
endif()
if(CONFIG_COMPILER_STACK_CHECK_MODE_NORM)
list(APPEND compile_options "-fstack-protector")
elseif(CONFIG_COMPILER_STACK_CHECK_MODE_STRONG)
list(APPEND compile_options "-fstack-protector-strong")
elseif(CONFIG_COMPILER_STACK_CHECK_MODE_ALL)
list(APPEND compile_options "-fstack-protector-all")
endif()
list(APPEND link_options "-fno-lto")
idf_build_set_property(COMPILE_OPTIONS "${compile_options}" APPEND)
idf_build_set_property(C_COMPILE_OPTIONS "${c_compile_options}" APPEND)
idf_build_set_property(CXX_COMPILE_OPTIONS "${cxx_compile_options}" APPEND)
idf_build_set_property(COMPILE_DEFINITIONS "${compile_definitions}" APPEND)
idf_build_set_property(LINK_OPTIONS "${link_options}" APPEND)
idf_build_get_property(build_component_targets __BUILD_COMPONENT_TARGETS)
# Add each component as a subdirectory, processing each component's CMakeLists.txt
foreach(component_target ${build_component_targets})
__component_get_property(dir ${component_target} COMPONENT_DIR)
__component_get_property(_name ${component_target} COMPONENT_NAME)
__component_get_property(prefix ${component_target} __PREFIX)
__component_get_property(alias ${component_target} COMPONENT_ALIAS)
set(COMPONENT_NAME ${_name})
set(COMPONENT_DIR ${dir})
set(COMPONENT_ALIAS ${alias})
set(COMPONENT_PATH ${dir}) # for backward compatibility only, COMPONENT_DIR is preferred
idf_build_get_property(build_prefix __PREFIX)
set(__idf_component_context 1)
if(NOT prefix STREQUAL build_prefix)
add_subdirectory(${dir} ${prefix}_${_name})
else()
add_subdirectory(${dir} ${_name})
endif()
set(__idf_component_context 0)
endforeach()

246
Kconfig
View File

@ -8,11 +8,9 @@ mainmenu "Espressif IoT Development Framework Configuration"
bool
option env="IDF_CMAKE"
config IDF_TARGET_ENV
# A proxy to get environment variable $IDF_TARGET
string
option env="IDF_TARGET"
config IDF_ENV_FPGA
# This option is for internal use only
bool
config IDF_TARGET
# This option records the IDF target when sdkconfig is generated the first time.
@ -20,31 +18,45 @@ mainmenu "Espressif IoT Development Framework Configuration"
# the build system is responsible for detecting the mismatch between
# CONFIG_IDF_TARGET and $IDF_TARGET.
string
default "IDF_TARGET_NOT_SET" if IDF_TARGET_ENV=""
default IDF_TARGET_ENV
default "$IDF_TARGET"
config IDF_TARGET_ESP32
bool
default "y" if IDF_TARGET="esp32"
config IDF_TARGET_ESP32S2BETA
bool
default "y" if IDF_TARGET="esp32s2beta"
select FREERTOS_UNICORE
config IDF_FIRMWARE_CHIP_ID
hex
default 0x0000 if IDF_TARGET_ESP32
# note: S2 beta uses Chip ID 0 still, S2 will use 0x0002
default 0x0000 if IDF_TARGET_ESP32S2BETA
default 0xFFFF
menu "SDK tool configuration"
config TOOLPREFIX
config SDK_TOOLPREFIX
string "Compiler toolchain path/prefix"
default "xtensa-esp32-elf-"
default "xtensa-esp32-elf-" if IDF_TARGET_ESP32
default "xtensa-esp32s2-elf-" if IDF_TARGET_ESP32S2BETA
help
The prefix/path that is used to call the toolchain. The default setting assumes
a crosstool-ng gcc setup that is in your PATH.
config PYTHON
string "Python 2 interpreter"
config SDK_PYTHON
string "Python interpreter"
depends on !IDF_CMAKE
default "python"
help
The executable name/path that is used to run python. On some systems Python 2.x
may need to be invoked as python2.
The executable name/path that is used to run python.
(Note: This option is used with the GNU Make build system only, not idf.py
or CMake-based builds.)
(Note: This option is used with the legacy GNU Make build system only.)
config MAKE_WARN_UNDEFINED_VARIABLES
config SDK_MAKE_WARN_UNDEFINED_VARIABLES
bool "'make' warns on undefined variables"
depends on !IDF_CMAKE
default "y"
help
Adds --warn-undefined-variables to MAKEFLAGS. This causes make to
@ -54,37 +66,146 @@ mainmenu "Espressif IoT Development Framework Configuration"
or otherwise missing, but it can be unwanted if you have Makefiles which
depend on undefined variables expanding to an empty string.
(Note: this option is used with the legacy GNU Make build system only.)
config SDK_TOOLCHAIN_SUPPORTS_TIME_WIDE_64_BITS
bool "Toolchain supports time_t wide 64-bits"
default n
help
Enable this option in case you have a custom toolchain which supports time_t wide 64-bits.
This option checks time_t is 64-bits and disables ROM time functions
to use the time functions from the toolchain instead.
This option allows resolving the Y2K38 problem.
See "Setup Linux Toolchain from Scratch" to build
a custom toolchain which supports 64-bits time_t.
Note: ESP-IDF does not currently come with any pre-compiled toolchain
that supports 64-bit wide time_t.
This will change in a future major release,
but currently 64-bit time_t requires a custom built toolchain.
endmenu # SDK tool configuration
source "$COMPONENT_KCONFIGS_PROJBUILD"
menu "Build type"
choice APP_BUILD_TYPE
prompt "Application build type"
default APP_BUILD_TYPE_APP_2NDBOOT
help
Select the way the application is built.
By default, the application is built as a binary file in a format compatible with
the ESP32 bootloader. In addition to this application, 2nd stage bootloader is
also built. Application and bootloader binaries can be written into flash and
loaded/executed from there.
Another option, useful for only very small and limited applications, is to only link
the .elf file of the application, such that it can be loaded directly into RAM over
JTAG. Note that since IRAM and DRAM sizes are very limited, it is not possible to
build any complex application this way. However for kinds of testing and debugging,
this option may provide faster iterations, since the application does not need to be
written into flash.
Note that at the moment, ESP-IDF does not contain all the startup code required to
initialize the CPUs and ROM memory (data/bss). Therefore it is necessary to execute
a bit of ROM code prior to executing the application. A gdbinit file may look as follows:
# Connect to a running instance of OpenOCD
target remote :3333
# Reset and halt the target
mon reset halt
# Run to a specific point in ROM code,
# where most of initialization is complete.
thb *0x40007901
c
# Load the application into RAM
load
# Run till app_main
tb app_main
c
Execute this gdbinit file as follows:
xtensa-esp32-elf-gdb build/app-name.elf -x gdbinit
Recommended sdkconfig.defaults for building loadable ELF files is as follows.
CONFIG_APP_BUILD_TYPE_ELF_RAM is required, other options help reduce application
memory footprint.
CONFIG_APP_BUILD_TYPE_ELF_RAM=y
CONFIG_VFS_SUPPORT_TERMIOS=
CONFIG_NEWLIB_NANO_FORMAT=y
CONFIG_ESP32_PANIC_PRINT_HALT=y
CONFIG_ESP32_DEBUG_STUBS_ENABLE=
CONFIG_ESP_ERR_TO_NAME_LOOKUP=
config APP_BUILD_TYPE_APP_2NDBOOT
bool
prompt "Default (binary application + 2nd stage bootloader)"
select APP_BUILD_GENERATE_BINARIES
select APP_BUILD_BOOTLOADER
select APP_BUILD_USE_FLASH_SECTIONS
config APP_BUILD_TYPE_ELF_RAM
bool
prompt "ELF file, loadable into RAM (EXPERIMENTAL))"
endchoice # APP_BUILD_TYPE
# Hidden options, set according to the choice above
config APP_BUILD_GENERATE_BINARIES
bool # Whether to generate .bin files or not
config APP_BUILD_BOOTLOADER
bool # Whether to build the bootloader
config APP_BUILD_USE_FLASH_SECTIONS
bool # Whether to place code/data into memory-mapped flash sections
endmenu # Build type
source "$COMPONENT_KCONFIGS_PROJBUILD_SOURCE_FILE"
menu "Compiler options"
choice OPTIMIZATION_COMPILER
choice COMPILER_OPTIMIZATION
prompt "Optimization Level"
default OPTIMIZATION_LEVEL_DEBUG
default COMPILER_OPTIMIZATION_DEFAULT
help
This option sets compiler optimization level (gcc -O argument).
This option sets compiler optimization level (gcc -O argument) for the app.
- for "Release" setting, -Os flag is added to CFLAGS.
- for "Debug" setting, -Og flag is added to CFLAGS.
- The "Default" setting will add the -0g flag to CFLAGS.
- The "Size" setting will add the -0s flag to CFLAGS.
- The "Performance" setting will add the -O2 flag to CFLAGS.
- The "None" setting will add the -O0 flag to CFLAGS.
"Release" with -Os produces smaller & faster compiled code but it
may be harder to correlated code addresses to source files when debugging.
The "Size" setting cause the compiled code to be smaller and faster, but
may lead to difficulties of correlating code addresses to source file
lines when debugging.
To add custom optimization settings, set CFLAGS and/or CPPFLAGS
in project makefile, before including $(IDF_PATH)/make/project.mk. Note that
custom optimization levels may be unsupported.
The "Performance" setting causes the compiled code to be larger and faster,
but will be easier to correlated code addresses to source file lines.
config OPTIMIZATION_LEVEL_DEBUG
"None" with -O0 produces compiled code without optimization.
Note that custom optimization levels may be unsupported.
Compiler optimization for the IDF bootloader is set separately,
see the BOOTLOADER_COMPILER_OPTIMIZATION setting.
config COMPILER_OPTIMIZATION_DEFAULT
bool "Debug (-Og)"
config OPTIMIZATION_LEVEL_RELEASE
bool "Release (-Os)"
config COMPILER_OPTIMIZATION_SIZE
bool "Optimize for size (-Os)"
config COMPILER_OPTIMIZATION_PERF
bool "Optimize for performance (-O2)"
config COMPILER_OPTIMIZATION_NONE
bool "Debug without optimization (-O0)"
endchoice
choice OPTIMIZATION_ASSERTION_LEVEL
choice COMPILER_OPTIMIZATION_ASSERTION_LEVEL
prompt "Assertion level"
default OPTIMIZATION_ASSERTIONS_ENABLED
default COMPILER_OPTIMIZATION_ASSERTIONS_ENABLE
help
Assertions can be:
@ -96,20 +217,20 @@ mainmenu "Espressif IoT Development Framework Configuration"
- Disabled entirely (not recommended for most configurations.) -DNDEBUG is added
to CPPFLAGS in this case.
config OPTIMIZATION_ASSERTIONS_ENABLED
config COMPILER_OPTIMIZATION_ASSERTIONS_ENABLE
prompt "Enabled"
bool
help
Enable assertions. Assertion content and line number will be printed on failure.
config OPTIMIZATION_ASSERTIONS_SILENT
config COMPILER_OPTIMIZATION_ASSERTIONS_SILENT
prompt "Silent (saves code size)"
bool
help
Enable silent assertions. Failed assertions will abort(), user needs to
use the aborting address to find the line number with the failed assertion.
config OPTIMIZATION_ASSERTIONS_DISABLED
config COMPILER_OPTIMIZATION_ASSERTIONS_DISABLE
prompt "Disabled (sets -DNDEBUG)"
bool
help
@ -117,7 +238,7 @@ mainmenu "Espressif IoT Development Framework Configuration"
endchoice # assertions
menuconfig CXX_EXCEPTIONS
menuconfig COMPILER_CXX_EXCEPTIONS
bool "Enable C++ exceptions"
default n
help
@ -129,17 +250,25 @@ mainmenu "Espressif IoT Development Framework Configuration"
Enabling this option currently adds an additional ~500 bytes of heap overhead
when an exception is thrown in user code for the first time.
config CXX_EXCEPTIONS_EMG_POOL_SIZE
config COMPILER_CXX_EXCEPTIONS_EMG_POOL_SIZE
int "Emergency Pool Size"
default 0
depends on CXX_EXCEPTIONS
depends on COMPILER_CXX_EXCEPTIONS
help
Size (in bytes) of the emergency memory pool for C++ exceptions. This pool will be used to allocate
memory for thrown exceptions when there is not enough memory on the heap.
choice STACK_CHECK_MODE
config COMPILER_CXX_RTTI
bool "Enable C++ run-time type info (RTTI)"
default n
help
Enabling this option compiles all C++ files with RTTI support enabled.
This increases binary size (typically by tens of kB) but allows using
dynamic_cast conversion and typeid operator.
choice COMPILER_STACK_CHECK_MODE
prompt "Stack smashing protection mode"
default STACK_CHECK_NONE
default COMPILER_STACK_CHECK_MODE_NONE
help
Stack smashing protection mode. Emit extra code to check for buffer overflows, such as stack
smashing attacks. This is done by adding a guard variable to functions with vulnerable objects.
@ -162,23 +291,23 @@ mainmenu "Espressif IoT Development Framework Configuration"
- coverage: NORMAL < STRONG < OVERALL
config STACK_CHECK_NONE
config COMPILER_STACK_CHECK_MODE_NONE
bool "None"
config STACK_CHECK_NORM
config COMPILER_STACK_CHECK_MODE_NORM
bool "Normal"
config STACK_CHECK_STRONG
config COMPILER_STACK_CHECK_MODE_STRONG
bool "Strong"
config STACK_CHECK_ALL
config COMPILER_STACK_CHECK_MODE_ALL
bool "Overall"
endchoice
config STACK_CHECK
config COMPILER_STACK_CHECK
bool
default !STACK_CHECK_NONE
default !COMPILER_STACK_CHECK_MODE_NONE
help
Stack smashing protection.
config WARN_WRITE_STRINGS
config COMPILER_WARN_WRITE_STRINGS
bool "Enable -Wwrite-strings warning flag"
default "n"
help
@ -192,7 +321,7 @@ mainmenu "Espressif IoT Development Framework Configuration"
For C++, this warns about the deprecated conversion from string
literals to ``char *``.
config DISABLE_GCC8_WARNINGS
config COMPILER_DISABLE_GCC8_WARNINGS
bool "Disable new warnings introduced in GCC 6 - 8"
default "n"
help
@ -203,5 +332,24 @@ mainmenu "Espressif IoT Development Framework Configuration"
endmenu # Compiler Options
menu "Component config"
source "$COMPONENT_KCONFIGS"
source "$COMPONENT_KCONFIGS_SOURCE_FILE"
endmenu
menu "Compatibility options"
config LEGACY_INCLUDE_COMMON_HEADERS
bool "Include headers across components as before IDF v4.0"
default n
help
Soc, esp32, and driver components, the most common
components. Some header of these components are included
implicitly by headers of other components before IDF v4.0.
It's not required for high-level components, but still
included through long header chain everywhere.
This is harmful to the modularity. So it's changed in IDF
v4.0.
You can still include these headers in a legacy way until it
is totally deprecated by enable this option.
endmenu #Compatibility options

View File

@ -1,5 +1,7 @@
# Espressif IoT Development Framework
* [中文版](./README_CN.md)
[![Documentation Status](https://readthedocs.com/projects/espressif-esp-idf/badge/?version=latest)](https://docs.espressif.com/projects/esp-idf/en/latest/?badge=latest)
ESP-IDF is the official development framework for the [ESP32](https://espressif.com/en/products/hardware/esp32/overview) chip.
@ -13,6 +15,14 @@ See setup guides for detailed instructions to set up the ESP-IDF:
* [Getting Started Guide for the stable ESP-IDF version](https://docs.espressif.com/projects/esp-idf/en/stable/get-started/)
* [Getting Started Guide for the latest (master branch) ESP-IDF version](https://docs.espressif.com/projects/esp-idf/en/latest/get-started/)
### Non-GitHub forks
ESP-IDF uses relative locations as its submodules URLs ([.gitmodules](.gitmodules)). So they link to GitHub.
If ESP-IDF is forked to a Git repository which is not on GitHub, you will need to run the script
[tools/set-submodules-to-github.sh](tools/set-submodules-to-github.sh) after git clone.
The script sets absolute URLs for all submodules, allowing `git submodule update --init --recursive` to complete.
If cloning ESP-IDF from GitHub, this step is not needed.
## Finding a Project
As well as the [esp-idf-template](https://github.com/espressif/esp-idf-template) project mentioned in Getting Started, ESP-IDF comes with some example projects in the [examples](examples) directory.
@ -25,9 +35,17 @@ To start your own project based on an example, copy the example project director
See the Getting Started guide links above for a detailed setup guide. This is a quick reference for common commands when working with ESP-IDF projects:
## Setup Build Environment
(See Getting Started guide for a full list of required steps with details.)
* Install host build dependencies mentioned in Getting Started guide.
* Add `tools/` directory to the PATH
* Run `python -m pip install -r requirements.txt` to install Python dependencies
## Configuring the Project
`make menuconfig`
`idf.py menuconfig`
* Opens a text-based configuration menu for the project.
* Use up & down arrow keys to navigate the menu.
@ -41,76 +59,48 @@ Once done configuring, press Escape multiple times to exit and say "Yes" to save
## Compiling the Project
`make -j4 all`
`idf.py build`
... will compile app, bootloader and generate a partition table based on the config.
NOTE: The `-j4` option causes `make` to run 4 parallel jobs. This is much faster than the default single job. The recommended number to pass to this option is `-j(number of CPUs + 1)`.
## Flashing the Project
When the build finishes, it will print a command line to use esptool.py to flash the chip. However you can also do this automatically by running:
`make -j4 flash`
`idf.py -p PORT flash`
This will flash the entire project (app, bootloader and partition table) to a new chip. The settings for serial port flashing can be configured with `make menuconfig`.
Replace PORT with the name of your serial port (like `COM3` on Windows, `/dev/ttyUSB0` on Linux, or `/dev/cu.usbserial-X` on MacOS. If the `-p` option is left out, `idf.py flash` will try to flash the first available serial port.
You don't need to run `make all` before running `make flash`, `make flash` will automatically rebuild anything which needs it.
This will flash the entire project (app, bootloader and partition table) to a new chip. The settings for serial port flashing can be configured with `idf.py menuconfig`.
You don't need to run `idf.py build` before running `idf.py flash`, `idf.py flash` will automatically rebuild anything which needs it.
## Viewing Serial Output
The `make monitor` target uses the [idf_monitor tool](https://docs.espressif.com/projects/esp-idf/en/latest/get-started/idf-monitor.html) to display serial output from the ESP32. idf_monitor also has a range of features to decode crash output and interact with the device. [Check the documentation page for details](https://docs.espressif.com/projects/esp-idf/en/latest/get-started/idf-monitor.html).
The `idf.py monitor` target uses the [idf_monitor tool](https://docs.espressif.com/projects/esp-idf/en/latest/get-started/idf-monitor.html) to display serial output from the ESP32. idf_monitor also has a range of features to decode crash output and interact with the device. [Check the documentation page for details](https://docs.espressif.com/projects/esp-idf/en/latest/get-started/idf-monitor.html).
Exit the monitor by typing Ctrl-].
To build, flash and monitor output in one pass, you can run:
`make -j4 flash monitor`
`idf.py flash monitor`
## Compiling & Flashing Only the App
After the initial flash, you may just want to build and flash just your app, not the bootloader and partition table:
* `make app` - build just the app.
* `make app-flash` - flash just the app.
* `idf.py app` - build just the app.
* `idf.py app-flash` - flash just the app.
`make app-flash` will automatically rebuild the app if any source files have changed.
`idf.py app-flash` will automatically rebuild the app if any source files have changed.
(In normal development there's no downside to reflashing the bootloader and partition table each time, if they haven't changed.)
## Parallel Builds
ESP-IDF supports compiling multiple files in parallel, so all of the above commands can be run as `make -jN` where `N` is the number of parallel make processes to run (generally N should be equal to the number of CPU cores in your system, plus one.)
Multiple make functions can be combined into one. For example: to build the app & bootloader using 5 jobs in parallel, then flash everything, and then display serial output from the ESP32 run:
```
make -j5 flash monitor
```
## The Partition Table
Once you've compiled your project, the "build" directory will contain a binary file with a name like "my_app.bin". This is an ESP32 image binary that can be loaded by the bootloader.
A single ESP32's flash can contain multiple apps, as well as many different kinds of data (calibration data, filesystems, parameter storage, etc). For this reason a partition table is flashed to offset 0x8000 in the flash.
Each entry in the partition table has a name (label), type (app, data, or something else), subtype and the offset in flash where the partition is loaded.
The simplest way to use the partition table is to `make menuconfig` and choose one of the simple predefined partition tables:
* "Single factory app, no OTA"
* "Factory app, two OTA definitions"
In both cases the factory app is flashed at offset 0x10000. If you `make partition_table` then it will print a summary of the partition table.
For more details about partition tables and how to create custom variations, view the [`docs/en/api-guides/partition-tables.rst`](docs/en/api-guides/partition-tables.rst) file.
## Erasing Flash
The `make flash` target does not erase the entire flash contents. However it is sometimes useful to set the device back to a totally erased state, particularly when making partition table changes or OTA app updates. To erase the entire flash, run `make erase_flash`.
The `idf.py flash` target does not erase the entire flash contents. However it is sometimes useful to set the device back to a totally erased state, particularly when making partition table changes or OTA app updates. To erase the entire flash, run `idf.py erase_flash`.
This can be combined with other targets, ie `make erase_flash flash` will erase everything and then re-flash the new app, bootloader and partition table.
This can be combined with other targets, ie `idf.py -p PORT erase_flash flash` will erase everything and then re-flash the new app, bootloader and partition table.
# Resources

112
README_CN.md Normal file
View File

@ -0,0 +1,112 @@
# Espressif 物联网开发框架
* [English Version](./README.md)
[![Documentation Status](https://readthedocs.com/projects/espressif-esp-idf/badge/?version=latest)](https://docs.espressif.com/projects/esp-idf/zh_CN/latest/?badge=latest)
ESP-IDF 是由乐鑫官方推出的针对 [ESP32](https://espressif.com/en/products/hardware/esp32/overview) 系列芯片的开发框架。
# 使用 ESP-IDF 进行开发
## 搭建 ESP-IDF 开发环境
请参阅如下指南搭建 ESP-IDF 的开发环境:
* [ESP-IDF 稳定版本的入门指南](https://docs.espressif.com/projects/esp-idf/en/stable/get-started/)
* [ESP-IDF 开发版本master 分支)的入门指南](https://docs.espressif.com/projects/esp-idf/en/latest/get-started/)
### 非 GitHub 分叉的 ESP-IDF 项目
ESP-IDF 中的子模块采用相对路径([详见 .gitmodules 文件](.gitmodules)),所以它们会指向 GitHub。
如果 ESP-IDF 被分叉到的仓库不在 GitHub 上,那么你需要在克隆结束后运行该[脚本](tools/set-submodules-to-github.sh)。它会为所有的子模块设置绝对路径,接着可以通过 `git submodule update --init --recursive` 完成子模块的更新。
如果 ESP-IDF 是从 GitHub 上克隆得到,则不需要此步骤。
## 寻找项目
除了入门指南中提到的 [esp-idf 模板项目](https://github.com/espressif/esp-idf-template)ESP-IDF 的 [examples](examples) 目录下还带有很多其它示例项目。
一旦找到了需要的项目,便可以进入该目录,执行配置和构建操作。
如果要基于示例工程开始你自己的项目,请将示例工程复制到 ESP-IDF 目录之外。
# 快速参考
详细的使用方法请参考上面入门指南的链接,这里仅仅列举一些 ESP-IDF 项目开发中常用的命令:
## 设置构建环境
(请参考入门指南中列出的详细步骤。)
* 在主机中安装入门指南中提到的构建所依赖的工具。
* 将 ESP-IDF 中的 `tools/` 目录加入 PATH 环境变量中。
* 运行 `python -m pip install -r requirements.txt` 安装 Python 依赖库。
## 配置项目
`idf.py menuconfig`
* 打开项目的文本配置菜单。
* 使用上下键浏览菜单。
* 使用回车键进入子菜单,退出键返回上一级菜单或者退出配置。
* 输入 `?` 查看帮助界面,按下回车键可以退出帮助界面。
* 使用空格键或者 `Y``N` 按键来启用和禁用带复选框“`[*]`”的配置项。
* 高亮某个配置项的同时按下 `?` 键可以显示该选项的帮助文档。
* 输入 `/` 可以搜索指定的配置项。
一旦配置完成,请按下退出键多次以退出配置界面,当提示是否保存新的的配置时,选择 “Yes”。
## 编译项目
`idf.py build`
编译应用程序,引导程序,并根据配置生成分区表。
## 烧写项目
当构建结束,终端会打印出一条命令行,告知如何使用 esptool.py 工具烧写项目到芯片中。但是你还可以运行下面这条命令来自动烧写:
`idf.py -p PORT flash`
将其中的 PORT 替换为系统中实际串口的名字(比如 Windows 下的 `COM3`Linux 下的 `/dev/ttyUSB0`,或者 MacOS 下的 `/dev/cu.usbserial-X`。如果省略 `-p` 选项,`idf.py flash` 会尝试使用第一个可用的串口进行烧写。
这会烧写整个项目(包括应用程序,引导程序和分区表)到芯片中,此外还可以使用 `idf.py menuconfig` 来调整串口烧写相关的配置。
你也不必先运行 `idf.py build`,再运行 `idf.py flash``idf.py flash` 会根据需要自动重新构建项目。
## 观察串口输入
`idf.py monitor` 会调用 [idf_monitor 工具](https://docs.espressif.com/projects/esp-idf/en/latest/get-started/idf-monitor.html)来显示 ESP32 的串口输出。`idf_monitor` 还包含一系列的功能来解析程序崩溃后的输出结果并与设备进行交互。更多详细内容,请参阅[文档](https://docs.espressif.com/projects/esp-idf/en/latest/get-started/idf-monitor.html).
输入 `Ctrl-]` 可退出监视器。
想要一次性执行构建,烧写和监视,可以运行如下命令:
`idf.py flash monitor`
## 仅编译并烧写应用程序
在第一次烧写过后,你可能只想构建并烧写你的应用程序,不包括引导程序和分区表:
* `idf.py app` - 仅构建应用程序。
* `idf.py app-flash` - 仅烧写应用程序。
`idf.py app-flash` 会自动判断是否有源文件发生了改变而后重新构建应用程序。
(在正常的开发中,即使引导程序和分区表没有发生变化,每次都重新烧写它们并不会带来什么危害。)
## 擦除 Flash
`idf.py flash` 并不会擦除 Flash 上所有的内容,但是有时候我们需要设备恢复到完全擦除的状态,尤其是分区表发生了变化或者 OTA 应用升级。要擦除整块 Flash 请运行 `idf.py erase_flash`
这条命令还可以和其余命令整合在一起,`idf.py -p PORT erase_flash flash` 会擦除一切然后重新烧写新的应用程序,引导程序和分区表。
# 其它参考资源
* 最新版的文档https://docs.espressif.com/projects/esp-idf/ ,该文档是由本仓库 [docs 目录](docs) 构建得到。
* 可以前往 [esp32.com 论坛](https://esp32.com/) 提问,挖掘社区资源。
* 如果你在使用中发现了错误或者需要新的功能,请先[查看 GitHub Issues](https://github.com/espressif/esp-idf/issues),确保该问题不会被重复提交。
* 如果你有兴趣为 ESP-IDF 作贡献,请先阅读[贡献指南](https://docs.espressif.com/projects/esp-idf/en/latest/contribute/index.html)。

68
SUPPORT_POLICY.md Normal file
View File

@ -0,0 +1,68 @@
The latest support policy for ESP-IDF can be found at [https://github.com/espressif/esp-idf/blob/master/SUPPORT_POLICY.md](https://github.com/espressif/esp-idf/blob/master/SUPPORT_POLICY.md)
Support Period Policy
=====================
* [中文版](./SUPPORT_POLICY_CN.md)
Each ESP-IDF major and minor release (V4.0, V4.1, etc) is supported for
18 months after the initial stable release date.
Supported means that the ESP-IDF team will continue to apply bug fixes,
security fixes, etc to the release branch on GitHub, and periodically
make new bugfix releases as needed.
Users are encouraged to upgrade to a newer ESP-IDF release before the
support period finishes and the release becomes End of Life (EOL). It is
our policy to not continue fixing bugs in End of Life releases.
Pre-release versions (betas, previews, `-rc` and `-dev` versions, etc)
are not covered by any support period. Sometimes a particular feature is
marked as \"Preview\" in a release, which means it is also not covered
by the support period.
The ESP-IDF Programming Guide has information about the
[different versions of ESP-IDF](https://docs.espressif.com/projects/esp-idf/en/latest/versions.html)
(major, minor, bugfix, etc).
Long Term Support releases
--------------------------
Some releases (starting with ESP-IDF V3.3) are designated Long Term
Support (LTS). LTS releases are supported for 30 months (2.5 years)
after the initial stable release date.
A new LTS release will be made at least every 18 months. This means
there will always be a period of at least 12 months to upgrade from the
previous LTS release to the following LTS release.
Example
-------
ESP-IDF V3.3 was released in September 2019 and is a Long Term Support
(LTS) release, meaning it will be supported for 30 months until February
2022.
- The first V3.3 release was `v3.3` in September 2019.
- The ESP-IDF team continues to backport bug fixes, security fixes,
etc to the release branch `release/v3.3`.
- Periodically stable bugfix releases are created from the release
branch. For example `v3.3.1`, `v3.3.2`, etc. Users are encouraged to
always update to the latest bugfix release.
- V3.3 bugfix releases continue until February 2022, when all V3.3.x
releases become End of Life.
Existing Releases
-----------------
ESP-IDF release V3.3 and all newer releases will follow this support
period policy. The support period for each release will be announced
when the release is made.
For releases made before the support period policy was announced,
the following support periods apply:
- ESP-IDF V3.1.x and V3.2.x will both be supported until October 2020.
- ESP-IDF V3.0.9 (planned for October 2019) will be the last V3.0
bugfix release. ESP-IDF V3.0.x is End of Life from October 2019.
- ESP-IDF versions before V3.0 are already End of Life.

43
SUPPORT_POLICY_CN.md Normal file
View File

@ -0,0 +1,43 @@
有关 ESP-IDF 的最新支持政策,详见 [支持期限政策](./SUPPORT_POLICY_CN.md)。
支持期限政策
=================
* [English Version](./SUPPORT_POLICY.md)
ESP-IDF 的每个主要版本和次要版本(如 V4.0、V4.1 等)自其首次稳定版本发布之日起将维护 18 个月。
维护意味着 ESP-IDF 团队将会对 GitHub 上的发布分支继续进行 bug 修复、安全修补等,并根据需求定期发布新的 bugfix 版本。
在某一版本支持期限结束,停止更新维护 (EOL) 前,建议用户升级到较新的 ESP-IDF 版本。根据《支持期限政策》,我们将停止对 EOL 版本进行 bug 修复。
《支持期限政策》不适用于预发布版本(包括 beta、preview、`-rc``-dev` 版本等)。有时,在发布的版本中存在被标记为 "Preview" 的特定功能,则该功能也不在支持期限内。
有关 [ ESP-IDF 不同版本](https://docs.espressif.com/projects/esp-idf/zh_CN/latest/versions.html)主要版本、次要版本、bugfix 版本等信息可参阅《ESP-IDF 编程指南》。
长期支持版本
------------
有些发布版本(从 ESP-IDF V3.3 开始)属于长期支持 (LTS) 版本。LTS 版本将自其首次稳定版本发布之日起维护 30 个月2.5 年)。
我们将至少每 18 个月发布一个新的 LTS 版本。这意味着将至少有 12 个月的期限可更新至下一个 LTS 版本。
示例
-----
ESP-IDF V3.3 于 2019 年 9 月发布,属于 LTS 版本,将维护 30 个月至 2022 年 2 月停止。
- V3.3 的首个发布版本为 2019 年 9 月发布的 `v3.3`
- ESP-IDF 团队将持续进行 bug 修复、安全修补等更新,并 backport 至分支 `release/v3.3`
- 定期从 release 分支创建稳定的 bugfix 版本,比如,`v3.3.1``v3.3.2` 等,并建议用户保持使用最新的 bugfix 版本。
- V3.3 的 bugfix 版本发布将持续至 2022 年 2 月,届时所有 V3.3.x 将停止更新维护。
现有版本
--------
ESP-IDF V3.3 及所有后续更新版本都将遵守该《支持期限政策》。每一版本发布时将同时公布其支持期限。
对于该政策公布之日前发布的版本,应适用下述支持期限:
- ESP-IDF V3.1.x 和 V3.2.x 将维护至 2020 年 10 月。
- ESP-IDF V3.0.9(计划 2019 年 10 月发布)将是 V3.0 的最后一个 bugfix 版本。ESP-IDF V3.0.x 自 2019 年 10 月起停止更新维护 (EOL)。
- ESP-IDF 中 V3.0 之前的版本均已停止更新维护 (EOL)。

View File

@ -9,8 +9,7 @@
if [ -z ${IDF_PATH} ]; then
echo "IDF_PATH must be set before including this script."
else
IDF_ADD_PATHS_EXTRAS=
IDF_ADD_PATHS_EXTRAS="${IDF_ADD_PATHS_EXTRAS}:${IDF_PATH}/components/esptool_py/esptool"
IDF_ADD_PATHS_EXTRAS="${IDF_PATH}/components/esptool_py/esptool"
IDF_ADD_PATHS_EXTRAS="${IDF_ADD_PATHS_EXTRAS}:${IDF_PATH}/components/espcoredump"
IDF_ADD_PATHS_EXTRAS="${IDF_ADD_PATHS_EXTRAS}:${IDF_PATH}/components/partition_table/"
IDF_ADD_PATHS_EXTRAS="${IDF_ADD_PATHS_EXTRAS}:${IDF_PATH}/tools/"

View File

@ -1,29 +1,42 @@
set(COMPONENT_SRCS "app_trace.c"
"app_trace_util.c"
"host_file_io.c"
"gcov/gcov_rtio.c")
set(COMPONENT_ADD_INCLUDEDIRS "include")
set(srcs
"app_trace.c"
"app_trace_util.c"
"host_file_io.c"
"gcov/gcov_rtio.c")
set(include_dirs "include")
if(CONFIG_SYSVIEW_ENABLE)
list(APPEND COMPONENT_ADD_INCLUDEDIRS
list(APPEND include_dirs
sys_view/Config
sys_view/SEGGER
sys_view/Sample/OS)
list(APPEND COMPONENT_SRCS "sys_view/SEGGER/SEGGER_SYSVIEW.c"
"sys_view/Sample/Config/SEGGER_SYSVIEW_Config_FreeRTOS.c"
"sys_view/Sample/OS/SEGGER_SYSVIEW_FreeRTOS.c"
"sys_view/esp32/SEGGER_RTT_esp32.c")
list(APPEND srcs
"sys_view/SEGGER/SEGGER_SYSVIEW.c"
"sys_view/Sample/Config/SEGGER_SYSVIEW_Config_FreeRTOS.c"
"sys_view/Sample/OS/SEGGER_SYSVIEW_FreeRTOS.c"
"sys_view/esp32/SEGGER_RTT_esp32.c"
"sys_view/ext/heap_trace_module.c"
"sys_view/ext/logging.c")
endif()
set(COMPONENT_REQUIRES)
set(COMPONENT_PRIV_REQUIRES xtensa-debug-module)
set(COMPONENT_ADD_LDFRAGMENTS linker.lf)
if(CONFIG_HEAP_TRACING_TOHOST)
list(APPEND srcs "heap_trace_tohost.c")
set_source_files_properties(heap_trace_tohost.c
PROPERTIES COMPILE_FLAGS
-Wno-frame-address)
endif()
register_component()
idf_component_register(SRCS "${srcs}"
INCLUDE_DIRS "${include_dirs}"
PRIV_REQUIRES soc
LDFRAGMENTS linker.lf)
# disable --coverage for this component, as it is used as transport
# for gcov
component_compile_options("-fno-profile-arcs" "-fno-test-coverage")
target_compile_options(${COMPONENT_LIB} PRIVATE "-fno-profile-arcs" "-fno-test-coverage")
target_link_libraries(${COMPONENT_TARGET} gcov)
# Force app_trace to also appear later than gcov in link line
idf_component_get_property(app_trace app_trace COMPONENT_LIB)
target_link_libraries(${COMPONENT_LIB} INTERFACE $<TARGET_FILE:${app_trace}> gcov $<TARGET_FILE:${app_trace}> c)

View File

@ -1,54 +1,56 @@
menu "Application Level Tracing"
choice ESP32_APPTRACE_DESTINATION
choice APPTRACE_DESTINATION
prompt "Data Destination"
default ESP32_APPTRACE_DEST_NONE
default APPTRACE_DEST_NONE
help
Select destination for application trace: trace memory or none (to disable).
config ESP32_APPTRACE_DEST_TRAX
config APPTRACE_DEST_TRAX
bool "Trace memory"
select ESP32_APPTRACE_ENABLE
config ESP32_APPTRACE_DEST_NONE
select APPTRACE_ENABLE
config APPTRACE_DEST_NONE
bool "None"
endchoice
config ESP32_APPTRACE_ENABLE
config APPTRACE_ENABLE
bool
depends on !ESP32_TRAX
select MEMMAP_TRACEMEM
select MEMMAP_TRACEMEM_TWOBANKS
depends on !ESP32_TRAX && !ESP32S2_TRAX
select ESP32_MEMMAP_TRACEMEM
select ESP32S2_MEMMAP_TRACEMEM
select ESP32_MEMMAP_TRACEMEM_TWOBANKS
select ESP32S2_MEMMAP_TRACEMEM_TWOBANKS
default n
help
Enables/disable application tracing module.
config ESP32_APPTRACE_LOCK_ENABLE
config APPTRACE_LOCK_ENABLE
bool
default !SYSVIEW_ENABLE
help
Enables/disable application tracing module internal sync lock.
config ESP32_APPTRACE_ONPANIC_HOST_FLUSH_TMO
config APPTRACE_ONPANIC_HOST_FLUSH_TMO
int "Timeout for flushing last trace data to host on panic"
depends on ESP32_APPTRACE_ENABLE
depends on APPTRACE_ENABLE
range -1 5000
default -1
help
Timeout for flushing last trace data to host in case of panic. In ms.
Use -1 to disable timeout and wait forever.
config ESP32_APPTRACE_POSTMORTEM_FLUSH_TRAX_THRESH
config APPTRACE_POSTMORTEM_FLUSH_THRESH
int "Threshold for flushing last trace data to host on panic"
depends on ESP32_APPTRACE_DEST_TRAX
depends on APPTRACE_DEST_TRAX
range 0 16384
default 0
help
Threshold for flushing last trace data to host on panic in post-mortem mode.
This is minimal amount of data needed to perform flush. In bytes.
config ESP32_APPTRACE_PENDING_DATA_SIZE_MAX
config APPTRACE_PENDING_DATA_SIZE_MAX
int "Size of the pending data buffer"
depends on ESP32_APPTRACE_DEST_TRAX
depends on APPTRACE_DEST_TRAX
default 0
help
Size of the buffer for events in bytes. It is useful for buffering events from
@ -56,10 +58,10 @@ menu "Application Level Tracing"
events will be discarded when main HW buffer is full.
menu "FreeRTOS SystemView Tracing"
depends on ESP32_APPTRACE_ENABLE
depends on APPTRACE_ENABLE
config SYSVIEW_ENABLE
bool "SystemView Tracing Enable"
depends on ESP32_APPTRACE_ENABLE
depends on APPTRACE_ENABLE
default n
help
Enables supporrt for SEGGER SystemView tracing functionality.
@ -107,6 +109,14 @@ menu "Application Level Tracing"
help
Configures maximum supported tasks in sysview debug
config SYSVIEW_BUF_WAIT_TMO
int "Trace buffer wait timeout"
depends on SYSVIEW_ENABLE
default 500
help
Configures timeout (in us) to wait for free space in trace buffer.
Set to -1 to wait forever and avoid lost events.
config SYSVIEW_EVT_OVERFLOW_ENABLE
bool "Trace Buffer Overflow Event"
depends on SYSVIEW_ENABLE
@ -200,10 +210,11 @@ menu "Application Level Tracing"
endmenu
config ESP32_GCOV_ENABLE
config APPTRACE_GCOV_ENABLE
bool "GCOV to Host Enable"
depends on ESP32_DEBUG_STUBS_ENABLE && ESP32_APPTRACE_ENABLE && !SYSVIEW_ENABLE
default y
depends on APPTRACE_ENABLE && !SYSVIEW_ENABLE
select ESP_DEBUG_STUBS_ENABLE
default n
help
Enables support for GCOV data transfer to host.

View File

@ -75,11 +75,12 @@
// trace data are necessary, e.g. for analyzing crashes. On panic the latest data from current input block are exposed to host and host can read them.
// It can happen that system panic occurs when there are very small amount of data which are not exposed to host yet (e.g. crash just after the
// TRAX block switch). In this case the previous 16KB of collected data will be dropped and host will see the latest, but very small piece of trace.
// It can be insufficient to diagnose the problem. To avoid such situations there is menuconfig option CONFIG_ESP32_APPTRACE_POSTMORTEM_FLUSH_TRAX_THRESH
// It can be insufficient to diagnose the problem. To avoid such situations there is menuconfig option
// CONFIG_APPTRACE_POSTMORTEM_FLUSH_THRESH
// which controls the threshold for flushing data in case of panic.
// - Streaming mode. Tracing module enters this mode when host connects to target and sets respective bits in control registers (per core).
// In this mode before switching the block tracing module waits for the host to read all the data from the previously exposed block.
// On panic tracing module also waits (timeout is configured via menuconfig via CONFIG_ESP32_APPTRACE_ONPANIC_HOST_FLUSH_TMO) for the host to read all data.
// On panic tracing module also waits (timeout is configured via menuconfig via CONFIG_APPTRACE_ONPANIC_HOST_FLUSH_TMO) for the host to read all data.
// 4. Communication Protocol
// =========================
@ -113,7 +114,7 @@
// has not completed reading of the previous one yet. So in this case time critical tracing calls (which can not be delayed for too long time due to
// the lack of free memory in TRAX block) can be dropped. To avoid such scenarios tracing module implements data buffering. Buffered data will be sent
// to the host later when TRAX block switch occurs. The maximum size of the buffered data is controlled by menuconfig option
// CONFIG_ESP32_APPTRACE_PENDING_DATA_SIZE_MAX.
// CONFIG_APPTRACE_PENDING_DATA_SIZE_MAX.
// 4.4 Target Connection/Disconnection
// -----------------------------------
@ -157,14 +158,16 @@
#include <sys/param.h>
#include "soc/soc.h"
#include "soc/dport_reg.h"
#if CONFIG_IDF_TARGET_ESP32S2BETA
#include "soc/sensitive_reg.h"
#endif
#include "eri.h"
#include "trax.h"
#include "soc/timer_group_struct.h"
#include "soc/timer_group_reg.h"
#include "soc/timer_periph.h"
#include "freertos/FreeRTOS.h"
#include "esp_app_trace.h"
#if CONFIG_ESP32_APPTRACE_ENABLE
#if CONFIG_APPTRACE_ENABLE
#define ESP_APPTRACE_MAX_VPRINTF_ARGS 256
#define ESP_APPTRACE_HOST_BUF_SIZE 256
@ -202,10 +205,16 @@ const static char *TAG = "esp_apptrace";
#define ESP_APPTRACE_LOGO( format, ... ) ESP_APPTRACE_LOG_LEV(E, ESP_LOG_NONE, format, ##__VA_ARGS__)
// TODO: move these (and same definitions in trax.c to dport_reg.h)
#if CONFIG_IDF_TARGET_ESP32
#define TRACEMEM_MUX_PROBLK0_APPBLK1 0
#define TRACEMEM_MUX_BLK0_ONLY 1
#define TRACEMEM_MUX_BLK1_ONLY 2
#define TRACEMEM_MUX_PROBLK1_APPBLK0 3
#elif CONFIG_IDF_TARGET_ESP32S2BETA
#define TRACEMEM_MUX_BLK0_NUM 19
#define TRACEMEM_MUX_BLK1_NUM 20
#define TRACEMEM_BLK_NUM2ADDR(_n_) (0x3FFB8000UL + 0x4000UL*((_n_)-4))
#endif
// TRAX is disabled, so we use its registers for our own purposes
// | 31..XXXXXX..24 | 23 .(host_connect). 23 | 22 .(host_data). 22| 21..(block_id)..15 | 14..(block_len)..0 |
@ -230,10 +239,17 @@ const static char *TAG = "esp_apptrace";
#endif
#define ESP_APPTRACE_USR_BLOCK_RAW_SZ(_s_) ((_s_) + sizeof(esp_tracedata_hdr_t))
#if CONFIG_IDF_TARGET_ESP32
static volatile uint8_t *s_trax_blocks[] = {
(volatile uint8_t *) 0x3FFFC000,
(volatile uint8_t *) 0x3FFF8000
};
#elif CONFIG_IDF_TARGET_ESP32S2BETA
static volatile uint8_t *s_trax_blocks[] = {
(volatile uint8_t *)TRACEMEM_BLK_NUM2ADDR(TRACEMEM_MUX_BLK0_NUM),
(volatile uint8_t *)TRACEMEM_BLK_NUM2ADDR(TRACEMEM_MUX_BLK1_NUM)
};
#endif
#define ESP_APPTRACE_TRAX_BLOCKS_NUM (sizeof(s_trax_blocks)/sizeof(s_trax_blocks[0]))
@ -293,17 +309,17 @@ typedef struct {
typedef struct {
volatile esp_apptrace_trax_state_t state; // state
esp_apptrace_mem_block_t blocks[ESP_APPTRACE_TRAX_BLOCKS_NUM]; // memory blocks
#if CONFIG_ESP32_APPTRACE_PENDING_DATA_SIZE_MAX > 0
#if CONFIG_APPTRACE_PENDING_DATA_SIZE_MAX > 0
// ring buffer control struct for pending user blocks
esp_apptrace_rb_t rb_pend;
// storage for pending user blocks
uint8_t pending_data[CONFIG_ESP32_APPTRACE_PENDING_DATA_SIZE_MAX + 1];
#if CONFIG_ESP32_APPTRACE_PENDING_DATA_SIZE_MAX > ESP_APPTRACE_TRAX_BLOCK_SIZE
uint8_t pending_data[CONFIG_APPTRACE_PENDING_DATA_SIZE_MAX + 1];
#if CONFIG_APPTRACE_PENDING_DATA_SIZE_MAX > ESP_APPTRACE_TRAX_BLOCK_SIZE
// ring buffer control struct for pending user data chunks sizes,
// every chunk contains whole number of user blocks and fit into TRAX memory block
esp_apptrace_rb_t rb_pend_chunk_sz;
// storage for above ring buffer data
uint16_t pending_chunk_sz[CONFIG_ESP32_APPTRACE_PENDING_DATA_SIZE_MAX/ESP_APPTRACE_TRAX_BLOCK_SIZE + 2];
uint16_t pending_chunk_sz[CONFIG_APPTRACE_PENDING_DATA_SIZE_MAX/ESP_APPTRACE_TRAX_BLOCK_SIZE + 2];
// current (accumulated) pending user data chunk size
uint16_t cur_pending_chunk_sz;
#endif
@ -360,7 +376,7 @@ static esp_apptrace_hw_t s_trace_hw[ESP_APPTRACE_HW_MAX] = {
}
};
static inline int esp_apptrace_log_lock()
static inline int esp_apptrace_log_lock(void)
{
#if ESP_APPTRACE_PRINT_LOCK
esp_apptrace_tmo_t tmo;
@ -372,29 +388,29 @@ static inline int esp_apptrace_log_lock()
#endif
}
static inline void esp_apptrace_log_unlock()
static inline void esp_apptrace_log_unlock(void)
{
#if ESP_APPTRACE_PRINT_LOCK
esp_apptrace_lock_give(&s_log_lock);
#endif
}
static inline esp_err_t esp_apptrace_lock_initialize()
static inline esp_err_t esp_apptrace_lock_initialize(esp_apptrace_lock_t *lock)
{
#if CONFIG_ESP32_APPTRACE_LOCK_ENABLE
esp_apptrace_lock_init(&s_trace_buf.lock);
#if CONFIG_APPTRACE_LOCK_ENABLE
esp_apptrace_lock_init(lock);
#endif
return ESP_OK;
}
static inline esp_err_t esp_apptrace_lock_cleanup()
static inline esp_err_t esp_apptrace_lock_cleanup(void)
{
return ESP_OK;
}
esp_err_t esp_apptrace_lock(esp_apptrace_tmo_t *tmo)
{
#if CONFIG_ESP32_APPTRACE_LOCK_ENABLE
#if CONFIG_APPTRACE_LOCK_ENABLE
esp_err_t ret = esp_apptrace_lock_take(&s_trace_buf.lock, tmo);
if (ret != ESP_OK) {
return ESP_FAIL;
@ -403,17 +419,28 @@ esp_err_t esp_apptrace_lock(esp_apptrace_tmo_t *tmo)
return ESP_OK;
}
esp_err_t esp_apptrace_unlock()
esp_err_t esp_apptrace_unlock(void)
{
esp_err_t ret = ESP_OK;
#if CONFIG_ESP32_APPTRACE_LOCK_ENABLE
#if CONFIG_APPTRACE_LOCK_ENABLE
ret = esp_apptrace_lock_give(&s_trace_buf.lock);
#endif
return ret;
}
#if CONFIG_ESP32_APPTRACE_DEST_TRAX
static void esp_apptrace_trax_init()
#if CONFIG_APPTRACE_DEST_TRAX
static inline void esp_apptrace_trax_select_memory_block(int block_num)
{
// select memory block to be exposed to the TRAX module (accessed by host)
#if CONFIG_IDF_TARGET_ESP32
DPORT_WRITE_PERI_REG(DPORT_TRACEMEM_MUX_MODE_REG, block_num ? TRACEMEM_MUX_BLK0_ONLY : TRACEMEM_MUX_BLK1_ONLY);
#elif CONFIG_IDF_TARGET_ESP32S2BETA
DPORT_WRITE_PERI_REG(DPORT_PMS_OCCUPY_3_REG, block_num ? BIT(TRACEMEM_MUX_BLK0_NUM-4) : BIT(TRACEMEM_MUX_BLK1_NUM-4));
#endif
}
static void esp_apptrace_trax_init(void)
{
// Stop trace, if any (on the current CPU)
eri_write(ERI_TRAX_TRAXCTRL, TRAXCTRL_TRSTP);
@ -426,7 +453,7 @@ static void esp_apptrace_trax_init()
ESP_APPTRACE_LOGI("Initialized TRAX on CPU%d", xPortGetCoreID());
}
#if CONFIG_ESP32_APPTRACE_PENDING_DATA_SIZE_MAX > ESP_APPTRACE_TRAX_BLOCK_SIZE
#if CONFIG_APPTRACE_PENDING_DATA_SIZE_MAX > ESP_APPTRACE_TRAX_BLOCK_SIZE
// keep the size of buffered data for copying to TRAX mem block.
// Only whole user blocks should be copied from buffer to TRAX block upon the switch
static void esp_apptrace_trax_pend_chunk_sz_update(uint16_t size)
@ -449,7 +476,7 @@ static void esp_apptrace_trax_pend_chunk_sz_update(uint16_t size)
}
}
static uint16_t esp_apptrace_trax_pend_chunk_sz_get()
static uint16_t esp_apptrace_trax_pend_chunk_sz_get(void)
{
uint16_t ch_sz;
ESP_APPTRACE_LOGD("Get chunk enter %d w-r-s %d-%d-%d", s_trace_buf.trax.cur_pending_chunk_sz,
@ -467,7 +494,7 @@ static uint16_t esp_apptrace_trax_pend_chunk_sz_get()
#endif
// assumed to be protected by caller from multi-core/thread access
static esp_err_t esp_apptrace_trax_block_switch()
static esp_err_t esp_apptrace_trax_block_switch(void)
{
int prev_block_num = s_trace_buf.trax.state.in_block % 2;
int new_block_num = prev_block_num ? (0) : (1);
@ -499,7 +526,7 @@ static esp_err_t esp_apptrace_trax_block_switch()
// switch to new block
s_trace_buf.trax.state.in_block++;
DPORT_WRITE_PERI_REG(DPORT_TRACEMEM_MUX_MODE_REG, new_block_num ? TRACEMEM_MUX_BLK0_ONLY : TRACEMEM_MUX_BLK1_ONLY);
esp_apptrace_trax_select_memory_block(new_block_num);
// handle data from host
esp_hostdata_hdr_t *hdr = (esp_hostdata_hdr_t *)s_trace_buf.trax.blocks[new_block_num].start;
if (ctrl_reg & ESP_APPTRACE_TRAX_HOST_DATA && hdr->block_sz > 0) {
@ -517,9 +544,9 @@ static esp_err_t esp_apptrace_trax_block_switch()
}
hdr->block_sz = 0;
}
#if CONFIG_ESP32_APPTRACE_PENDING_DATA_SIZE_MAX > 0
#if CONFIG_APPTRACE_PENDING_DATA_SIZE_MAX > 0
// copy pending data to TRAX block if any
#if CONFIG_ESP32_APPTRACE_PENDING_DATA_SIZE_MAX > ESP_APPTRACE_TRAX_BLOCK_SIZE
#if CONFIG_APPTRACE_PENDING_DATA_SIZE_MAX > ESP_APPTRACE_TRAX_BLOCK_SIZE
uint16_t max_chunk_sz = esp_apptrace_trax_pend_chunk_sz_get();
#else
uint16_t max_chunk_sz = s_trace_buf.trax.blocks[new_block_num].sz;
@ -527,7 +554,7 @@ static esp_err_t esp_apptrace_trax_block_switch()
while (s_trace_buf.trax.state.markers[new_block_num] < max_chunk_sz) {
uint32_t read_sz = esp_apptrace_rb_read_size_get(&s_trace_buf.trax.rb_pend);
if (read_sz == 0) {
#if CONFIG_ESP32_APPTRACE_PENDING_DATA_SIZE_MAX > ESP_APPTRACE_TRAX_BLOCK_SIZE
#if CONFIG_APPTRACE_PENDING_DATA_SIZE_MAX > ESP_APPTRACE_TRAX_BLOCK_SIZE
/* theres is a bug: esp_apptrace_trax_pend_chunk_sz_get returned wrong value,
it must be greater or equal to one returned by esp_apptrace_rb_read_size_get */
ESP_APPTRACE_LOGE("No pended bytes, must be > 0 and <= %d!", max_chunk_sz);
@ -670,7 +697,7 @@ static inline uint8_t *esp_apptrace_trax_wait4buf(uint16_t size, esp_apptrace_tm
return NULL;
}
// check if we still have pending data
#if CONFIG_ESP32_APPTRACE_PENDING_DATA_SIZE_MAX > 0
#if CONFIG_APPTRACE_PENDING_DATA_SIZE_MAX > 0
if (esp_apptrace_rb_read_size_get(&s_trace_buf.trax.rb_pend) > 0) {
// if after TRAX block switch still have pending data (not all pending data have been pumped to TRAX block)
// alloc new pending buffer
@ -684,7 +711,7 @@ static inline uint8_t *esp_apptrace_trax_wait4buf(uint16_t size, esp_apptrace_tm
{
// update block pointers
if (ESP_APPTRACE_TRAX_INBLOCK_MARKER() + size > ESP_APPTRACE_TRAX_INBLOCK_GET()->sz) {
#if CONFIG_ESP32_APPTRACE_PENDING_DATA_SIZE_MAX > 0
#if CONFIG_APPTRACE_PENDING_DATA_SIZE_MAX > 0
*pended = 1;
ptr = esp_apptrace_rb_produce(&s_trace_buf.trax.rb_pend, size);
if (ptr == NULL) {
@ -714,7 +741,7 @@ static uint8_t *esp_apptrace_trax_get_buffer(uint32_t size, esp_apptrace_tmo_t *
return NULL;
}
// check for data in the pending buffer
#if CONFIG_ESP32_APPTRACE_PENDING_DATA_SIZE_MAX > 0
#if CONFIG_APPTRACE_PENDING_DATA_SIZE_MAX > 0
if (esp_apptrace_rb_read_size_get(&s_trace_buf.trax.rb_pend) > 0) {
// if we have buffered data try to switch TRAX block
esp_apptrace_trax_block_switch();
@ -729,7 +756,7 @@ static uint8_t *esp_apptrace_trax_get_buffer(uint32_t size, esp_apptrace_tmo_t *
buf_ptr = esp_apptrace_trax_wait4buf(ESP_APPTRACE_USR_BLOCK_RAW_SZ(size), tmo, &pended_buf);
if (buf_ptr) {
if (pended_buf) {
#if CONFIG_ESP32_APPTRACE_PENDING_DATA_SIZE_MAX > ESP_APPTRACE_TRAX_BLOCK_SIZE
#if CONFIG_APPTRACE_PENDING_DATA_SIZE_MAX > ESP_APPTRACE_TRAX_BLOCK_SIZE
esp_apptrace_trax_pend_chunk_sz_update(ESP_APPTRACE_USR_BLOCK_RAW_SZ(size));
#endif
} else {
@ -739,18 +766,18 @@ static uint8_t *esp_apptrace_trax_get_buffer(uint32_t size, esp_apptrace_tmo_t *
}
}
} else {
#if CONFIG_ESP32_APPTRACE_PENDING_DATA_SIZE_MAX > ESP_APPTRACE_TRAX_BLOCK_SIZE
#if CONFIG_APPTRACE_PENDING_DATA_SIZE_MAX > ESP_APPTRACE_TRAX_BLOCK_SIZE
esp_apptrace_trax_pend_chunk_sz_update(ESP_APPTRACE_USR_BLOCK_RAW_SZ(size));
#endif
}
} else
#endif
if (ESP_APPTRACE_TRAX_INBLOCK_MARKER() + ESP_APPTRACE_USR_BLOCK_RAW_SZ(size) > ESP_APPTRACE_TRAX_INBLOCK_GET()->sz) {
#if CONFIG_ESP32_APPTRACE_PENDING_DATA_SIZE_MAX > 0
#if CONFIG_APPTRACE_PENDING_DATA_SIZE_MAX > 0
ESP_APPTRACE_LOGD("TRAX full. Get %d bytes from PEND buffer", size);
buf_ptr = esp_apptrace_rb_produce(&s_trace_buf.trax.rb_pend, ESP_APPTRACE_USR_BLOCK_RAW_SZ(size));
if (buf_ptr) {
#if CONFIG_ESP32_APPTRACE_PENDING_DATA_SIZE_MAX > ESP_APPTRACE_TRAX_BLOCK_SIZE
#if CONFIG_APPTRACE_PENDING_DATA_SIZE_MAX > ESP_APPTRACE_TRAX_BLOCK_SIZE
esp_apptrace_trax_pend_chunk_sz_update(ESP_APPTRACE_USR_BLOCK_RAW_SZ(size));
#endif
}
@ -761,7 +788,7 @@ static uint8_t *esp_apptrace_trax_get_buffer(uint32_t size, esp_apptrace_tmo_t *
buf_ptr = esp_apptrace_trax_wait4buf(ESP_APPTRACE_USR_BLOCK_RAW_SZ(size), tmo, &pended_buf);
if (buf_ptr) {
if (pended_buf) {
#if CONFIG_ESP32_APPTRACE_PENDING_DATA_SIZE_MAX > ESP_APPTRACE_TRAX_BLOCK_SIZE
#if CONFIG_APPTRACE_PENDING_DATA_SIZE_MAX > ESP_APPTRACE_TRAX_BLOCK_SIZE
esp_apptrace_trax_pend_chunk_sz_update(ESP_APPTRACE_USR_BLOCK_RAW_SZ(size));
#endif
} else {
@ -845,7 +872,7 @@ static esp_err_t esp_apptrace_trax_status_reg_get(uint32_t *val)
return ESP_OK;
}
static esp_err_t esp_apptrace_trax_dest_init()
static esp_err_t esp_apptrace_trax_dest_init(void)
{
for (int i = 0; i < ESP_APPTRACE_TRAX_BLOCKS_NUM; i++) {
s_trace_buf.trax.blocks[i].start = (uint8_t *)s_trax_blocks[i];
@ -853,28 +880,29 @@ static esp_err_t esp_apptrace_trax_dest_init()
s_trace_buf.trax.state.markers[i] = 0;
}
s_trace_buf.trax.state.in_block = ESP_APPTRACE_TRAX_INBLOCK_START;
#if CONFIG_ESP32_APPTRACE_PENDING_DATA_SIZE_MAX > 0
#if CONFIG_APPTRACE_PENDING_DATA_SIZE_MAX > 0
esp_apptrace_rb_init(&s_trace_buf.trax.rb_pend, s_trace_buf.trax.pending_data,
sizeof(s_trace_buf.trax.pending_data));
#if CONFIG_ESP32_APPTRACE_PENDING_DATA_SIZE_MAX > ESP_APPTRACE_TRAX_BLOCK_SIZE
#if CONFIG_APPTRACE_PENDING_DATA_SIZE_MAX > ESP_APPTRACE_TRAX_BLOCK_SIZE
s_trace_buf.trax.cur_pending_chunk_sz = 0;
esp_apptrace_rb_init(&s_trace_buf.trax.rb_pend_chunk_sz, (uint8_t *)s_trace_buf.trax.pending_chunk_sz,
sizeof(s_trace_buf.trax.pending_chunk_sz));
#endif
#endif
#if CONFIG_IDF_TARGET_ESP32
DPORT_WRITE_PERI_REG(DPORT_PRO_TRACEMEM_ENA_REG, DPORT_PRO_TRACEMEM_ENA_M);
#if CONFIG_FREERTOS_UNICORE == 0
DPORT_WRITE_PERI_REG(DPORT_APP_TRACEMEM_ENA_REG, DPORT_APP_TRACEMEM_ENA_M);
#endif
// Expose block 1 to host, block 0 is current trace input buffer
DPORT_WRITE_PERI_REG(DPORT_TRACEMEM_MUX_MODE_REG, TRACEMEM_MUX_BLK1_ONLY);
#endif
esp_apptrace_trax_select_memory_block(0);
return ESP_OK;
}
#endif
esp_err_t esp_apptrace_init()
esp_err_t esp_apptrace_init(void)
{
int res;
@ -887,7 +915,7 @@ esp_err_t esp_apptrace_init()
ESP_APPTRACE_LOGE("Failed to init log lock (%d)!", res);
return res;
}
#if CONFIG_ESP32_APPTRACE_DEST_TRAX
#if CONFIG_APPTRACE_DEST_TRAX
res = esp_apptrace_trax_dest_init();
if (res != ESP_OK) {
ESP_APPTRACE_LOGE("Failed to init TRAX dest data (%d)!", res);
@ -897,7 +925,7 @@ esp_err_t esp_apptrace_init()
#endif
}
#if CONFIG_ESP32_APPTRACE_DEST_TRAX
#if CONFIG_APPTRACE_DEST_TRAX
// init TRAX on this CPU
esp_apptrace_trax_init();
#endif
@ -919,7 +947,7 @@ esp_err_t esp_apptrace_read(esp_apptrace_dest_t dest, void *buf, uint32_t *size,
esp_apptrace_hw_t *hw = NULL;
if (dest == ESP_APPTRACE_DEST_TRAX) {
#if CONFIG_ESP32_APPTRACE_DEST_TRAX
#if CONFIG_APPTRACE_DEST_TRAX
hw = ESP_APPTRACE_HW(ESP_APPTRACE_HW_TRAX);
#else
ESP_APPTRACE_LOGE("Application tracing via TRAX is disabled in menuconfig!");
@ -929,6 +957,9 @@ esp_err_t esp_apptrace_read(esp_apptrace_dest_t dest, void *buf, uint32_t *size,
ESP_APPTRACE_LOGE("Trace destinations other then TRAX are not supported yet!");
return ESP_ERR_NOT_SUPPORTED;
}
if (buf == NULL || size == NULL || *size == 0) {
return ESP_ERR_INVALID_ARG;
}
//TODO: callback system
esp_apptrace_tmo_init(&tmo, user_tmo);
@ -953,7 +984,7 @@ uint8_t *esp_apptrace_down_buffer_get(esp_apptrace_dest_t dest, uint32_t *size,
esp_apptrace_hw_t *hw = NULL;
if (dest == ESP_APPTRACE_DEST_TRAX) {
#if CONFIG_ESP32_APPTRACE_DEST_TRAX
#if CONFIG_APPTRACE_DEST_TRAX
hw = ESP_APPTRACE_HW(ESP_APPTRACE_HW_TRAX);
#else
ESP_APPTRACE_LOGE("Application tracing via TRAX is disabled in menuconfig!");
@ -963,8 +994,10 @@ uint8_t *esp_apptrace_down_buffer_get(esp_apptrace_dest_t dest, uint32_t *size,
ESP_APPTRACE_LOGE("Trace destinations other then TRAX are not supported yet!");
return NULL;
}
if (size == NULL || *size == 0) {
return NULL;
}
// ESP_APPTRACE_LOGE("esp_apptrace_down_buffer_get %d", *size);
esp_apptrace_tmo_init(&tmo, user_tmo);
return hw->get_down_buffer(size, &tmo);
}
@ -975,7 +1008,7 @@ esp_err_t esp_apptrace_down_buffer_put(esp_apptrace_dest_t dest, uint8_t *ptr, u
esp_apptrace_hw_t *hw = NULL;
if (dest == ESP_APPTRACE_DEST_TRAX) {
#if CONFIG_ESP32_APPTRACE_DEST_TRAX
#if CONFIG_APPTRACE_DEST_TRAX
hw = ESP_APPTRACE_HW(ESP_APPTRACE_HW_TRAX);
#else
ESP_APPTRACE_LOGE("Application tracing via TRAX is disabled in menuconfig!");
@ -985,6 +1018,9 @@ esp_err_t esp_apptrace_down_buffer_put(esp_apptrace_dest_t dest, uint8_t *ptr, u
ESP_APPTRACE_LOGE("Trace destinations other then TRAX are not supported yet!");
return ESP_ERR_NOT_SUPPORTED;
}
if (ptr == NULL) {
return ESP_ERR_INVALID_ARG;
}
esp_apptrace_tmo_init(&tmo, user_tmo);
return hw->put_down_buffer(ptr, &tmo);
@ -997,7 +1033,7 @@ esp_err_t esp_apptrace_write(esp_apptrace_dest_t dest, const void *data, uint32_
esp_apptrace_hw_t *hw = NULL;
if (dest == ESP_APPTRACE_DEST_TRAX) {
#if CONFIG_ESP32_APPTRACE_DEST_TRAX
#if CONFIG_APPTRACE_DEST_TRAX
hw = ESP_APPTRACE_HW(ESP_APPTRACE_HW_TRAX);
#else
ESP_APPTRACE_LOGE("Application tracing via TRAX is disabled in menuconfig!");
@ -1007,6 +1043,9 @@ esp_err_t esp_apptrace_write(esp_apptrace_dest_t dest, const void *data, uint32_
ESP_APPTRACE_LOGE("Trace destinations other then TRAX are not supported yet!");
return ESP_ERR_NOT_SUPPORTED;
}
if (data == NULL || size == 0) {
return ESP_ERR_INVALID_ARG;
}
esp_apptrace_tmo_init(&tmo, user_tmo);
ptr = hw->get_up_buffer(size, &tmo);
@ -1030,7 +1069,7 @@ int esp_apptrace_vprintf_to(esp_apptrace_dest_t dest, uint32_t user_tmo, const c
esp_apptrace_hw_t *hw = NULL;
if (dest == ESP_APPTRACE_DEST_TRAX) {
#if CONFIG_ESP32_APPTRACE_DEST_TRAX
#if CONFIG_APPTRACE_DEST_TRAX
hw = ESP_APPTRACE_HW(ESP_APPTRACE_HW_TRAX);
#else
ESP_APPTRACE_LOGE("Application tracing via TRAX is disabled in menuconfig!");
@ -1040,6 +1079,9 @@ int esp_apptrace_vprintf_to(esp_apptrace_dest_t dest, uint32_t user_tmo, const c
ESP_APPTRACE_LOGE("Trace destinations other then TRAX are not supported yet!");
return ESP_ERR_NOT_SUPPORTED;
}
if (fmt == NULL) {
return ESP_ERR_INVALID_ARG;
}
esp_apptrace_tmo_init(&tmo, user_tmo);
ESP_APPTRACE_LOGD("fmt %x", fmt);
@ -1091,7 +1133,7 @@ uint8_t *esp_apptrace_buffer_get(esp_apptrace_dest_t dest, uint32_t size, uint32
esp_apptrace_hw_t *hw = NULL;
if (dest == ESP_APPTRACE_DEST_TRAX) {
#if CONFIG_ESP32_APPTRACE_DEST_TRAX
#if CONFIG_APPTRACE_DEST_TRAX
hw = ESP_APPTRACE_HW(ESP_APPTRACE_HW_TRAX);
#else
ESP_APPTRACE_LOGE("Application tracing via TRAX is disabled in menuconfig!");
@ -1101,6 +1143,9 @@ uint8_t *esp_apptrace_buffer_get(esp_apptrace_dest_t dest, uint32_t size, uint32
ESP_APPTRACE_LOGE("Trace destinations other then TRAX are not supported yet!");
return NULL;
}
if (size == 0) {
return NULL;
}
esp_apptrace_tmo_init(&tmo, user_tmo);
return hw->get_up_buffer(size, &tmo);
@ -1112,7 +1157,7 @@ esp_err_t esp_apptrace_buffer_put(esp_apptrace_dest_t dest, uint8_t *ptr, uint32
esp_apptrace_hw_t *hw = NULL;
if (dest == ESP_APPTRACE_DEST_TRAX) {
#if CONFIG_ESP32_APPTRACE_DEST_TRAX
#if CONFIG_APPTRACE_DEST_TRAX
hw = ESP_APPTRACE_HW(ESP_APPTRACE_HW_TRAX);
#else
ESP_APPTRACE_LOGE("Application tracing via TRAX is disabled in menuconfig!");
@ -1122,6 +1167,9 @@ esp_err_t esp_apptrace_buffer_put(esp_apptrace_dest_t dest, uint8_t *ptr, uint32
ESP_APPTRACE_LOGE("Trace destinations other then TRAX are not supported yet!");
return ESP_ERR_NOT_SUPPORTED;
}
if (ptr == NULL) {
return ESP_ERR_INVALID_ARG;
}
esp_apptrace_tmo_init(&tmo, user_tmo);
return hw->put_up_buffer(ptr, &tmo);
@ -1133,7 +1181,7 @@ esp_err_t esp_apptrace_flush_nolock(esp_apptrace_dest_t dest, uint32_t min_sz, u
esp_apptrace_hw_t *hw = NULL;
if (dest == ESP_APPTRACE_DEST_TRAX) {
#if CONFIG_ESP32_APPTRACE_DEST_TRAX
#if CONFIG_APPTRACE_DEST_TRAX
hw = ESP_APPTRACE_HW(ESP_APPTRACE_HW_TRAX);
#else
ESP_APPTRACE_LOGE("Application tracing via TRAX is disabled in menuconfig!");
@ -1177,7 +1225,7 @@ bool esp_apptrace_host_is_connected(esp_apptrace_dest_t dest)
esp_apptrace_hw_t *hw = NULL;
if (dest == ESP_APPTRACE_DEST_TRAX) {
#if CONFIG_ESP32_APPTRACE_DEST_TRAX
#if CONFIG_APPTRACE_DEST_TRAX
hw = ESP_APPTRACE_HW(ESP_APPTRACE_HW_TRAX);
#else
ESP_APPTRACE_LOGE("Application tracing via TRAX is disabled in menuconfig!");
@ -1195,7 +1243,7 @@ esp_err_t esp_apptrace_status_reg_set(esp_apptrace_dest_t dest, uint32_t val)
esp_apptrace_hw_t *hw = NULL;
if (dest == ESP_APPTRACE_DEST_TRAX) {
#if CONFIG_ESP32_APPTRACE_DEST_TRAX
#if CONFIG_APPTRACE_DEST_TRAX
hw = ESP_APPTRACE_HW(ESP_APPTRACE_HW_TRAX);
#else
ESP_APPTRACE_LOGE("Application tracing via TRAX is disabled in menuconfig!");
@ -1213,7 +1261,7 @@ esp_err_t esp_apptrace_status_reg_get(esp_apptrace_dest_t dest, uint32_t *val)
esp_apptrace_hw_t *hw = NULL;
if (dest == ESP_APPTRACE_DEST_TRAX) {
#if CONFIG_ESP32_APPTRACE_DEST_TRAX
#if CONFIG_APPTRACE_DEST_TRAX
hw = ESP_APPTRACE_HW(ESP_APPTRACE_HW_TRAX);
#else
ESP_APPTRACE_LOGE("Application tracing via TRAX is disabled in menuconfig!");

View File

@ -15,7 +15,12 @@
#include "freertos/FreeRTOS.h"
#include "freertos/task.h"
#include "esp_app_trace_util.h"
#include "esp_clk.h"
#include "sdkconfig.h"
#if CONFIG_IDF_TARGET_ESP32
#include "esp32/clk.h"
#elif CONFIG_IDF_TARGET_ESP32S2BETA
#include "esp32s2beta/clk.h"
#endif
///////////////////////////////////////////////////////////////////////////////
///////////////////////////////// TIMEOUT /////////////////////////////////////

View File

@ -23,7 +23,8 @@ COMPONENT_SRCDIRS += \
sys_view/SEGGER \
sys_view/Sample/OS \
sys_view/Sample/Config \
sys_view/esp32
sys_view/esp32 \
sys_view/ext
else
COMPONENT_SRCDIRS += gcov
endif

View File

@ -14,16 +14,23 @@
// This module implements runtime file I/O API for GCOV.
#include <string.h>
#include "esp_task_wdt.h"
#include "freertos/FreeRTOS.h"
#include "freertos/task.h"
#include "freertos/semphr.h"
#include "soc/cpu.h"
#include "soc/timer_group_struct.h"
#include "soc/timer_group_reg.h"
#include "soc/timer_periph.h"
#include "esp_app_trace.h"
#include "esp_dbg_stubs.h"
#include "esp_private/dbg_stubs.h"
#include "hal/timer_ll.h"
#if CONFIG_IDF_TARGET_ESP32
#include "esp32/rom/libc_stubs.h"
#elif CONFIG_IDF_TARGET_ESP32S2BETA
#include "esp32s2beta/rom/libc_stubs.h"
#endif
#if CONFIG_ESP32_GCOV_ENABLE
#if CONFIG_APPTRACE_GCOV_ENABLE
#define ESP_GCOV_DOWN_BUF_SIZE 4200
@ -31,37 +38,37 @@
#include "esp_log.h"
const static char *TAG = "esp_gcov_rtio";
#if GCC_NOT_5_2_0
void __gcov_dump(void);
void __gcov_reset(void);
#else
/* The next code for old GCC */
extern void __gcov_dump(void);
extern void __gcov_reset(void);
static void (*s_gcov_exit)(void);
/* Root of a program/shared-object state */
struct gcov_root
static struct syscall_stub_table s_gcov_stub_table;
static int gcov_stub_lock_try_acquire_recursive(_lock_t *lock)
{
void *list;
unsigned dumped : 1; /* counts have been dumped. */
unsigned run_counted : 1; /* run has been accounted for. */
struct gcov_root *next;
struct gcov_root *prev;
};
/* Per-dynamic-object gcov state. */
extern struct gcov_root __gcov_root;
static void esp_gcov_reset_status(void)
{
__gcov_root.dumped = 0;
__gcov_root.run_counted = 0;
if (*lock && uxSemaphoreGetCount((xSemaphoreHandle)(*lock)) == 0) {
// we can do nothing here, gcov dump is initiated with some resource locked
// which is also used by gcov functions
ESP_EARLY_LOGE(TAG, "Lock 0x%x is busy during GCOV dump! System state can be inconsistent after dump!", lock);
}
return pdTRUE;
}
#endif
static void gcov_stub_lock_acquire_recursive(_lock_t *lock)
{
gcov_stub_lock_try_acquire_recursive(lock);
}
static void gcov_stub_lock_release_recursive(_lock_t *lock)
{
}
static int esp_dbg_stub_gcov_dump_do(void)
{
int ret = ESP_OK;
FILE* old_stderr = stderr;
FILE* old_stdout = stdout;
struct syscall_stub_table* old_table = syscall_table_ptr_pro;
ESP_EARLY_LOGV(TAG, "Alloc apptrace down buf %d bytes", ESP_GCOV_DOWN_BUF_SIZE);
void *down_buf = malloc(ESP_GCOV_DOWN_BUF_SIZE);
@ -72,18 +79,22 @@ static int esp_dbg_stub_gcov_dump_do(void)
ESP_EARLY_LOGV(TAG, "Config apptrace down buf");
esp_apptrace_down_buffer_config(down_buf, ESP_GCOV_DOWN_BUF_SIZE);
ESP_EARLY_LOGV(TAG, "Dump data...");
#if GCC_NOT_5_2_0
// incase of dual-core chip APP and PRO CPUs share the same table, so it is safe to save only PRO's table
memcpy(&s_gcov_stub_table, old_table, sizeof(s_gcov_stub_table));
s_gcov_stub_table._lock_acquire_recursive = &gcov_stub_lock_acquire_recursive;
s_gcov_stub_table._lock_release_recursive = &gcov_stub_lock_release_recursive;
s_gcov_stub_table._lock_try_acquire_recursive = &gcov_stub_lock_try_acquire_recursive,
syscall_table_ptr_pro = &s_gcov_stub_table;
stderr = (FILE*) &__sf_fake_stderr;
stdout = (FILE*) &__sf_fake_stdout;
__gcov_dump();
// reset dump status to allow incremental data accumulation
__gcov_reset();
#else
ESP_EARLY_LOGV(TAG, "Check for dump handler %p", s_gcov_exit);
if (s_gcov_exit) {
s_gcov_exit();
// reset dump status to allow incremental data accumulation
esp_gcov_reset_status();
}
#endif
stdout = old_stdout;
stderr = old_stderr;
syscall_table_ptr_pro = old_table;
ESP_EARLY_LOGV(TAG, "Free apptrace down buf");
free(down_buf);
ESP_EARLY_LOGV(TAG, "Finish file transfer session");
@ -103,19 +114,17 @@ static int esp_dbg_stub_gcov_dump_do(void)
*/
static int esp_dbg_stub_gcov_entry(void)
{
#if GCC_NOT_5_2_0
return esp_dbg_stub_gcov_dump_do();
#else
int ret = ESP_OK;
// disable IRQs on this CPU, other CPU is halted by OpenOCD
unsigned irq_state = portENTER_CRITICAL_NESTED();
ret = esp_dbg_stub_gcov_dump_do();
portEXIT_CRITICAL_NESTED(irq_state);
return ret;
#endif
}
void esp_gcov_dump()
int gcov_rtio_atexit(void (*function)(void) __attribute__ ((unused)))
{
ESP_EARLY_LOGV(TAG, "%s", __FUNCTION__);
esp_dbg_stub_entry_set(ESP_DBG_STUB_ENTRY_GCOV, (uint32_t)&esp_dbg_stub_gcov_entry);
return 0;
}
void esp_gcov_dump(void)
{
// disable IRQs on this CPU, other CPU is halted by OpenOCD
unsigned irq_state = portENTER_CRITICAL_NESTED();
@ -125,13 +134,13 @@ void esp_gcov_dump()
#endif
while (!esp_apptrace_host_is_connected(ESP_APPTRACE_DEST_TRAX)) {
// to avoid complains that task watchdog got triggered for other tasks
TIMERG0.wdt_wprotect=TIMG_WDT_WKEY_VALUE;
TIMERG0.wdt_feed=1;
TIMERG0.wdt_wprotect=0;
timer_ll_wdt_set_protect(&TIMERG0, false);
timer_ll_wdt_feed(&TIMERG0);
timer_ll_wdt_set_protect(&TIMERG0, true);
// to avoid reboot on INT_WDT
TIMERG1.wdt_wprotect=TIMG_WDT_WKEY_VALUE;
TIMERG1.wdt_feed=1;
TIMERG1.wdt_wprotect=0;
timer_ll_wdt_set_protect(&TIMERG1, false);
timer_ll_wdt_feed(&TIMERG1);
timer_ll_wdt_set_protect(&TIMERG1, true);
}
esp_dbg_stub_gcov_dump_do();
@ -141,18 +150,6 @@ void esp_gcov_dump()
portEXIT_CRITICAL_NESTED(irq_state);
}
int gcov_rtio_atexit(void (*function)(void) __attribute__ ((unused)))
{
#if GCC_NOT_5_2_0
ESP_EARLY_LOGV(TAG, "%s", __FUNCTION__);
#else
ESP_EARLY_LOGV(TAG, "%s %p", __FUNCTION__, function);
s_gcov_exit = function;
#endif
esp_dbg_stub_entry_set(ESP_DBG_STUB_ENTRY_GCOV, (uint32_t)&esp_dbg_stub_gcov_entry);
return 0;
}
void *gcov_rtio_fopen(const char *path, const char *mode)
{
ESP_EARLY_LOGV(TAG, "%s '%s' '%s'", __FUNCTION__, path, mode);

View File

@ -0,0 +1,114 @@
// Copyright 2018 Espressif Systems (Shanghai) PTE LTD
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
#include <sdkconfig.h>
#define HEAP_TRACE_SRCFILE /* don't warn on inclusion here */
#include "esp_heap_trace.h"
#undef HEAP_TRACE_SRCFILE
#if CONFIG_SYSVIEW_ENABLE
#include "esp_app_trace.h"
#include "esp_sysview_trace.h"
#endif
#define STACK_DEPTH CONFIG_HEAP_TRACING_STACK_DEPTH
#ifdef CONFIG_HEAP_TRACING_TOHOST
#if !CONFIG_SYSVIEW_ENABLE
#error None of the heap tracing backends is enabled! You must enable SystemView compatible tracing to use this feature.
#endif
static bool s_tracing;
esp_err_t heap_trace_init_tohost(void)
{
if (s_tracing) {
return ESP_ERR_INVALID_STATE;
}
return ESP_OK;
}
esp_err_t heap_trace_start(heap_trace_mode_t mode_param)
{
#if CONFIG_SYSVIEW_ENABLE
esp_err_t ret = esp_sysview_heap_trace_start((uint32_t)-1);
if (ret != ESP_OK) {
return ret;
}
#endif
s_tracing = true;
return ESP_OK;
}
esp_err_t heap_trace_stop(void)
{
esp_err_t ret = ESP_ERR_NOT_SUPPORTED;
#if CONFIG_SYSVIEW_ENABLE
ret = esp_sysview_heap_trace_stop();
#endif
s_tracing = false;
return ret;
}
esp_err_t heap_trace_resume(void)
{
return heap_trace_start(HEAP_TRACE_ALL);
}
size_t heap_trace_get_count(void)
{
return 0;
}
esp_err_t heap_trace_get(size_t index, heap_trace_record_t *record)
{
return ESP_ERR_NOT_SUPPORTED;
}
void heap_trace_dump(void)
{
return;
}
/* Add a new allocation to the heap trace records */
static IRAM_ATTR void record_allocation(const heap_trace_record_t *record)
{
if (!s_tracing) {
return;
}
#if CONFIG_SYSVIEW_ENABLE
esp_sysview_heap_trace_alloc(record->address, record->size, record->alloced_by);
#endif
}
/* record a free event in the heap trace log
For HEAP_TRACE_ALL, this means filling in the freed_by pointer.
For HEAP_TRACE_LEAKS, this means removing the record from the log.
*/
static IRAM_ATTR void record_free(void *p, void **callers)
{
if (!s_tracing) {
return;
}
#if CONFIG_SYSVIEW_ENABLE
esp_sysview_heap_trace_free(p, callers);
#endif
}
#include "heap_trace.inc"
#endif /*CONFIG_HEAP_TRACING_TOHOST*/

View File

@ -25,7 +25,7 @@
#include <string.h>
#include "esp_app_trace.h"
#if CONFIG_ESP32_APPTRACE_ENABLE
#if CONFIG_APPTRACE_ENABLE
#define LOG_LOCAL_LEVEL CONFIG_LOG_DEFAULT_LEVEL
#include "esp_log.h"
@ -145,6 +145,9 @@ void *esp_apptrace_fopen(esp_apptrace_dest_t dest, const char *path, const char
esp_apptrace_fopen_args_t cmd_args;
ESP_EARLY_LOGV(TAG, "esp_apptrace_fopen '%s' '%s'", path, mode);
if (path == NULL || mode == NULL) {
return 0;
}
cmd_args.path = path;
cmd_args.path_len = strlen(path) + 1;
@ -213,6 +216,10 @@ size_t esp_apptrace_fwrite(esp_apptrace_dest_t dest, const void *ptr, size_t siz
ESP_EARLY_LOGV(TAG, "esp_apptrace_fwrite f %p l %d", stream, size*nmemb);
if (ptr == NULL) {
return 0;
}
cmd_args.buf = (void *)ptr;
cmd_args.size = size * nmemb;
cmd_args.file = stream;
@ -248,6 +255,10 @@ size_t esp_apptrace_fread(esp_apptrace_dest_t dest, void *ptr, size_t size, size
ESP_EARLY_LOGV(TAG, "esp_apptrace_fread f %p l %d", stream, size*nmemb);
if (ptr == NULL) {
return 0;
}
cmd_args.size = size * nmemb;
cmd_args.file = stream;
esp_err_t ret = esp_apptrace_file_cmd_send(dest, ESP_APPTRACE_FILE_CMD_FREAD, esp_apptrace_fread_args_prepare,

View File

@ -18,6 +18,10 @@
#include "esp_err.h"
#include "esp_app_trace_util.h" // ESP_APPTRACE_TMO_INFINITE
#ifdef __cplusplus
extern "C" {
#endif
/**
* Application trace data destinations bits.
*/
@ -33,7 +37,7 @@ typedef enum {
*
* @return ESP_OK on success, otherwise see esp_err_t
*/
esp_err_t esp_apptrace_init();
esp_err_t esp_apptrace_init(void);
/**
* @brief Configures down buffer.
@ -262,4 +266,8 @@ int esp_apptrace_fstop(esp_apptrace_dest_t dest);
*/
void esp_gcov_dump(void);
#ifdef __cplusplus
}
#endif
#endif

View File

@ -14,6 +14,10 @@
#ifndef ESP_APP_TRACE_UTIL_H_
#define ESP_APP_TRACE_UTIL_H_
#ifdef __cplusplus
extern "C" {
#endif
#include "freertos/FreeRTOS.h"
#include "esp_err.h"
@ -164,4 +168,8 @@ uint32_t esp_apptrace_rb_read_size_get(esp_apptrace_rb_t *rb);
*/
uint32_t esp_apptrace_rb_write_size_get(esp_apptrace_rb_t *rb);
#ifdef __cplusplus
}
#endif
#endif //ESP_APP_TRACE_UTIL_H_

View File

@ -0,0 +1,88 @@
// Copyright 2018 Espressif Systems (Shanghai) PTE LTD
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
#ifndef ESP_SYSVIEW_TRACE_H_
#define ESP_SYSVIEW_TRACE_H_
#ifdef __cplusplus
extern "C" {
#endif
#include <stdarg.h>
#include "esp_err.h"
#include "SEGGER_RTT.h" // SEGGER_RTT_ESP32_Flush
#include "esp_app_trace_util.h" // ESP_APPTRACE_TMO_INFINITE
/**
* @brief Flushes remaining data in SystemView trace buffer to host.
*
* @param tmo Timeout for operation (in us). Use ESP_APPTRACE_TMO_INFINITE to wait indefinetly.
*
* @return ESP_OK.
*/
static inline esp_err_t esp_sysview_flush(uint32_t tmo)
{
SEGGER_RTT_ESP32_Flush(0, tmo);
return ESP_OK;
}
/**
* @brief vprintf-like function to sent log messages to the host.
*
* @param format Address of format string.
* @param args List of arguments.
*
* @return Number of bytes written.
*/
int esp_sysview_vprintf(const char * format, va_list args);
/**
* @brief Starts SystemView heap tracing.
*
* @param tmo Timeout (in us) to wait for the host to be connected. Use -1 to wait forever.
*
* @return ESP_OK on success, ESP_ERR_TIMEOUT if operation has been timed out.
*/
esp_err_t esp_sysview_heap_trace_start(uint32_t tmo);
/**
* @brief Stops SystemView heap tracing.
*
* @return ESP_OK.
*/
esp_err_t esp_sysview_heap_trace_stop(void);
/**
* @brief Sends heap allocation event to the host.
*
* @param addr Address of allocated block.
* @param size Size of allocated block.
* @param callers Pointer to array with callstack addresses.
* Array size must be CONFIG_HEAP_TRACING_STACK_DEPTH.
*/
void esp_sysview_heap_trace_alloc(void *addr, uint32_t size, const void *callers);
/**
* @brief Sends heap de-allocation event to the host.
*
* @param addr Address of de-allocated block.
* @param callers Pointer to array with callstack addresses.
* Array size must be CONFIG_HEAP_TRACING_STACK_DEPTH.
*/
void esp_sysview_heap_trace_free(void *addr, const void *callers);
#ifdef __cplusplus
}
#endif
#endif //ESP_SYSVIEW_TRACE_H_

View File

@ -1,12 +1,18 @@
[mapping]
[mapping:app_trace]
archive: libapp_trace.a
entries:
* (noflash)
app_trace (noflash)
app_trace_util (noflash)
SEGGER_SYSVIEW (noflash)
SEGGER_RTT_esp32 (noflash)
SEGGER_SYSVIEW_Config_FreeRTOS (noflash)
SEGGER_SYSVIEW_FreeRTOS (noflash)
[mapping]
[mapping:driver]
archive: libdriver.a
entries:
: SYSVIEW_TS_SOURCE_TIMER_00 = y || SYSVIEW_TS_SOURCE_TIMER_01 = y
|| SYSVIEW_TS_SOURCE_TIMER_10 = y || SYSVIEW_TS_SOURCE_TIMER_11 = y
timer (noflash)
if SYSVIEW_TS_SOURCE_TIMER_00 = y || SYSVIEW_TS_SOURCE_TIMER_01 = y
|| SYSVIEW_TS_SOURCE_TIMER_10 = y || SYSVIEW_TS_SOURCE_TIMER_11 = y:
timer (noflash)
else:
* (default)

View File

@ -0,0 +1,23 @@
# idf_create_lcov_report
#
# Create coverage report.
function(idf_create_coverage_report report_dir)
set(gcov_tool ${CONFIG_SDK_TOOLPREFIX}gcov)
idf_build_get_property(project_name PROJECT_NAME)
add_custom_target(lcov-report
COMMENT "Generating coverage report in: ${report_dir}"
COMMAND ${CMAKE_COMMAND} -E echo "Using gcov: ${gcov_tool}"
COMMAND ${CMAKE_COMMAND} -E make_directory ${report_dir}/html
COMMAND lcov --gcov-tool ${gcov_tool} -c -d ${CMAKE_CURRENT_BINARY_DIR} -o ${report_dir}/${project_name}.info
COMMAND genhtml -o ${report_dir}/html ${report_dir}/${project_name}.info)
endfunction()
# idf_clean_coverage_report
#
# Clean coverage report.
function(idf_clean_coverage_report report_dir)
add_custom_target(cov-data-clean
COMMENT "Clean coverage report in: ${report_dir}"
COMMAND ${CMAKE_COMMAND} -E remove_directory ${report_dir})
endfunction()

View File

@ -0,0 +1,12 @@
# sdkconfig replacement configurations for deprecated options formatted as
# CONFIG_DEPRECATED_OPTION CONFIG_NEW_OPTION
CONFIG_ESP32_APPTRACE_DESTINATION CONFIG_APPTRACE_DESTINATION
CONFIG_ESP32_APPTRACE_DEST_NONE CONFIG_APPTRACE_DEST_NONE
CONFIG_ESP32_APPTRACE_DEST_TRAX CONFIG_APPTRACE_DEST_TRAX
CONFIG_ESP32_APPTRACE_ENABLE CONFIG_APPTRACE_ENABLE
CONFIG_ESP32_APPTRACE_LOCK_ENABLE CONFIG_APPTRACE_LOCK_ENABLE
CONFIG_ESP32_APPTRACE_ONPANIC_HOST_FLUSH_TMO CONFIG_APPTRACE_ONPANIC_HOST_FLUSH_TMO
CONFIG_ESP32_APPTRACE_POSTMORTEM_FLUSH_TRAX_THRESH CONFIG_APPTRACE_POSTMORTEM_FLUSH_THRESH
CONFIG_ESP32_APPTRACE_PENDING_DATA_SIZE_MAX CONFIG_APPTRACE_PENDING_DATA_SIZE_MAX
CONFIG_ESP32_GCOV_ENABLE CONFIG_APPTRACE_GCOV_ENABLE

View File

@ -285,12 +285,12 @@ Revision: $Rev: 5626 $
* RTT lock configuration fallback
*/
#ifndef SEGGER_RTT_LOCK
void SEGGER_SYSVIEW_X_RTT_Lock();
void SEGGER_SYSVIEW_X_RTT_Lock(void);
#define SEGGER_RTT_LOCK() SEGGER_SYSVIEW_X_RTT_Lock() // Lock RTT (nestable) (i.e. disable interrupts)
#endif
#ifndef SEGGER_RTT_UNLOCK
void SEGGER_SYSVIEW_X_RTT_Unlock();
void SEGGER_SYSVIEW_X_RTT_Unlock(void);
#define SEGGER_RTT_UNLOCK() SEGGER_SYSVIEW_X_RTT_Unlock() // Unlock RTT (nestable) (i.e. enable previous interrupt lock state)
#endif

View File

@ -65,6 +65,8 @@ Revision: $Rev: 5927 $
#ifndef SEGGER_SYSVIEW_CONF_H
#define SEGGER_SYSVIEW_CONF_H
#include "soc/soc.h"
/*********************************************************************
*
* Defines, fixed
@ -147,7 +149,7 @@ Revision: $Rev: 5927 $
* SystemView Id configuration
*/
//TODO: optimise it
#define SEGGER_SYSVIEW_ID_BASE 0x3F400000 // Default value for the lowest Id reported by the application. Can be overridden by the application via SEGGER_SYSVIEW_SetRAMBase(). (i.e. 0x20000000 when all Ids are an address in this RAM)
#define SEGGER_SYSVIEW_ID_BASE SOC_DROM_LOW // Default value for the lowest Id reported by the application. Can be overridden by the application via SEGGER_SYSVIEW_SetRAMBase(). (i.e. 0x20000000 when all Ids are an address in this RAM)
#define SEGGER_SYSVIEW_ID_SHIFT 0 // Number of bits to shift the Id to save bandwidth. (i.e. 2 when Ids are 4 byte aligned)
/*********************************************************************
@ -166,7 +168,7 @@ Revision: $Rev: 5927 $
#define SEGGER_SYSVIEW_GET_INTERRUPT_ID() SEGGER_SYSVIEW_X_GetInterruptId() // Get the currently active interrupt Id from the user-provided function.
#endif
unsigned SEGGER_SYSVIEW_X_SysView_Lock();
unsigned SEGGER_SYSVIEW_X_SysView_Lock(void);
void SEGGER_SYSVIEW_X_SysView_Unlock(unsigned int_state);
// to be recursive save IRQ status on the stack of the caller
#define SEGGER_SYSVIEW_LOCK() unsigned _SYSVIEW_int_state = SEGGER_SYSVIEW_X_SysView_Lock()

View File

@ -160,6 +160,7 @@ unsigned SEGGER_RTT_WriteSkipNoLock (unsigned BufferIndex, const voi
unsigned SEGGER_RTT_WriteString (unsigned BufferIndex, const char* s);
void SEGGER_RTT_WriteWithOverwriteNoLock(unsigned BufferIndex, const void* pBuffer, unsigned NumBytes);
void SEGGER_RTT_ESP32_FlushNoLock (unsigned long min_sz, unsigned long tmo);
void SEGGER_RTT_ESP32_Flush (unsigned long min_sz, unsigned long tmo);
//
// Function macro for performance optimization
//

View File

@ -1689,6 +1689,10 @@ void SEGGER_SYSVIEW_Stop(void) {
RECORD_END();
}
U8 SEGGER_SYSVIEW_Started(void) {
return _SYSVIEW_Globals.EnableState;
}
/*********************************************************************
*
* SEGGER_SYSVIEW_GetSysDesc()
@ -2678,7 +2682,7 @@ void SEGGER_SYSVIEW_ErrorfTarget(const char* s, ...) {
void SEGGER_SYSVIEW_Print(const char* s) {
U8* pPayload;
U8* pPayloadStart;
RECORD_START(SEGGER_SYSVIEW_INFO_SIZE + 2 * SEGGER_SYSVIEW_QUANTA_U32 + SEGGER_SYSVIEW_MAX_STRING_LEN);
RECORD_START(SEGGER_SYSVIEW_INFO_SIZE + 2 * SEGGER_SYSVIEW_QUANTA_U32 + SEGGER_SYSVIEW_MAX_STRING_LEN + 3/*1 or 3 bytes for string length*/);
//
pPayload = _EncodeStr(pPayloadStart, s, SEGGER_SYSVIEW_MAX_STRING_LEN);
ENCODE_U32(pPayload, SEGGER_SYSVIEW_LOG);

View File

@ -230,6 +230,8 @@ void SEGGER_SYSVIEW_GetSysDesc (void);
void SEGGER_SYSVIEW_SendTaskList (void);
void SEGGER_SYSVIEW_SendTaskInfo (const SEGGER_SYSVIEW_TASKINFO* pInfo);
void SEGGER_SYSVIEW_SendSysDesc (const char* sSysDesc);
// Checks whether tracing has been started
U8 SEGGER_SYSVIEW_Started(void);
/*********************************************************************
*

View File

@ -63,11 +63,26 @@ Revision: $Rev: 3734 $
*/
#include "freertos/FreeRTOS.h"
#include "SEGGER_SYSVIEW.h"
#include "rom/ets_sys.h"
#if CONFIG_IDF_TARGET_ESP32
#include "esp32/rom/ets_sys.h"
#include "esp32/clk.h"
#elif CONFIG_IDF_TARGET_ESP32S2BETA
#include "esp32s2beta/rom/ets_sys.h"
#include "esp32s2beta/clk.h"
#endif
#include "esp_app_trace.h"
#include "esp_app_trace_util.h"
#include "esp_intr_alloc.h"
#include "esp_clk.h"
#include "soc/soc.h"
#include "soc/interrupts.h"
#if CONFIG_IDF_TARGET_ESP32
#include "esp32/rom/ets_sys.h"
#include "esp32/clk.h"
#elif CONFIG_IDF_TARGET_ESP32S2BETA
#include "esp32s2beta/rom/ets_sys.h"
#include "esp32s2beta/clk.h"
#endif
extern const SEGGER_SYSVIEW_OS_API SYSVIEW_X_OS_TraceAPI;
@ -81,7 +96,7 @@ extern const SEGGER_SYSVIEW_OS_API SYSVIEW_X_OS_TraceAPI;
#define SYSVIEW_APP_NAME "FreeRTOS Application"
// The target device name
#define SYSVIEW_DEVICE_NAME "ESP32"
#define SYSVIEW_DEVICE_NAME CONFIG_IDF_TARGET
// Determine which timer to use as timestamp source
#if CONFIG_SYSVIEW_TS_SOURCE_CCOUNT
@ -123,14 +138,18 @@ extern const SEGGER_SYSVIEW_OS_API SYSVIEW_X_OS_TraceAPI;
#if TS_USE_CCOUNT
// CCOUNT is incremented at CPU frequency
#if CONFIG_IDF_TARGET_ESP32
#define SYSVIEW_TIMESTAMP_FREQ (CONFIG_ESP32_DEFAULT_CPU_FREQ_MHZ * 1000000)
#elif CONFIG_IDF_TARGET_ESP32S2BETA
#define SYSVIEW_TIMESTAMP_FREQ (CONFIG_ESP32S2_DEFAULT_CPU_FREQ_MHZ * 1000000)
#endif
#endif // TS_USE_CCOUNT
// System Frequency.
#define SYSVIEW_CPU_FREQ (esp_clk_cpu_freq())
// The lowest RAM address used for IDs (pointers)
#define SYSVIEW_RAM_BASE (0x3F400000)
#define SYSVIEW_RAM_BASE (SOC_DROM_LOW)
#if CONFIG_FREERTOS_CORETIMER_0
#define SYSTICK_INTR_ID (ETS_INTERNAL_TIMER0_INTR_SOURCE+ETS_INTERNAL_INTR_SOURCE_OFF)
@ -147,78 +166,6 @@ extern const SEGGER_SYSVIEW_OS_API SYSVIEW_X_OS_TraceAPI;
static esp_apptrace_lock_t s_sys_view_lock = {.mux = portMUX_INITIALIZER_UNLOCKED, .int_state = 0};
static const char * const s_isr_names[] = {
[0] = "WIFI_MAC",
[1] = "WIFI_NMI",
[2] = "WIFI_BB",
[3] = "BT_MAC",
[4] = "BT_BB",
[5] = "BT_BB_NMI",
[6] = "RWBT",
[7] = "RWBLE",
[8] = "RWBT_NMI",
[9] = "RWBLE_NMI",
[10] = "SLC0",
[11] = "SLC1",
[12] = "UHCI0",
[13] = "UHCI1",
[14] = "TG0_T0_LEVEL",
[15] = "TG0_T1_LEVEL",
[16] = "TG0_WDT_LEVEL",
[17] = "TG0_LACT_LEVEL",
[18] = "TG1_T0_LEVEL",
[19] = "TG1_T1_LEVEL",
[20] = "TG1_WDT_LEVEL",
[21] = "TG1_LACT_LEVEL",
[22] = "GPIO",
[23] = "GPIO_NMI",
[24] = "FROM_CPU0",
[25] = "FROM_CPU1",
[26] = "FROM_CPU2",
[27] = "FROM_CPU3",
[28] = "SPI0",
[29] = "SPI1",
[30] = "SPI2",
[31] = "SPI3",
[32] = "I2S0",
[33] = "I2S1",
[34] = "UART0",
[35] = "UART1",
[36] = "UART2",
[37] = "SDIO_HOST",
[38] = "ETH_MAC",
[39] = "PWM0",
[40] = "PWM1",
[41] = "PWM2",
[42] = "PWM3",
[43] = "LEDC",
[44] = "EFUSE",
[45] = "CAN",
[46] = "RTC_CORE",
[47] = "RMT",
[48] = "PCNT",
[49] = "I2C_EXT0",
[50] = "I2C_EXT1",
[51] = "RSA",
[52] = "SPI1_DMA",
[53] = "SPI2_DMA",
[54] = "SPI3_DMA",
[55] = "WDT",
[56] = "TIMER1",
[57] = "TIMER2",
[58] = "TG0_T0_EDGE",
[59] = "TG0_T1_EDGE",
[60] = "TG0_WDT_EDGE",
[61] = "TG0_LACT_EDGE",
[62] = "TG1_T0_EDGE",
[63] = "TG1_T1_EDGE",
[64] = "TG1_WDT_EDGE",
[65] = "TG1_LACT_EDGE",
[66] = "MMU_IA",
[67] = "MPU_IA",
[68] = "CACHE_IA",
};
/*********************************************************************
*
* _cbSendSystemDesc()
@ -231,9 +178,9 @@ static void _cbSendSystemDesc(void) {
SEGGER_SYSVIEW_SendSysDesc("N="SYSVIEW_APP_NAME",D="SYSVIEW_DEVICE_NAME",C=Xtensa,O=FreeRTOS");
snprintf(irq_str, sizeof(irq_str), "I#%d=SysTick", SYSTICK_INTR_ID);
SEGGER_SYSVIEW_SendSysDesc(irq_str);
size_t isr_count = sizeof(s_isr_names)/sizeof(s_isr_names[0]);
size_t isr_count = sizeof(esp_isr_names)/sizeof(esp_isr_names[0]);
for (size_t i = 0; i < isr_count; ++i) {
snprintf(irq_str, sizeof(irq_str), "I#%d=%s", ETS_INTERNAL_INTR_SOURCE_OFF + i, s_isr_names[i]);
snprintf(irq_str, sizeof(irq_str), "I#%d=%s", ETS_INTERNAL_INTR_SOURCE_OFF + i, esp_isr_names[i]);
SEGGER_SYSVIEW_SendSysDesc(irq_str);
}
}
@ -244,7 +191,7 @@ static void _cbSendSystemDesc(void) {
*
**********************************************************************
*/
static void SEGGER_SYSVIEW_TS_Init()
static void SEGGER_SYSVIEW_TS_Init(void)
{
/* We only need to initialize something if we use Timer Group.
* esp_timer and ccount can be used as is.
@ -316,7 +263,7 @@ void SEGGER_SYSVIEW_Conf(void) {
SEGGER_SYSVIEW_DisableEvents(disable_evts);
}
U32 SEGGER_SYSVIEW_X_GetTimestamp()
U32 SEGGER_SYSVIEW_X_GetTimestamp(void)
{
#if TS_USE_TIMERGROUP
uint64_t ts = 0;
@ -329,15 +276,15 @@ U32 SEGGER_SYSVIEW_X_GetTimestamp()
#endif
}
void SEGGER_SYSVIEW_X_RTT_Lock()
void SEGGER_SYSVIEW_X_RTT_Lock(void)
{
}
void SEGGER_SYSVIEW_X_RTT_Unlock()
void SEGGER_SYSVIEW_X_RTT_Unlock(void)
{
}
unsigned SEGGER_SYSVIEW_X_SysView_Lock()
unsigned SEGGER_SYSVIEW_X_SysView_Lock(void)
{
esp_apptrace_tmo_t tmo;
esp_apptrace_tmo_init(&tmo, SEGGER_LOCK_WAIT_TMO);

View File

@ -244,8 +244,10 @@ Notes:
#define traceQUEUE_SEND( pxQueue ) SYSVIEW_RecordU32x4(apiFastID_OFFSET + apiID_XQUEUEGENERICSEND, SEGGER_SYSVIEW_ShrinkId((U32)pxQueue), 0, 0, xCopyPosition)
#endif
#define traceQUEUE_SEND_FAILED( pxQueue ) SYSVIEW_RecordU32x4(apiFastID_OFFSET + apiID_XQUEUEGENERICSEND, SEGGER_SYSVIEW_ShrinkId((U32)pxQueue), (U32)pvItemToQueue, xTicksToWait, xCopyPosition)
#define traceQUEUE_SEND_FROM_ISR( pxQueue ) SEGGER_SYSVIEW_RecordU32x2(apiFastID_OFFSET + apiID_XQUEUEGENERICSENDFROMISR, SEGGER_SYSVIEW_ShrinkId((U32)pxQueue), (U32)pxHigherPriorityTaskWoken)
#define traceQUEUE_SEND_FROM_ISR_FAILED( pxQueue ) SEGGER_SYSVIEW_RecordU32x2(apiFastID_OFFSET + apiID_XQUEUEGENERICSENDFROMISR, SEGGER_SYSVIEW_ShrinkId((U32)pxQueue), (U32)pxHigherPriorityTaskWoken)
#define traceQUEUE_SEND_FROM_ISR( pxQueue ) SEGGER_SYSVIEW_RecordU32x4(apiFastID_OFFSET + apiID_XQUEUEGENERICSENDFROMISR, SEGGER_SYSVIEW_ShrinkId((U32)pxQueue), (U32)pvItemToQueue, (U32)pxHigherPriorityTaskWoken, xCopyPosition)
#define traceQUEUE_SEND_FROM_ISR_FAILED( pxQueue ) SEGGER_SYSVIEW_RecordU32x4(apiFastID_OFFSET + apiID_XQUEUEGENERICSENDFROMISR, SEGGER_SYSVIEW_ShrinkId((U32)pxQueue), (U32)pvItemToQueue, (U32)pxHigherPriorityTaskWoken, xCopyPosition)
#define traceQUEUE_GIVE_FROM_ISR( pxQueue ) SEGGER_SYSVIEW_RecordU32x2(apiFastID_OFFSET + apiID_XQUEUEGIVEFROMISR, SEGGER_SYSVIEW_ShrinkId((U32)pxQueue), (U32)pxHigherPriorityTaskWoken)
#define traceQUEUE_GIVE_FROM_ISR_FAILED( pxQueue ) SEGGER_SYSVIEW_RecordU32x2(apiFastID_OFFSET + apiID_XQUEUEGIVEFROMISR, SEGGER_SYSVIEW_ShrinkId((U32)pxQueue), (U32)pxHigherPriorityTaskWoken)
#if( portSTACK_GROWTH < 0 )
#define traceTASK_CREATE(pxNewTCB) if (pxNewTCB != NULL) { \

View File

@ -16,8 +16,13 @@
#include "freertos/FreeRTOS.h"
#include "SEGGER_RTT.h"
#include "SEGGER_SYSVIEW.h"
#include "SEGGER_SYSVIEW_Conf.h"
#include "rom/ets_sys.h"
#if CONFIG_IDF_TARGET_ESP32
#include "esp32/rom/ets_sys.h"
#elif CONFIG_IDF_TARGET_ESP32S2BETA
#include "esp32s2beta/rom/ets_sys.h"
#endif
#include "esp_app_trace.h"
#include "esp_log.h"
@ -27,8 +32,12 @@ const static char *TAG = "segger_rtt";
// size of down channel data buf
#define SYSVIEW_DOWN_BUF_SIZE 32
#define SEGGER_HOST_WAIT_TMO 500 //us
#define SEGGER_STOP_WAIT_TMO 1000000 //us
#if CONFIG_SYSVIEW_BUF_WAIT_TMO == -1
#define SEGGER_HOST_WAIT_TMO ESP_APPTRACE_TMO_INFINITE
#else
#define SEGGER_HOST_WAIT_TMO CONFIG_SYSVIEW_BUF_WAIT_TMO
#endif
static uint8_t s_events_buf[SYSVIEW_EVENTS_BUF_SZ];
static uint16_t s_events_buf_filled;
@ -57,9 +66,12 @@ static uint8_t s_down_buf[SYSVIEW_DOWN_BUF_SIZE];
*/
void SEGGER_RTT_ESP32_FlushNoLock(unsigned long min_sz, unsigned long tmo)
{
esp_err_t res = esp_apptrace_write(ESP_APPTRACE_DEST_TRAX, s_events_buf, s_events_buf_filled, tmo);
if (res != ESP_OK) {
ESP_LOGE(TAG, "Failed to flush buffered events (%d)!\n", res);
esp_err_t res;
if (s_events_buf_filled > 0) {
res = esp_apptrace_write(ESP_APPTRACE_DEST_TRAX, s_events_buf, s_events_buf_filled, tmo);
if (res != ESP_OK) {
ESP_LOGE(TAG, "Failed to flush buffered events (%d)!\n", res);
}
}
// flush even if we failed to write buffered events, because no new events will be sent after STOP
res = esp_apptrace_flush_nolock(ESP_APPTRACE_DEST_TRAX, min_sz, tmo);
@ -69,6 +81,27 @@ void SEGGER_RTT_ESP32_FlushNoLock(unsigned long min_sz, unsigned long tmo)
s_events_buf_filled = 0;
}
/*********************************************************************
*
* SEGGER_RTT_ESP32_Flush()
*
* Function description
* Flushes buffered events.
*
* Parameters
* min_sz Threshold for flushing data. If current filling level is above this value, data will be flushed. TRAX destinations only.
* tmo Timeout for operation (in us). Use ESP_APPTRACE_TMO_INFINITE to wait indefinetly.
*
* Return value
* None.
*/
void SEGGER_RTT_ESP32_Flush(unsigned long min_sz, unsigned long tmo)
{
SEGGER_SYSVIEW_LOCK();
SEGGER_RTT_ESP32_FlushNoLock(min_sz, tmo);
SEGGER_SYSVIEW_UNLOCK();
}
/*********************************************************************
*
* SEGGER_RTT_ReadNoLock()

View File

@ -0,0 +1,100 @@
// Copyright 2018 Espressif Systems (Shanghai) PTE LTD
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
#include <stdint.h>
#include <sdkconfig.h>
#include "SEGGER_SYSVIEW.h"
#include "SEGGER_RTT.h"
#include "esp_app_trace.h"
#include "freertos/FreeRTOS.h"
#include "freertos/task.h"
#include "esp_log.h"
const static char *TAG = "sysview_heap_trace";
#ifdef CONFIG_HEAP_TRACING_STACK_DEPTH
#define CALLSTACK_SIZE CONFIG_HEAP_TRACING_STACK_DEPTH
#else
#define CALLSTACK_SIZE 0
#endif
static SEGGER_SYSVIEW_MODULE s_esp_sysview_heap_module = {
.sModule = "ESP32 SystemView Heap Tracing Module",
.NumEvents = 2,
};
static bool s_mod_registered;
esp_err_t esp_sysview_heap_trace_start(uint32_t tmo)
{
uint32_t tmo_ticks = tmo/(1000*portTICK_PERIOD_MS);
ESP_EARLY_LOGV(TAG, "%s", __func__);
do {
if (tmo != (uint32_t)-1) {
// Currently timeout implementation is simple and has granularity of 1 OS tick,
// so just count down the number of times to call vTaskDelay
if (tmo_ticks-- == 0) {
return ESP_ERR_TIMEOUT;
}
}
vTaskDelay(1);
} while(!SEGGER_SYSVIEW_Started());
SEGGER_SYSVIEW_RegisterModule(&s_esp_sysview_heap_module);
s_mod_registered = true;
return ESP_OK;
}
esp_err_t esp_sysview_heap_trace_stop(void)
{
ESP_EARLY_LOGV(TAG, "%s", __func__);
SEGGER_RTT_ESP32_Flush(0, ESP_APPTRACE_TMO_INFINITE);
return ESP_OK;
}
void esp_sysview_heap_trace_alloc(const void *addr, uint32_t size, const void *callers)
{
U8 aPacket[SEGGER_SYSVIEW_INFO_SIZE + (2+CALLSTACK_SIZE)*SEGGER_SYSVIEW_QUANTA_U32];
U8* pPayload = SEGGER_SYSVIEW_PREPARE_PACKET(aPacket);
U32 *calls = (U32 *)callers;
if (!s_mod_registered) {
return;
}
ESP_EARLY_LOGV(TAG, "%s %p %lu", __func__, addr, size);
pPayload = SEGGER_SYSVIEW_EncodeU32(pPayload, (U32)addr);
pPayload = SEGGER_SYSVIEW_EncodeU32(pPayload, size);
for (int i = 0; i < CALLSTACK_SIZE; i++) {
pPayload = SEGGER_SYSVIEW_EncodeU32(pPayload, calls[i]);
}
SEGGER_SYSVIEW_SendPacket(&aPacket[0], pPayload, s_esp_sysview_heap_module.EventOffset + 0);
}
void esp_sysview_heap_trace_free(const void *addr, const void *callers)
{
U8 aPacket[SEGGER_SYSVIEW_INFO_SIZE + (1+CALLSTACK_SIZE)*SEGGER_SYSVIEW_QUANTA_U32];
U8* pPayload = SEGGER_SYSVIEW_PREPARE_PACKET(aPacket);
U32 *calls = (U32 *)callers;
if (!s_mod_registered) {
return;
}
ESP_EARLY_LOGV(TAG, "%s %p", __func__, addr);
pPayload = SEGGER_SYSVIEW_EncodeU32(pPayload, (U32)addr);
for (int i = 0; i < CALLSTACK_SIZE; i++) {
pPayload = SEGGER_SYSVIEW_EncodeU32(pPayload, calls[i]);
}
SEGGER_SYSVIEW_SendPacket(&aPacket[0], pPayload, s_esp_sysview_heap_module.EventOffset + 1);
}

View File

@ -0,0 +1,34 @@
// Copyright 2018 Espressif Systems (Shanghai) PTE LTD
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
#include <stdio.h>
#include <stdarg.h>
#include <sdkconfig.h>
#include "SEGGER_SYSVIEW_Int.h"
#include "freertos/FreeRTOS.h"
static portMUX_TYPE s_log_mutex = portMUX_INITIALIZER_UNLOCKED;
int esp_sysview_vprintf(const char * format, va_list args)
{
static char log_buffer[SEGGER_SYSVIEW_MAX_STRING_LEN];
portENTER_CRITICAL(&s_log_mutex);
size_t len = vsnprintf(log_buffer, sizeof(log_buffer), format, args);
if (len > sizeof(log_buffer) - 1) {
log_buffer[sizeof(log_buffer - 1)] = 0;
}
SEGGER_SYSVIEW_Print(log_buffer);
portEXIT_CRITICAL(&s_log_mutex);
return len;
}

View File

@ -1,6 +1,3 @@
set(COMPONENT_SRCDIRS ".")
set(COMPONENT_ADD_INCLUDEDIRS ".")
set(COMPONENT_REQUIRES unity)
register_component()
idf_component_register(SRC_DIRS "."
INCLUDE_DIRS "."
REQUIRES unity)

View File

@ -9,7 +9,7 @@
#include "freertos/FreeRTOS.h"
#include "freertos/semphr.h"
#include "freertos/task.h"
#if CONFIG_ESP32_APPTRACE_ENABLE == 1
#if CONFIG_APPTRACE_ENABLE == 1
#include "esp_app_trace.h"
#include "esp_app_trace_util.h"
@ -125,7 +125,7 @@ typedef struct {
static SemaphoreHandle_t s_print_lock;
#endif
static uint64_t esp_apptrace_test_ts_get();
static uint64_t esp_apptrace_test_ts_get(void);
static void esp_apptrace_test_timer_isr(void *arg)
{
@ -145,56 +145,16 @@ static void esp_apptrace_test_timer_isr(void *arg)
}
tim_arg->data.wr_cnt++;
if (tim_arg->group == 0) {
if (tim_arg->id == 0) {
TIMERG0.int_clr_timers.t0 = 1;
TIMERG0.hw_timer[0].update = 1;
TIMERG0.hw_timer[0].config.alarm_en = 1;
} else {
TIMERG0.int_clr_timers.t1 = 1;
TIMERG0.hw_timer[1].update = 1;
TIMERG0.hw_timer[1].config.alarm_en = 1;
}
}
if (tim_arg->group == 1) {
if (tim_arg->id == 0) {
TIMERG1.int_clr_timers.t0 = 1;
TIMERG1.hw_timer[0].update = 1;
TIMERG1.hw_timer[0].config.alarm_en = 1;
} else {
TIMERG1.int_clr_timers.t1 = 1;
TIMERG1.hw_timer[1].update = 1;
TIMERG1.hw_timer[1].config.alarm_en = 1;
}
}
timer_group_clr_intr_status_in_isr(tim_arg->group, tim_arg->id);
timer_group_enable_alarm_in_isr(tim_arg->group, tim_arg->id);
}
static void esp_apptrace_test_timer_isr_crash(void *arg)
{
esp_apptrace_test_timer_arg_t *tim_arg = (esp_apptrace_test_timer_arg_t *)arg;
if (tim_arg->group == 0) {
if (tim_arg->id == 0) {
TIMERG0.int_clr_timers.t0 = 1;
TIMERG0.hw_timer[0].update = 1;
TIMERG0.hw_timer[0].config.alarm_en = 1;
} else {
TIMERG0.int_clr_timers.t1 = 1;
TIMERG0.hw_timer[1].update = 1;
TIMERG0.hw_timer[1].config.alarm_en = 1;
}
}
if (tim_arg->group == 1) {
if (tim_arg->id == 0) {
TIMERG1.int_clr_timers.t0 = 1;
TIMERG1.hw_timer[0].update = 1;
TIMERG1.hw_timer[0].config.alarm_en = 1;
} else {
TIMERG1.int_clr_timers.t1 = 1;
TIMERG1.hw_timer[1].update = 1;
TIMERG1.hw_timer[1].config.alarm_en = 1;
}
}
timer_group_clr_intr_status_in_isr(tim_arg->group, tim_arg->id);
timer_group_enable_alarm_in_isr(tim_arg->group, tim_arg->id);
if (tim_arg->data.wr_cnt < ESP_APPTRACE_TEST_BLOCKS_BEFORE_CRASH) {
uint32_t *ts = (uint32_t *)(tim_arg->data.buf + sizeof(uint32_t));
*ts = (uint32_t)esp_apptrace_test_ts_get();//xthal_get_ccount();//xTaskGetTickCount();
@ -383,7 +343,7 @@ static void esp_apptrace_test_task_crash(void *p)
static int s_ts_timer_group, s_ts_timer_idx;
static uint64_t esp_apptrace_test_ts_get()
static uint64_t esp_apptrace_test_ts_get(void)
{
uint64_t ts = 0;
timer_get_counter_value(s_ts_timer_group, s_ts_timer_idx, &ts);
@ -413,7 +373,7 @@ static void esp_apptrace_test_ts_init(int timer_group, int timer_idx)
timer_start(timer_group, timer_idx);
}
static void esp_apptrace_test_ts_cleanup()
static void esp_apptrace_test_ts_cleanup(void)
{
timer_config_t config;
@ -850,28 +810,8 @@ static void esp_sysview_test_timer_isr(void *arg)
//ESP_APPTRACE_TEST_LOGI("tim-%d: IRQ %d/%d\n", tim_arg->id, tim_arg->group, tim_arg->timer);
if (tim_arg->group == 0) {
if (tim_arg->timer == 0) {
TIMERG0.int_clr_timers.t0 = 1;
TIMERG0.hw_timer[0].update = 1;
TIMERG0.hw_timer[0].config.alarm_en = 1;
} else {
TIMERG0.int_clr_timers.t1 = 1;
TIMERG0.hw_timer[1].update = 1;
TIMERG0.hw_timer[1].config.alarm_en = 1;
}
}
if (tim_arg->group == 1) {
if (tim_arg->timer == 0) {
TIMERG1.int_clr_timers.t0 = 1;
TIMERG1.hw_timer[0].update = 1;
TIMERG1.hw_timer[0].config.alarm_en = 1;
} else {
TIMERG1.int_clr_timers.t1 = 1;
TIMERG1.hw_timer[1].update = 1;
TIMERG1.hw_timer[1].config.alarm_en = 1;
}
}
timer_group_clr_intr_status_in_isr(tim_arg->group, tim_arg->id);
timer_group_enable_alarm_in_isr(tim_arg->group, tim_arg->id);
}
static void esp_sysviewtrace_test_task(void *p)

View File

@ -1,40 +1,60 @@
set(COMPONENT_SRCS "esp_ota_ops.c"
"esp_app_desc.c")
set(COMPONENT_ADD_INCLUDEDIRS "include")
idf_component_register(SRCS "esp_ota_ops.c"
"esp_app_desc.c"
INCLUDE_DIRS "include"
REQUIRES spi_flash partition_table bootloader_support)
set(COMPONENT_REQUIRES spi_flash partition_table bootloader_support)
register_component()
# esp_app_desc structure is added as an undefined symbol because otherwise the
# esp_app_desc structure is added as an undefined symbol because otherwise the
# linker will ignore this structure as it has no other files depending on it.
target_link_libraries(${COMPONENT_TARGET} "-u esp_app_desc")
target_link_libraries(${COMPONENT_LIB} INTERFACE "-u esp_app_desc")
# cut PROJECT_VER and PROJECT_NAME to required 32 characters.
string(SUBSTRING "${PROJECT_VER}" 0 31 PROJECT_VER_CUT)
string(SUBSTRING "${PROJECT_NAME}" 0 31 PROJECT_NAME_CUT)
idf_build_get_property(project_ver PROJECT_VER)
idf_build_get_property(project_name PROJECT_NAME)
string(SUBSTRING "${project_ver}" 0 31 PROJECT_VER_CUT)
string(SUBSTRING "${project_name}" 0 31 PROJECT_NAME_CUT)
set_source_files_properties(
SOURCE "esp_app_desc.c"
PROPERTIES COMPILE_DEFINITIONS
PROPERTIES COMPILE_DEFINITIONS
"PROJECT_VER=\"${PROJECT_VER_CUT}\"; PROJECT_NAME=\"${PROJECT_NAME_CUT}\"")
# Add custom target for generating empty otadata partition for flashing
if(OTADATA_PARTITION_OFFSET AND OTADATA_PARTITION_SIZE)
add_custom_command(OUTPUT "${IDF_BUILD_ARTIFACTS_DIR}/${BLANK_OTADATA_FILE}"
COMMAND ${PYTHON} ${IDF_PATH}/components/partition_table/parttool.py
--partition-type data --partition-subtype ota -q
--partition-table-file ${PARTITION_CSV_PATH} generate_blank_partition_file
--output "${IDF_BUILD_ARTIFACTS_DIR}/${BLANK_OTADATA_FILE}")
if(NOT BOOTLOADER_BUILD)
partition_table_get_partition_info(otadata_offset "--partition-type data --partition-subtype ota" "offset")
partition_table_get_partition_info(otadata_size "--partition-type data --partition-subtype ota" "size")
add_custom_target(blank_ota_data ALL DEPENDS "${IDF_BUILD_ARTIFACTS_DIR}/${BLANK_OTADATA_FILE}")
add_dependencies(flash blank_ota_data)
# Add custom target for generating empty otadata partition for flashing
if(otadata_size AND otadata_offset)
idf_build_get_property(build_dir BUILD_DIR)
set(blank_otadata_file ${build_dir}/ota_data_initial.bin)
idf_build_get_property(idf_path IDF_PATH)
idf_build_get_property(python PYTHON)
idf_component_get_property(partition_table_dir partition_table COMPONENT_DIR)
add_custom_command(OUTPUT ${blank_otadata_file}
COMMAND ${python} ${partition_table_dir}/gen_empty_partition.py
${otadata_size} ${blank_otadata_file})
add_custom_target(blank_ota_data ALL DEPENDS ${blank_otadata_file})
add_dependencies(flash blank_ota_data)
set(otatool_py ${python} ${COMPONENT_DIR}/otatool.py)
set(esptool_args --esptool-args before=${CONFIG_ESPTOOLPY_BEFORE} after=${CONFIG_ESPTOOLPY_AFTER})
add_custom_target(read_otadata DEPENDS "${PARTITION_CSV_PATH}"
COMMAND ${otatool_py} ${esptool_args}
--partition-table-file ${PARTITION_CSV_PATH}
--partition-table-offset ${PARTITION_TABLE_OFFSET}
read_otadata)
add_custom_target(erase_otadata DEPENDS "${PARTITION_CSV_PATH}"
COMMAND ${otatool_py} ${esptool_args}
--partition-table-file ${PARTITION_CSV_PATH}
--partition-table-offset ${PARTITION_TABLE_OFFSET}
erase_otadata)
esptool_py_flash_project_args(otadata ${otadata_offset} "${blank_otadata_file}" FLASH_IN_PROJECT)
endif()
endif()
set(otatool_py ${PYTHON} ${COMPONENT_PATH}/otatool.py)
add_custom_target(read_otadata DEPENDS "${PARTITION_CSV_PATH}"
COMMAND ${otatool_py} --partition-table-file ${PARTITION_CSV_PATH} read_otadata)
add_custom_target(erase_otadata DEPENDS "${PARTITION_CSV_PATH}"
COMMAND ${otatool_py} --partition-table-file ${PARTITION_CSV_PATH} erase_otadata)

View File

@ -22,4 +22,14 @@ menu "Application manager"
The PROJECT_NAME variable from the build system will not affect the firmware image.
This value will not be contained in the esp_app_desc structure.
config APP_RETRIEVE_LEN_ELF_SHA
int "The length of APP ELF SHA is stored in RAM(chars)"
default 16
range 8 64
help
At startup, the app will read this many hex characters from the embedded APP ELF SHA-256 hash value
and store it in static RAM. This ensures the app ELF SHA-256 value is always available
if it needs to be printed by the panic handler code.
Changing this value will change the size of a static buffer, in bytes.
endmenu # "Application manager"

View File

@ -8,10 +8,16 @@ PARTTOOL_PY := $(PYTHON) $(IDF_PATH)/components/partition_table/parttool.py
# Generate blank partition file
BLANK_OTA_DATA_FILE = $(BUILD_DIR_BASE)/ota_data_initial.bin
$(BLANK_OTA_DATA_FILE): partition_table_get_info $(PARTITION_TABLE_BIN) | check_python_dependencies
# Copy PARTITION_TABLE_CSV_PATH definition here from $IDF_PATH/components/partition_table/Makefile.projbuild
# to avoid undefined variables warning for PARTITION_TABLE_CSV_PATH
ifndef PARTITION_TABLE_CSV_PATH
PARTITION_TABLE_ROOT := $(call dequote,$(if $(CONFIG_PARTITION_TABLE_CUSTOM),$(PROJECT_PATH),$(IDF_PATH)/components/partition_table))
PARTITION_TABLE_CSV_PATH := $(call dequote,$(abspath $(PARTITION_TABLE_ROOT)/$(call dequote,$(CONFIG_PARTITION_TABLE_FILENAME))))
endif
$(BLANK_OTA_DATA_FILE): partition_table_get_info $(PARTITION_TABLE_CSV_PATH) | check_python_dependencies
$(shell if [ "$(OTA_DATA_OFFSET)" != "" ] && [ "$(OTA_DATA_SIZE)" != "" ]; then \
$(PARTTOOL_PY) --partition-type data --partition-subtype ota --partition-table-file $(PARTITION_TABLE_BIN) \
-q generate_blank_partition_file --output $(BLANK_OTA_DATA_FILE); \
$(PYTHON) $(IDF_PATH)/components/partition_table/gen_empty_partition.py $(OTA_DATA_SIZE) $(BLANK_OTA_DATA_FILE); \
fi; )
$(eval BLANK_OTA_DATA_FILE = $(shell if [ "$(OTA_DATA_OFFSET)" != "" ] && [ "$(OTA_DATA_SIZE)" != "" ]; then \
echo $(BLANK_OTA_DATA_FILE); else echo " "; fi) )
@ -22,17 +28,23 @@ blank_ota_data: $(BLANK_OTA_DATA_FILE)
# expand to empty values.
ESPTOOL_ALL_FLASH_ARGS += $(OTA_DATA_OFFSET) $(BLANK_OTA_DATA_FILE)
erase_otadata: $(PARTITION_TABLE_BIN) partition_table_get_info | check_python_dependencies
$(OTATOOL_PY) --partition-table-file $(PARTITION_TABLE_BIN) erase_otadata
ESPTOOL_ARGS := --esptool-args port=$(CONFIG_ESPTOOLPY_PORT) baud=$(CONFIG_ESPTOOLPY_BAUD) before=$(CONFIG_ESPTOOLPY_BEFORE) after=$(CONFIG_ESPTOOLPY_AFTER)
read_otadata: $(PARTITION_TABLE_BIN) partition_table_get_info | check_python_dependencies
$(OTATOOL_PY) --partition-table-file $(PARTITION_TABLE_BIN) read_otadata
erase_otadata: $(PARTITION_TABLE_CSV_PATH) partition_table_get_info | check_python_dependencies
$(OTATOOL_PY) $(ESPTOOL_ARGS) --partition-table-file $(PARTITION_TABLE_CSV_PATH) \
--partition-table-offset $(PARTITION_TABLE_OFFSET) \
erase_otadata
erase_ota: erase_otadata
@echo "WARNING: erase_ota is deprecated. Use erase_otadata instead."
read_otadata: $(PARTITION_TABLE_CSV_PATH) partition_table_get_info | check_python_dependencies
$(OTATOOL_PY) $(ESPTOOL_ARGS) --partition-table-file $(PARTITION_TABLE_CSV_PATH) \
--partition-table-offset $(partition_table_offset) \
read_otadata
all: blank_ota_data
flash: blank_ota_data
ifdef CONFIG_SECURE_FLASH_ENCRYPTION_MODE_DEVELOPMENT
encrypted-flash: blank_ota_data
endif
TMP_DEFINES := $(BUILD_DIR_BASE)/app_update/tmp_cppflags.txt
export TMP_DEFINES

View File

@ -34,8 +34,8 @@ const __attribute__((section(".rodata_desc"))) esp_app_desc_t esp_app_desc = {
#endif
.idf_ver = IDF_VER,
#ifdef CONFIG_APP_SECURE_VERSION
.secure_version = CONFIG_APP_SECURE_VERSION,
#ifdef CONFIG_BOOTLOADER_APP_SECURE_VERSION
.secure_version = CONFIG_BOOTLOADER_APP_SECURE_VERSION,
#else
.secure_version = 0,
#endif
@ -72,13 +72,35 @@ static inline char IRAM_ATTR to_hex_digit(unsigned val)
return (val < 10) ? ('0' + val) : ('a' + val - 10);
}
__attribute__((constructor)) void esp_ota_init_app_elf_sha256(void)
{
esp_ota_get_app_elf_sha256(NULL, 0);
}
/* The esp_app_desc.app_elf_sha256 should be possible to print in panic handler during cache is disabled.
* But because the cache is disabled the reading esp_app_desc.app_elf_sha256 is not right and
* can lead to a complete lock-up of the CPU.
* For this reason we do a reading of esp_app_desc.app_elf_sha256 while start up in esp_ota_init_app_elf_sha256()
* and keep it in the static s_app_elf_sha256 value.
*/
int IRAM_ATTR esp_ota_get_app_elf_sha256(char* dst, size_t size)
{
size_t n = MIN((size - 1) / 2, sizeof(esp_app_desc.app_elf_sha256));
const uint8_t* src = esp_app_desc.app_elf_sha256;
static char s_app_elf_sha256[CONFIG_APP_RETRIEVE_LEN_ELF_SHA / 2];
static bool first_call = true;
if (first_call) {
first_call = false;
const uint8_t* src = esp_app_desc.app_elf_sha256;
for (size_t i = 0; i < sizeof(s_app_elf_sha256); ++i) {
s_app_elf_sha256[i] = src[i];
}
}
if (dst == NULL || size == 0) {
return 0;
}
size_t n = MIN((size - 1) / 2, sizeof(s_app_elf_sha256));
for (size_t i = 0; i < n; ++i) {
dst[2*i] = to_hex_digit(src[i] >> 4);
dst[2*i + 1] = to_hex_digit(src[i] & 0xf);
dst[2*i] = to_hex_digit(s_app_elf_sha256[i] >> 4);
dst[2*i + 1] = to_hex_digit(s_app_elf_sha256[i] & 0xf);
}
dst[2*n] = 0;
return 2*n + 1;

View File

@ -32,18 +32,17 @@
#include "sdkconfig.h"
#include "esp_ota_ops.h"
#include "rom/queue.h"
#include "rom/crc.h"
#include "soc/dport_reg.h"
#include "sys/queue.h"
#include "esp32/rom/crc.h"
#include "esp_log.h"
#include "esp_flash_data_types.h"
#include "esp_flash_partitions.h"
#include "bootloader_common.h"
#include "sys/param.h"
#include "esp_system.h"
#include "esp_efuse.h"
#define SUB_TYPE_ID(i) (i & 0x0F)
#define SUB_TYPE_ID(i) (i & 0x0F)
typedef struct ota_ops_entry_ {
uint32_t handle;
@ -108,19 +107,12 @@ static esp_err_t image_validate(const esp_partition_t *partition, esp_image_load
return ESP_ERR_OTA_VALIDATE_FAILED;
}
#ifdef CONFIG_SECURE_SIGNED_ON_UPDATE
esp_err_t ret = esp_secure_boot_verify_signature(partition->address, data.image_len);
if (ret != ESP_OK) {
return ESP_ERR_OTA_VALIDATE_FAILED;
}
#endif
return ESP_OK;
}
static esp_ota_img_states_t set_new_state_otadata(void)
{
#ifdef CONFIG_APP_ROLLBACK_ENABLE
#ifdef CONFIG_BOOTLOADER_APP_ROLLBACK_ENABLE
ESP_LOGD(TAG, "Monitoring the first boot of the app is enabled.");
return ESP_OTA_IMG_NEW;
#else
@ -151,7 +143,7 @@ esp_err_t esp_ota_begin(const esp_partition_t *partition, size_t image_size, esp
return ESP_ERR_OTA_PARTITION_CONFLICT;
}
#ifdef CONFIG_APP_ROLLBACK_ENABLE
#ifdef CONFIG_BOOTLOADER_APP_ROLLBACK_ENABLE
esp_ota_img_states_t ota_state_running_part;
if (esp_ota_get_state_partition(running_partition, &ota_state_running_part) == ESP_OK) {
if (ota_state_running_part == ESP_OTA_IMG_PENDING_VERIFY) {
@ -165,7 +157,8 @@ esp_err_t esp_ota_begin(const esp_partition_t *partition, size_t image_size, esp
if ((image_size == 0) || (image_size == OTA_SIZE_UNKNOWN)) {
ret = esp_partition_erase_range(partition, 0, partition->size);
} else {
ret = esp_partition_erase_range(partition, 0, (image_size / SPI_FLASH_SEC_SIZE + 1) * SPI_FLASH_SEC_SIZE);
const int aligned_erase_size = (image_size + SPI_FLASH_SEC_SIZE - 1) & ~(SPI_FLASH_SEC_SIZE - 1);
ret = esp_partition_erase_range(partition, 0, aligned_erase_size);
}
if (ret != ESP_OK) {
@ -208,7 +201,7 @@ esp_err_t esp_ota_write(esp_ota_handle_t handle, const void *data, size_t size)
// must erase the partition before writing to it
assert(it->erased_size > 0 && "must erase the partition before writing to it");
if (it->wrote_size == 0 && it->partial_bytes == 0 && size > 0 && data_bytes[0] != ESP_IMAGE_HEADER_MAGIC) {
ESP_LOGE(TAG, "OTA image has invalid magic byte (expected 0xE9, saw 0x%02x", data_bytes[0]);
ESP_LOGE(TAG, "OTA image has invalid magic byte (expected 0xE9, saw 0x%02x)", data_bytes[0]);
return ESP_ERR_OTA_VALIDATE_FAILED;
}
@ -401,7 +394,7 @@ esp_err_t esp_ota_set_boot_partition(const esp_partition_t *partition)
return ESP_ERR_NOT_FOUND;
}
} else {
#ifdef CONFIG_APP_ANTI_ROLLBACK
#ifdef CONFIG_BOOTLOADER_APP_ANTI_ROLLBACK
esp_app_desc_t partition_app_desc;
esp_err_t err = esp_ota_get_partition_description(partition, &partition_app_desc);
if (err != ESP_OK) {
@ -589,7 +582,7 @@ esp_err_t esp_ota_get_partition_description(const esp_partition_t *partition, es
return ESP_OK;
}
#ifdef CONFIG_APP_ANTI_ROLLBACK
#ifdef CONFIG_BOOTLOADER_APP_ANTI_ROLLBACK
static esp_err_t esp_ota_set_anti_rollback(void) {
const esp_app_desc_t *app_desc = esp_ota_get_app_description();
return esp_efuse_update_secure_version(app_desc->secure_version);
@ -621,7 +614,7 @@ bool esp_ota_check_rollback_is_possible(void)
int last_active_ota = (~active_ota)&1;
const esp_partition_t *partition = NULL;
#ifndef CONFIG_APP_ANTI_ROLLBACK
#ifndef CONFIG_BOOTLOADER_APP_ANTI_ROLLBACK
if (valid_otadata[last_active_ota] == false) {
partition = esp_partition_find_first(ESP_PARTITION_TYPE_APP, ESP_PARTITION_SUBTYPE_APP_FACTORY, NULL);
if (partition != NULL) {
@ -637,7 +630,7 @@ bool esp_ota_check_rollback_is_possible(void)
partition = esp_partition_find_first(ESP_PARTITION_TYPE_APP, ESP_PARTITION_SUBTYPE_APP_OTA_MIN + slot, NULL);
if (partition != NULL) {
if(image_validate(partition, ESP_IMAGE_VERIFY_SILENT) == ESP_OK) {
#ifdef CONFIG_APP_ANTI_ROLLBACK
#ifdef CONFIG_BOOTLOADER_APP_ANTI_ROLLBACK
esp_app_desc_t app_desc;
if (esp_ota_get_partition_description(partition, &app_desc) == ESP_OK &&
esp_efuse_check_secure_version(app_desc.secure_version) == true) {
@ -668,7 +661,7 @@ static esp_err_t esp_ota_current_ota_is_workable(bool valid)
otadata[active_otadata].ota_state = ESP_OTA_IMG_VALID;
ESP_LOGD(TAG, "OTA[current] partition is marked as VALID");
esp_err_t err = rewrite_ota_seq(otadata, otadata[active_otadata].ota_seq, active_otadata, otadata_partition);
#ifdef CONFIG_APP_ANTI_ROLLBACK
#ifdef CONFIG_BOOTLOADER_APP_ANTI_ROLLBACK
if (err == ESP_OK) {
return esp_ota_set_anti_rollback();
}
@ -695,12 +688,12 @@ static esp_err_t esp_ota_current_ota_is_workable(bool valid)
return ESP_OK;
}
esp_err_t esp_ota_mark_app_valid_cancel_rollback()
esp_err_t esp_ota_mark_app_valid_cancel_rollback(void)
{
return esp_ota_current_ota_is_workable(true);
}
esp_err_t esp_ota_mark_app_invalid_rollback_and_reboot()
esp_err_t esp_ota_mark_app_invalid_rollback_and_reboot(void)
{
return esp_ota_current_ota_is_workable(false);
}
@ -723,7 +716,7 @@ static int get_last_invalid_otadata(const esp_ota_select_entry_t *two_otadata)
return num_invalid_otadata;
}
const esp_partition_t* esp_ota_get_last_invalid_partition()
const esp_partition_t* esp_ota_get_last_invalid_partition(void)
{
esp_ota_select_entry_t otadata[2];
if (read_otadata(otadata) == NULL) {

View File

@ -21,7 +21,7 @@
#include "esp_err.h"
#include "esp_partition.h"
#include "esp_image_format.h"
#include "esp_flash_data_types.h"
#include "esp_flash_partitions.h"
#ifdef __cplusplus
extern "C"
@ -221,7 +221,7 @@ esp_err_t esp_ota_get_partition_description(const esp_partition_t *partition, es
* @return
* - ESP_OK: if successful.
*/
esp_err_t esp_ota_mark_app_valid_cancel_rollback();
esp_err_t esp_ota_mark_app_valid_cancel_rollback(void);
/**
* @brief This function is called to roll back to the previously workable app with reboot.
@ -233,14 +233,14 @@ esp_err_t esp_ota_mark_app_valid_cancel_rollback();
* - ESP_FAIL: if not successful.
* - ESP_ERR_OTA_ROLLBACK_FAILED: The rollback is not possible due to flash does not have any apps.
*/
esp_err_t esp_ota_mark_app_invalid_rollback_and_reboot();
esp_err_t esp_ota_mark_app_invalid_rollback_and_reboot(void);
/**
* @brief Returns last partition with invalid state (ESP_OTA_IMG_INVALID or ESP_OTA_IMG_ABORTED).
*
* @return partition.
*/
const esp_partition_t* esp_ota_get_last_invalid_partition();
const esp_partition_t* esp_ota_get_last_invalid_partition(void);
/**
* @brief Returns state for given partition.

View File

@ -21,16 +21,20 @@ import argparse
import os
import sys
import binascii
import subprocess
import tempfile
import collections
import struct
__version__ = '1.0'
try:
from parttool import PartitionName, PartitionType, ParttoolTarget, PARTITION_TABLE_OFFSET
except ImportError:
COMPONENTS_PATH = os.path.expandvars(os.path.join("$IDF_PATH", "components"))
PARTTOOL_DIR = os.path.join(COMPONENTS_PATH, "partition_table")
IDF_COMPONENTS_PATH = os.path.expandvars(os.path.join("$IDF_PATH", "components"))
sys.path.append(PARTTOOL_DIR)
from parttool import PartitionName, PartitionType, ParttoolTarget, PARTITION_TABLE_OFFSET
PARTTOOL_PY = os.path.join(IDF_COMPONENTS_PATH, "partition_table", "parttool.py")
__version__ = '2.0'
SPI_FLASH_SEC_SIZE = 0x2000
@ -42,121 +46,72 @@ def status(msg):
print(msg)
def _invoke_parttool(parttool_args, args, output=False, partition=None):
invoke_args = []
class OtatoolTarget():
if partition:
invoke_args += [sys.executable, PARTTOOL_PY] + partition
else:
invoke_args += [sys.executable, PARTTOOL_PY, "--partition-type", "data", "--partition-subtype", "ota"]
OTADATA_PARTITION = PartitionType("data", "ota")
if quiet:
invoke_args += ["-q"]
def __init__(self, port=None, baud=None, partition_table_offset=PARTITION_TABLE_OFFSET, partition_table_file=None,
spi_flash_sec_size=SPI_FLASH_SEC_SIZE, esptool_args=[], esptool_write_args=[],
esptool_read_args=[], esptool_erase_args=[]):
self.target = ParttoolTarget(port, baud, partition_table_offset, partition_table_file, esptool_args,
esptool_write_args, esptool_read_args, esptool_erase_args)
self.spi_flash_sec_size = spi_flash_sec_size
if args.port != "":
invoke_args += ["--port", args.port]
temp_file = tempfile.NamedTemporaryFile(delete=False)
temp_file.close()
try:
self.target.read_partition(OtatoolTarget.OTADATA_PARTITION, temp_file.name)
with open(temp_file.name, "rb") as f:
self.otadata = f.read()
except Exception:
self.otadata = None
finally:
os.unlink(temp_file.name)
if args.partition_table_file:
invoke_args += ["--partition-table-file", args.partition_table_file]
def _check_otadata_partition(self):
if not self.otadata:
raise Exception("No otadata partition found")
if args.partition_table_offset:
invoke_args += ["--partition-table-offset", args.partition_table_offset]
def erase_otadata(self):
self._check_otadata_partition()
self.target.erase_partition(OtatoolTarget.OTADATA_PARTITION)
invoke_args += parttool_args
def _get_otadata_info(self):
info = []
if output:
return subprocess.check_output(invoke_args)
else:
return subprocess.check_call(invoke_args)
otadata_info = collections.namedtuple("otadata_info", "seq crc")
for i in range(2):
start = i * (self.spi_flash_sec_size >> 1)
def _get_otadata_contents(args, check=True):
global quiet
seq = bytearray(self.otadata[start:start + 4])
crc = bytearray(self.otadata[start + 28:start + 32])
if check:
check_args = ["get_partition_info", "--info", "offset", "size"]
seq = struct.unpack('>I', seq)
crc = struct.unpack('>I', crc)
quiet = True
output = _invoke_parttool(check_args, args, True).split(b" ")
quiet = args.quiet
info.append(otadata_info(seq[0], crc[0]))
if not output:
raise RuntimeError("No ota_data partition found")
return info
with tempfile.NamedTemporaryFile(delete=False) as f:
f_name = f.name
def _get_partition_id_from_ota_id(self, ota_id):
if isinstance(ota_id, int):
return PartitionType("app", "ota_" + str(ota_id))
else:
return PartitionName(ota_id)
try:
invoke_args = ["read_partition", "--output", f_name]
_invoke_parttool(invoke_args, args)
with open(f_name, "rb") as f:
contents = f.read()
finally:
os.unlink(f_name)
def switch_ota_partition(self, ota_id):
self._check_otadata_partition()
return contents
sys.path.append(PARTTOOL_DIR)
import gen_esp32part as gen
def _get_otadata_status(otadata_contents):
status = []
otadata_status = collections.namedtuple("otadata_status", "seq crc")
for i in range(2):
start = i * (SPI_FLASH_SEC_SIZE >> 1)
seq = bytearray(otadata_contents[start:start + 4])
crc = bytearray(otadata_contents[start + 28:start + 32])
seq = struct.unpack('>I', seq)
crc = struct.unpack('>I', crc)
status.append(otadata_status(seq[0], crc[0]))
return status
def read_otadata(args):
status("Reading ota_data partition contents...")
otadata_info = _get_otadata_contents(args)
otadata_info = _get_otadata_status(otadata_info)
print(otadata_info)
print("\t\t{:11}\t{:8s}|\t{:8s}\t{:8s}".format("OTA_SEQ", "CRC", "OTA_SEQ", "CRC"))
print("Firmware: 0x{:8x} \t 0x{:8x} |\t0x{:8x} \t 0x{:8x}".format(otadata_info[0].seq, otadata_info[0].crc,
otadata_info[1].seq, otadata_info[1].crc))
def erase_otadata(args):
status("Erasing ota_data partition contents...")
_invoke_parttool(["erase_partition"], args)
status("Erased ota_data partition contents")
def switch_otadata(args):
sys.path.append(os.path.join(IDF_COMPONENTS_PATH, "partition_table"))
import gen_esp32part as gen
with tempfile.NamedTemporaryFile(delete=False) as f:
f_name = f.name
try:
def is_otadata_status_valid(status):
def is_otadata_info_valid(status):
seq = status.seq % (1 << 32)
crc = hex(binascii.crc32(struct.pack("I", seq), 0xFFFFFFFF) % (1 << 32))
return seq < (int('0xFFFFFFFF', 16) % (1 << 32)) and status.crc == crc
status("Looking for ota app partitions...")
# In order to get the number of ota app partitions, we need the partition table
partition_table = None
invoke_args = ["get_partition_info", "--table", f_name]
_invoke_parttool(invoke_args, args)
partition_table = open(f_name, "rb").read()
partition_table = gen.PartitionTable.from_binary(partition_table)
partition_table = self.target.partition_table
ota_partitions = list()
@ -171,39 +126,36 @@ def switch_otadata(args):
ota_partitions = sorted(ota_partitions, key=lambda p: p.subtype)
if not ota_partitions:
raise RuntimeError("No ota app partitions found")
status("Verifying partition to switch to exists...")
raise Exception("No ota app partitions found")
# Look for the app partition to switch to
ota_partition_next = None
try:
if args.name:
ota_partition_next = filter(lambda p: p.name == args.name, ota_partitions)
if isinstance(ota_id, int):
ota_partition_next = filter(lambda p: p.subtype - gen.MIN_PARTITION_SUBTYPE_APP_OTA == ota_id, ota_partitions)
else:
ota_partition_next = filter(lambda p: p.subtype - gen.MIN_PARTITION_SUBTYPE_APP_OTA == args.slot, ota_partitions)
ota_partition_next = filter(lambda p: p.name == ota_id, ota_partitions)
ota_partition_next = list(ota_partition_next)[0]
except IndexError:
raise RuntimeError("Partition to switch to not found")
raise Exception("Partition to switch to not found")
otadata_contents = _get_otadata_contents(args)
otadata_status = _get_otadata_status(otadata_contents)
otadata_info = self._get_otadata_info()
# Find the copy to base the computation for ota sequence number on
otadata_compute_base = -1
# Both are valid, take the max as computation base
if is_otadata_status_valid(otadata_status[0]) and is_otadata_status_valid(otadata_status[1]):
if otadata_status[0].seq >= otadata_status[1].seq:
if is_otadata_info_valid(otadata_info[0]) and is_otadata_info_valid(otadata_info[1]):
if otadata_info[0].seq >= otadata_info[1].seq:
otadata_compute_base = 0
else:
otadata_compute_base = 1
# Only one copy is valid, use that
elif is_otadata_status_valid(otadata_status[0]):
elif is_otadata_info_valid(otadata_info[0]):
otadata_compute_base = 0
elif is_otadata_status_valid(otadata_status[1]):
elif is_otadata_info_valid(otadata_info[1]):
otadata_compute_base = 1
# Both are invalid (could be initial state - all 0xFF's)
else:
@ -216,7 +168,7 @@ def switch_otadata(args):
# Find the next ota sequence number
if otadata_compute_base == 0 or otadata_compute_base == 1:
base_seq = otadata_status[otadata_compute_base].seq % (1 << 32)
base_seq = otadata_info[otadata_compute_base].seq % (1 << 32)
i = 0
while base_seq > target_seq % ota_partitions_num + i * ota_partitions_num:
@ -231,47 +183,68 @@ def switch_otadata(args):
ota_seq_crc_next = binascii.crc32(ota_seq_next, 0xFFFFFFFF) % (1 << 32)
ota_seq_crc_next = struct.pack("I", ota_seq_crc_next)
with open(f_name, "wb") as otadata_next_file:
start = (1 if otadata_compute_base == 0 else 0) * (SPI_FLASH_SEC_SIZE >> 1)
temp_file = tempfile.NamedTemporaryFile(delete=False)
temp_file.close()
otadata_next_file.write(otadata_contents)
try:
with open(temp_file.name, "wb") as otadata_next_file:
start = (1 if otadata_compute_base == 0 else 0) * (self.spi_flash_sec_size >> 1)
otadata_next_file.seek(start)
otadata_next_file.write(ota_seq_next)
otadata_next_file.write(self.otadata)
otadata_next_file.seek(start + 28)
otadata_next_file.write(ota_seq_crc_next)
otadata_next_file.seek(start)
otadata_next_file.write(ota_seq_next)
otadata_next_file.flush()
otadata_next_file.seek(start + 28)
otadata_next_file.write(ota_seq_crc_next)
_invoke_parttool(["write_partition", "--input", f_name], args)
status("Updated ota_data partition")
finally:
os.unlink(f_name)
otadata_next_file.flush()
self.target.write_partition(OtatoolTarget.OTADATA_PARTITION, temp_file.name)
finally:
os.unlink(temp_file.name)
def read_ota_partition(self, ota_id, output):
self.target.read_partition(self._get_partition_id_from_ota_id(ota_id), output)
def write_ota_partition(self, ota_id, input):
self.target.write_partition(self._get_partition_id_from_ota_id(ota_id), input)
def erase_ota_partition(self, ota_id):
self.target.erase_partition(self._get_partition_id_from_ota_id(ota_id))
def _get_partition_specifier(args):
if args.name:
return ["--partition-name", args.name]
else:
return ["--partition-type", "app", "--partition-subtype", "ota_" + str(args.slot)]
def _read_otadata(target):
target._check_otadata_partition()
otadata_info = target._get_otadata_info()
print(" {:8s} \t {:8s} | \t {:8s} \t {:8s}".format("OTA_SEQ", "CRC", "OTA_SEQ", "CRC"))
print("Firmware: 0x{:8x} \t0x{:8x} | \t0x{:8x} \t 0x{:8x}".format(otadata_info[0].seq, otadata_info[0].crc,
otadata_info[1].seq, otadata_info[1].crc))
def read_ota_partition(args):
invoke_args = ["read_partition", "--output", args.output]
_invoke_parttool(invoke_args, args, partition=_get_partition_specifier(args))
status("Read ota partition contents to file {}".format(args.output))
def _erase_otadata(target):
target.erase_otadata()
status("Erased ota_data partition contents")
def write_ota_partition(args):
invoke_args = ["write_partition", "--input", args.input]
_invoke_parttool(invoke_args, args, partition=_get_partition_specifier(args))
status("Written contents of file {} to ota partition".format(args.input))
def _switch_ota_partition(target, ota_id):
target.switch_ota_partition(ota_id)
def erase_ota_partition(args):
invoke_args = ["erase_partition"]
_invoke_parttool(invoke_args, args, partition=_get_partition_specifier(args))
def _read_ota_partition(target, ota_id, output):
target.read_ota_partition(ota_id, output)
status("Read ota partition contents to file {}".format(output))
def _write_ota_partition(target, ota_id, input):
target.write_ota_partition(ota_id, input)
status("Written contents of file {} to ota partition".format(input))
def _erase_ota_partition(target, ota_id):
target.erase_ota_partition(ota_id)
status("Erased contents of ota partition")
@ -281,20 +254,29 @@ def main():
parser = argparse.ArgumentParser("ESP-IDF OTA Partitions Tool")
parser.add_argument("--quiet", "-q", help="suppress stderr messages", action="store_true")
parser.add_argument("--esptool-args", help="additional main arguments for esptool", nargs="+")
parser.add_argument("--esptool-write-args", help="additional subcommand arguments for esptool write_flash", nargs="+")
parser.add_argument("--esptool-read-args", help="additional subcommand arguments for esptool read_flash", nargs="+")
parser.add_argument("--esptool-erase-args", help="additional subcommand arguments for esptool erase_region", nargs="+")
# There are two possible sources for the partition table: a device attached to the host
# or a partition table CSV/binary file. These sources are mutually exclusive.
partition_table_info_source_args = parser.add_mutually_exclusive_group()
parser.add_argument("--port", "-p", help="port where the device to read the partition table from is attached")
partition_table_info_source_args.add_argument("--port", "-p", help="port where the device to read the partition table from is attached", default="")
partition_table_info_source_args.add_argument("--partition-table-file", "-f", help="file (CSV/binary) to read the partition table from", default="")
parser.add_argument("--baud", "-b", help="baudrate to use", type=int)
parser.add_argument("--partition-table-offset", "-o", help="offset to read the partition table from", default="0x8000")
parser.add_argument("--partition-table-offset", "-o", help="offset to read the partition table from", type=str)
parser.add_argument("--partition-table-file", "-f", help="file (CSV/binary) to read the partition table from; \
overrides device attached to specified port as the partition table source when defined")
subparsers = parser.add_subparsers(dest="operation", help="run otatool -h for additional help")
spi_flash_sec_size = argparse.ArgumentParser(add_help=False)
spi_flash_sec_size.add_argument("--spi-flash-sec-size", help="value of SPI_FLASH_SEC_SIZE macro", type=str)
# Specify the supported operations
subparsers.add_parser("read_otadata", help="read otadata partition")
subparsers.add_parser("read_otadata", help="read otadata partition", parents=[spi_flash_sec_size])
subparsers.add_parser("erase_otadata", help="erase otadata partition")
slot_or_name_parser = argparse.ArgumentParser(add_help=False)
@ -302,7 +284,7 @@ def main():
slot_or_name_parser_args.add_argument("--slot", help="slot number of the ota partition", type=int)
slot_or_name_parser_args.add_argument("--name", help="name of the ota partition")
subparsers.add_parser("switch_otadata", help="switch otadata partition", parents=[slot_or_name_parser])
subparsers.add_parser("switch_ota_partition", help="switch otadata partition", parents=[slot_or_name_parser, spi_flash_sec_size])
read_ota_partition_subparser = subparsers.add_parser("read_ota_partition", help="read contents of an ota partition", parents=[slot_or_name_parser])
read_ota_partition_subparser.add_argument("--output", help="file to write the contents of the ota partition to")
@ -322,17 +304,84 @@ def main():
parser.print_help()
sys.exit(1)
# Else execute the operation
operation_func = globals()[args.operation]
target_args = {}
if args.port:
target_args["port"] = args.port
if args.partition_table_file:
target_args["partition_table_file"] = args.partition_table_file
if args.partition_table_offset:
target_args["partition_table_offset"] = int(args.partition_table_offset, 0)
try:
if args.spi_flash_sec_size:
target_args["spi_flash_sec_size"] = int(args.spi_flash_sec_size, 0)
except AttributeError:
pass
if args.esptool_args:
target_args["esptool_args"] = args.esptool_args
if args.esptool_write_args:
target_args["esptool_write_args"] = args.esptool_write_args
if args.esptool_read_args:
target_args["esptool_read_args"] = args.esptool_read_args
if args.esptool_erase_args:
target_args["esptool_erase_args"] = args.esptool_erase_args
if args.baud:
target_args["baud"] = args.baud
target = OtatoolTarget(**target_args)
# Create the operation table and execute the operation
common_args = {'target':target}
ota_id = []
try:
if args.name is not None:
ota_id = ["name"]
else:
if args.slot is not None:
ota_id = ["slot"]
except AttributeError:
pass
otatool_ops = {
'read_otadata':(_read_otadata, []),
'erase_otadata':(_erase_otadata, []),
'switch_ota_partition':(_switch_ota_partition, ota_id),
'read_ota_partition':(_read_ota_partition, ["output"] + ota_id),
'write_ota_partition':(_write_ota_partition, ["input"] + ota_id),
'erase_ota_partition':(_erase_ota_partition, ota_id)
}
(op, op_args) = otatool_ops[args.operation]
for op_arg in op_args:
common_args.update({op_arg:vars(args)[op_arg]})
try:
common_args['ota_id'] = common_args.pop('name')
except KeyError:
try:
common_args['ota_id'] = common_args.pop('slot')
except KeyError:
pass
if quiet:
# If exceptions occur, suppress and exit quietly
try:
operation_func(args)
op(**common_args)
except Exception:
sys.exit(2)
else:
operation_func(args)
op(**common_args)
if __name__ == '__main__':

View File

@ -1,9 +0,0 @@
# Set empty otadata partition file for flashing, if OTA data partition in
# partition table
# (NB: because of component dependency, we know partition_table
# project_include.cmake has already been included.)
if(OTADATA_PARTITION_OFFSET AND OTADATA_PARTITION_SIZE AND IDF_BUILD_ARTIFACTS)
set(BLANK_OTADATA_FILE "ota_data_initial.bin")
endif()

View File

@ -1,6 +1,4 @@
set(COMPONENT_SRCDIRS ".")
set(COMPONENT_ADD_INCLUDEDIRS ".")
set(COMPONENT_REQUIRES unity test_utils app_update bootloader_support nvs_flash)
register_component()
idf_component_register(SRC_DIRS "."
INCLUDE_DIRS "."
REQUIRES unity test_utils app_update bootloader_support nvs_flash
)

View File

@ -4,7 +4,7 @@
TEST_CASE("esp_ota_get_app_elf_sha256 test", "[esp_app_desc]")
{
const int sha256_hex_len = 64;
const int sha256_hex_len = CONFIG_APP_RETRIEVE_LEN_ELF_SHA;
char dst[sha256_hex_len + 2];
const char fill = 0xcc;
int res;

View File

@ -58,7 +58,7 @@ TEST_CASE("esp_ota_get_next_update_partition logic", "[ota]")
TEST_ASSERT_NOT_NULL(ota_1);
TEST_ASSERT_NULL(ota_2); /* this partition shouldn't exist in test partition table */
TEST_ASSERT_EQUAL_PTR(factory, running); /* this may not be true if/when we get OTA tests that do OTA updates */
TEST_ASSERT_EQUAL_PTR(factory, running); /* this may not be true if/when we get OTA tests that do OTA updates */
/* (The test steps verify subtypes before verifying pointer equality, because the failure messages are more readable
this way.)

View File

@ -5,10 +5,15 @@
#include <esp_types.h>
#include <stdio.h>
#include "string.h"
#include "sdkconfig.h"
#include "rom/spi_flash.h"
#include "rom/rtc.h"
#include "rom/ets_sys.h"
#if CONFIG_IDF_TARGET_ESP32
#include "esp32/rom/spi_flash.h"
#include "esp32/rom/rtc.h"
#elif CONFIG_IDF_TARGET_ESP32S2BETA
#include "esp32s2beta/rom/spi_flash.h"
#include "esp32s2beta/rom/rtc.h"
#endif
#include "freertos/FreeRTOS.h"
#include "freertos/task.h"
@ -28,8 +33,8 @@
#include "nvs_flash.h"
#include "driver/gpio.h"
#include "esp_sleep.h"
#include "sdkconfig.h"
RTC_DATA_ATTR static int boot_count = 0;
static const char *TAG = "ota_test";
@ -117,7 +122,7 @@ static void reboot_as_deep_sleep(void)
/* @brief Copies a current app to next partition (OTA0-15), after that ESP is rebooting and run this (the next) OTAx.
*/
static void copy_current_app_to_next_part_and_reboot()
static void copy_current_app_to_next_part_and_reboot(void)
{
const esp_partition_t *cur_app = esp_ota_get_running_partition();
copy_current_app_to_next_part(cur_app, get_next_update_partition());
@ -239,7 +244,7 @@ static void reset_output_pin(uint32_t num_pin)
static void mark_app_valid(void)
{
#ifdef CONFIG_APP_ROLLBACK_ENABLE
#ifdef CONFIG_BOOTLOADER_APP_ROLLBACK_ENABLE
TEST_ESP_OK(esp_ota_mark_app_valid_cancel_rollback());
#endif
}
@ -263,19 +268,19 @@ static void test_flow1(void)
case 2:
ESP_LOGI(TAG, "Factory");
TEST_ASSERT_EQUAL(ESP_PARTITION_SUBTYPE_APP_FACTORY, cur_app->subtype);
copy_current_app_to_next_part_and_reboot(cur_app);
copy_current_app_to_next_part_and_reboot();
break;
case 3:
ESP_LOGI(TAG, "OTA0");
TEST_ASSERT_EQUAL(ESP_PARTITION_SUBTYPE_APP_OTA_0, cur_app->subtype);
mark_app_valid();
copy_current_app_to_next_part_and_reboot(cur_app);
copy_current_app_to_next_part_and_reboot();
break;
case 4:
ESP_LOGI(TAG, "OTA1");
TEST_ASSERT_EQUAL(ESP_PARTITION_SUBTYPE_APP_OTA_1, cur_app->subtype);
mark_app_valid();
copy_current_app_to_next_part_and_reboot(cur_app);
copy_current_app_to_next_part_and_reboot();
break;
case 5:
ESP_LOGI(TAG, "OTA0");
@ -295,7 +300,7 @@ static void test_flow1(void)
// 3 Stage: run OTA0 -> check it -> copy OTA0 to OTA1 -> reboot --//--
// 4 Stage: run OTA1 -> check it -> copy OTA1 to OTA0 -> reboot --//--
// 5 Stage: run OTA0 -> check it -> erase OTA_DATA for next tests -> PASS
TEST_CASE_MULTIPLE_STAGES("Switching between factory, OTA0, OTA1, OTA0", "[app_update][reset=DEEPSLEEP_RESET, DEEPSLEEP_RESET, DEEPSLEEP_RESET, DEEPSLEEP_RESET]", start_test, test_flow1, test_flow1, test_flow1, test_flow1);
TEST_CASE_MULTIPLE_STAGES("Switching between factory, OTA0, OTA1, OTA0", "[app_update][timeout=90][reset=DEEPSLEEP_RESET, DEEPSLEEP_RESET, DEEPSLEEP_RESET, DEEPSLEEP_RESET]", start_test, test_flow1, test_flow1, test_flow1, test_flow1);
static void test_flow2(void)
{
@ -306,7 +311,7 @@ static void test_flow2(void)
case 2:
ESP_LOGI(TAG, "Factory");
TEST_ASSERT_EQUAL(ESP_PARTITION_SUBTYPE_APP_FACTORY, cur_app->subtype);
copy_current_app_to_next_part_and_reboot(cur_app);
copy_current_app_to_next_part_and_reboot();
break;
case 3:
ESP_LOGI(TAG, "OTA0");
@ -332,7 +337,7 @@ static void test_flow2(void)
// 2 Stage: run factory -> check it -> copy factory to OTA0 -> reboot --//--
// 3 Stage: run OTA0 -> check it -> corrupt ota data -> reboot --//--
// 4 Stage: run factory -> check it -> erase OTA_DATA for next tests -> PASS
TEST_CASE_MULTIPLE_STAGES("Switching between factory, OTA0, corrupt ota_sec1, factory", "[app_update][reset=DEEPSLEEP_RESET, DEEPSLEEP_RESET, DEEPSLEEP_RESET]", start_test, test_flow2, test_flow2, test_flow2);
TEST_CASE_MULTIPLE_STAGES("Switching between factory, OTA0, corrupt ota_sec1, factory", "[app_update][timeout=90][reset=DEEPSLEEP_RESET, DEEPSLEEP_RESET, DEEPSLEEP_RESET]", start_test, test_flow2, test_flow2, test_flow2);
static void test_flow3(void)
{
@ -343,13 +348,13 @@ static void test_flow3(void)
case 2:
ESP_LOGI(TAG, "Factory");
TEST_ASSERT_EQUAL(ESP_PARTITION_SUBTYPE_APP_FACTORY, cur_app->subtype);
copy_current_app_to_next_part_and_reboot(cur_app);
copy_current_app_to_next_part_and_reboot();
break;
case 3:
ESP_LOGI(TAG, "OTA0");
TEST_ASSERT_EQUAL(ESP_PARTITION_SUBTYPE_APP_OTA_0, cur_app->subtype);
mark_app_valid();
copy_current_app_to_next_part_and_reboot(cur_app);
copy_current_app_to_next_part_and_reboot();
break;
case 4:
ESP_LOGI(TAG, "OTA1");
@ -376,7 +381,7 @@ static void test_flow3(void)
// 3 Stage: run OTA0 -> check it -> copy OTA0 to OTA1 -> reboot --//--
// 3 Stage: run OTA1 -> check it -> corrupt ota sector2 -> reboot --//--
// 4 Stage: run OTA0 -> check it -> erase OTA_DATA for next tests -> PASS
TEST_CASE_MULTIPLE_STAGES("Switching between factory, OTA0, OTA1, currupt ota_sec2, OTA0", "[app_update][reset=DEEPSLEEP_RESET, DEEPSLEEP_RESET, DEEPSLEEP_RESET, DEEPSLEEP_RESET]", start_test, test_flow3, test_flow3, test_flow3, test_flow3);
TEST_CASE_MULTIPLE_STAGES("Switching between factory, OTA0, OTA1, currupt ota_sec2, OTA0", "[app_update][timeout=90][reset=DEEPSLEEP_RESET, DEEPSLEEP_RESET, DEEPSLEEP_RESET, DEEPSLEEP_RESET]", start_test, test_flow3, test_flow3, test_flow3, test_flow3);
#ifdef CONFIG_BOOTLOADER_FACTORY_RESET
#define STORAGE_NAMESPACE "update_ota"
@ -386,7 +391,7 @@ static void test_flow4(void)
boot_count++;
ESP_LOGI(TAG, "boot count %d", boot_count);
const esp_partition_t *cur_app = get_running_firmware();
nvs_handle handle = 0;
nvs_handle_t handle = 0;
int boot_count_nvs = 0;
switch (boot_count) {
case 2:
@ -401,7 +406,7 @@ static void test_flow4(void)
nvs_close(handle);
nvs_flash_deinit();
copy_current_app_to_next_part_and_reboot(cur_app);
copy_current_app_to_next_part_and_reboot();
break;
case 3:
ESP_LOGI(TAG, "OTA0");
@ -443,7 +448,7 @@ static void test_flow4(void)
// 2 Stage: run factory -> check it -> copy factory to OTA0 -> reboot --//--
// 3 Stage: run OTA0 -> check it -> set_pin_factory_reset -> reboot --//--
// 4 Stage: run factory -> check it -> erase OTA_DATA for next tests -> PASS
TEST_CASE_MULTIPLE_STAGES("Switching between factory, OTA0, sets pin_factory_reset, factory", "[app_update][reset=DEEPSLEEP_RESET, DEEPSLEEP_RESET, DEEPSLEEP_RESET]", start_test, test_flow4, test_flow4, test_flow4);
TEST_CASE_MULTIPLE_STAGES("Switching between factory, OTA0, sets pin_factory_reset, factory", "[app_update][timeout=90][ignore][reset=DEEPSLEEP_RESET, DEEPSLEEP_RESET, DEEPSLEEP_RESET]", start_test, test_flow4, test_flow4, test_flow4);
#endif
#ifdef CONFIG_BOOTLOADER_APP_TEST
@ -486,7 +491,7 @@ static void test_flow5(void)
// 2 Stage: run factory -> check it -> copy factory to Test and set pin_test_app -> reboot --//--
// 3 Stage: run test -> check it -> reset pin_test_app -> reboot --//--
// 4 Stage: run factory -> check it -> erase OTA_DATA for next tests -> PASS
TEST_CASE_MULTIPLE_STAGES("Switching between factory, test, factory", "[app_update][reset=DEEPSLEEP_RESET, DEEPSLEEP_RESET, DEEPSLEEP_RESET]", start_test, test_flow5, test_flow5, test_flow5);
TEST_CASE_MULTIPLE_STAGES("Switching between factory, test, factory", "[app_update][timeout=90][ignore][reset=DEEPSLEEP_RESET, DEEPSLEEP_RESET, DEEPSLEEP_RESET]", start_test, test_flow5, test_flow5, test_flow5);
#endif
static const esp_partition_t* app_update(void)
@ -518,7 +523,7 @@ static void test_rollback1(void)
TEST_ESP_ERR(ESP_ERR_NOT_SUPPORTED, esp_ota_get_state_partition(cur_app, &ota_state));
update_partition = app_update();
TEST_ESP_OK(esp_ota_get_state_partition(update_partition, &ota_state));
#ifndef CONFIG_APP_ROLLBACK_ENABLE
#ifndef CONFIG_BOOTLOADER_APP_ROLLBACK_ENABLE
TEST_ASSERT_EQUAL(ESP_OTA_IMG_UNDEFINED, ota_state);
#else
TEST_ASSERT_EQUAL(ESP_OTA_IMG_NEW, ota_state);
@ -530,7 +535,7 @@ static void test_rollback1(void)
TEST_ASSERT_EQUAL(ESP_PARTITION_SUBTYPE_APP_OTA_0, cur_app->subtype);
TEST_ASSERT_NULL(esp_ota_get_last_invalid_partition());
TEST_ESP_OK(esp_ota_get_state_partition(cur_app, &ota_state));
#ifndef CONFIG_APP_ROLLBACK_ENABLE
#ifndef CONFIG_BOOTLOADER_APP_ROLLBACK_ENABLE
TEST_ASSERT_EQUAL(ESP_OTA_IMG_UNDEFINED, ota_state);
#else
TEST_ASSERT_EQUAL(ESP_OTA_IMG_PENDING_VERIFY, ota_state);
@ -580,7 +585,7 @@ static void test_rollback1_1(void)
// 3 Stage: run OTA0 -> check it -> esp_ota_mark_app_valid_cancel_rollback() -> reboot --//--
// 4 Stage: run OTA0 -> check it -> esp_ota_mark_app_invalid_rollback_and_reboot() -> reboot
// 5 Stage: run factory -> check it -> erase OTA_DATA for next tests -> PASS
TEST_CASE_MULTIPLE_STAGES("Test rollback. factory, OTA0, OTA0, rollback -> factory", "[app_update][reset=DEEPSLEEP_RESET, DEEPSLEEP_RESET, DEEPSLEEP_RESET, SW_CPU_RESET]", start_test, test_rollback1, test_rollback1, test_rollback1, test_rollback1_1);
TEST_CASE_MULTIPLE_STAGES("Test rollback. factory, OTA0, OTA0, rollback -> factory", "[app_update][timeout=90][reset=DEEPSLEEP_RESET, DEEPSLEEP_RESET, DEEPSLEEP_RESET, SW_CPU_RESET]", start_test, test_rollback1, test_rollback1, test_rollback1, test_rollback1_1);
static void test_rollback2(void)
{
@ -597,7 +602,7 @@ static void test_rollback2(void)
TEST_ESP_ERR(ESP_ERR_NOT_SUPPORTED, esp_ota_get_state_partition(cur_app, &ota_state));
update_partition = app_update();
TEST_ESP_OK(esp_ota_get_state_partition(update_partition, &ota_state));
#ifndef CONFIG_APP_ROLLBACK_ENABLE
#ifndef CONFIG_BOOTLOADER_APP_ROLLBACK_ENABLE
TEST_ASSERT_EQUAL(ESP_OTA_IMG_UNDEFINED, ota_state);
#else
TEST_ASSERT_EQUAL(ESP_OTA_IMG_NEW, ota_state);
@ -609,7 +614,7 @@ static void test_rollback2(void)
TEST_ASSERT_EQUAL(ESP_PARTITION_SUBTYPE_APP_OTA_0, cur_app->subtype);
TEST_ASSERT_NULL(esp_ota_get_last_invalid_partition());
TEST_ESP_OK(esp_ota_get_state_partition(cur_app, &ota_state));
#ifndef CONFIG_APP_ROLLBACK_ENABLE
#ifndef CONFIG_BOOTLOADER_APP_ROLLBACK_ENABLE
TEST_ASSERT_EQUAL(ESP_OTA_IMG_UNDEFINED, ota_state);
#else
TEST_ASSERT_EQUAL(ESP_OTA_IMG_PENDING_VERIFY, ota_state);
@ -620,7 +625,7 @@ static void test_rollback2(void)
TEST_ASSERT_EQUAL(ESP_OTA_IMG_VALID, ota_state);
update_partition = app_update();
TEST_ESP_OK(esp_ota_get_state_partition(update_partition, &ota_state));
#ifndef CONFIG_APP_ROLLBACK_ENABLE
#ifndef CONFIG_BOOTLOADER_APP_ROLLBACK_ENABLE
TEST_ASSERT_EQUAL(ESP_OTA_IMG_UNDEFINED, ota_state);
#else
TEST_ASSERT_EQUAL(ESP_OTA_IMG_NEW, ota_state);
@ -632,7 +637,7 @@ static void test_rollback2(void)
TEST_ASSERT_EQUAL(ESP_PARTITION_SUBTYPE_APP_OTA_1, cur_app->subtype);
TEST_ASSERT_NULL(esp_ota_get_last_invalid_partition());
TEST_ESP_OK(esp_ota_get_state_partition(cur_app, &ota_state));
#ifndef CONFIG_APP_ROLLBACK_ENABLE
#ifndef CONFIG_BOOTLOADER_APP_ROLLBACK_ENABLE
TEST_ASSERT_EQUAL(ESP_OTA_IMG_UNDEFINED, ota_state);
TEST_ESP_OK(esp_ota_mark_app_invalid_rollback_and_reboot());
#else
@ -665,7 +670,7 @@ static void test_rollback2_1(void)
TEST_ESP_OK(esp_ota_get_state_partition(cur_app, &ota_state));
TEST_ASSERT_EQUAL(ESP_OTA_IMG_VALID, ota_state);
TEST_ESP_OK(esp_ota_get_state_partition(invalid_partition, &ota_state));
#ifndef CONFIG_APP_ROLLBACK_ENABLE
#ifndef CONFIG_BOOTLOADER_APP_ROLLBACK_ENABLE
TEST_ASSERT_EQUAL(ESP_OTA_IMG_INVALID, ota_state);
#else
TEST_ASSERT_EQUAL(ESP_OTA_IMG_ABORTED, ota_state);
@ -678,7 +683,7 @@ static void test_rollback2_1(void)
// 3 Stage: run OTA0 -> check it -> esp_ota_mark_app_valid_cancel_rollback(), copy to next app slot -> reboot --//--
// 4 Stage: run OTA1 -> check it -> PENDING_VERIFY/esp_ota_mark_app_invalid_rollback_and_reboot() -> reboot
// 5 Stage: run OTA0(rollback) -> check it -> erase OTA_DATA for next tests -> PASS
TEST_CASE_MULTIPLE_STAGES("Test rollback. factory, OTA0, OTA1, rollback -> OTA0", "[app_update][reset=DEEPSLEEP_RESET, DEEPSLEEP_RESET, DEEPSLEEP_RESET, SW_CPU_RESET]", start_test, test_rollback2, test_rollback2, test_rollback2, test_rollback2_1);
TEST_CASE_MULTIPLE_STAGES("Test rollback. factory, OTA0, OTA1, rollback -> OTA0", "[app_update][timeout=90][reset=DEEPSLEEP_RESET, DEEPSLEEP_RESET, DEEPSLEEP_RESET, SW_CPU_RESET]", start_test, test_rollback2, test_rollback2, test_rollback2, test_rollback2_1);
static void test_erase_last_app_flow(void)
{
@ -729,4 +734,4 @@ static void test_erase_last_app_rollback(void)
// 3 Stage: run OTA0 -> check it -> copy factory to OTA1 -> reboot --//--
// 4 Stage: run OTA1 -> check it -> erase OTA0 and rollback -> reboot
// 5 Stage: run factory -> check it -> erase OTA_DATA for next tests -> PASS
TEST_CASE_MULTIPLE_STAGES("Test erase_last_boot_app_partition. factory, OTA1, OTA0, factory", "[app_update][reset=DEEPSLEEP_RESET, DEEPSLEEP_RESET, DEEPSLEEP_RESET, SW_CPU_RESET]", start_test, test_erase_last_app_flow, test_erase_last_app_flow, test_erase_last_app_flow, test_erase_last_app_rollback);
TEST_CASE_MULTIPLE_STAGES("Test erase_last_boot_app_partition. factory, OTA1, OTA0, factory", "[app_update][timeout=90][reset=DEEPSLEEP_RESET, DEEPSLEEP_RESET, DEEPSLEEP_RESET, SW_CPU_RESET]", start_test, test_erase_last_app_flow, test_erase_last_app_flow, test_erase_last_app_flow, test_erase_last_app_rollback);

View File

@ -1,6 +1,3 @@
set(COMPONENT_ADD_INCLUDEDIRS asio/asio/include port/include)
set(COMPONENT_SRCS "asio/asio/src/asio.cpp")
set(COMPONENT_REQUIRES lwip)
register_component()
idf_component_register(SRCS "asio/asio/src/asio.cpp"
INCLUDE_DIRS "asio/asio/include" "port/include"
REQUIRES lwip)

View File

@ -18,12 +18,16 @@
// Enabling exceptions only when they are enabled in menuconfig
//
# include <sdkconfig.h>
# ifndef CONFIG_CXX_EXCEPTIONS
# ifndef CONFIG_COMPILER_CXX_EXCEPTIONS
# define ASIO_NO_EXCEPTIONS
# endif // CONFIG_CXX_EXCEPTIONS
# endif // CONFIG_COMPILER_CXX_EXCEPTIONS
# ifndef CONFIG_COMPILER_RTTI
# define ASIO_NO_TYPEID
# endif // CONFIG_COMPILER_RTTI
//
// LWIP compatifility inet and address macros/functions
// LWIP compatibility inet and address macros/functions
//
# define LWIP_COMPAT_SOCKET_INET 1
# define LWIP_COMPAT_SOCKET_ADDR 1
@ -34,12 +38,6 @@
# define ASIO_DISABLE_SERIAL_PORT
# define ASIO_SEPARATE_COMPILATION
# define ASIO_STANDALONE
# define ASIO_NO_TYPEID
# define ASIO_DISABLE_SIGNAL
# define ASIO_HAS_PTHREADS
# define ASIO_DISABLE_EPOLL
# define ASIO_DISABLE_EVENTFD
# define ASIO_DISABLE_SIGNAL
# define ASIO_DISABLE_SIGACTION
#endif // _ESP_ASIO_CONFIG_H_

View File

@ -18,7 +18,7 @@
//
// This exception stub is enabled only if exceptions are disabled in menuconfig
//
#if !defined(CONFIG_CXX_EXCEPTIONS) && defined (ASIO_NO_EXCEPTIONS)
#if !defined(CONFIG_COMPILER_CXX_EXCEPTIONS) && defined (ASIO_NO_EXCEPTIONS)
#include "esp_log.h"
@ -34,6 +34,6 @@ void throw_exception(const Exception& e)
abort();
}
}}
#endif // CONFIG_CXX_EXCEPTIONS==1 && defined (ASIO_NO_EXCEPTIONS)
#endif // CONFIG_COMPILER_CXX_EXCEPTIONS==1 && defined (ASIO_NO_EXCEPTIONS)
#endif // _ESP_EXCEPTION_H_

View File

@ -1,30 +0,0 @@
if(CONFIG_AWS_IOT_SDK)
set(COMPONENT_ADD_INCLUDEDIRS "include aws-iot-device-sdk-embedded-C/include")
set(aws_sdk_dir aws-iot-device-sdk-embedded-C/src)
set(COMPONENT_SRCS "${aws_sdk_dir}/aws_iot_jobs_interface.c"
"${aws_sdk_dir}/aws_iot_jobs_json.c"
"${aws_sdk_dir}/aws_iot_jobs_topics.c"
"${aws_sdk_dir}/aws_iot_jobs_types.c"
"${aws_sdk_dir}/aws_iot_json_utils.c"
"${aws_sdk_dir}/aws_iot_mqtt_client.c"
"${aws_sdk_dir}/aws_iot_mqtt_client_common_internal.c"
"${aws_sdk_dir}/aws_iot_mqtt_client_connect.c"
"${aws_sdk_dir}/aws_iot_mqtt_client_publish.c"
"${aws_sdk_dir}/aws_iot_mqtt_client_subscribe.c"
"${aws_sdk_dir}/aws_iot_mqtt_client_unsubscribe.c"
"${aws_sdk_dir}/aws_iot_mqtt_client_yield.c"
"${aws_sdk_dir}/aws_iot_shadow.c"
"${aws_sdk_dir}/aws_iot_shadow_actions.c"
"${aws_sdk_dir}/aws_iot_shadow_json.c"
"${aws_sdk_dir}/aws_iot_shadow_records.c"
"port/network_mbedtls_wrapper.c"
"port/threads_freertos.c"
"port/timer.c")
else()
message(STATUS "Building empty aws_iot component due to configuration")
endif()
set(COMPONENT_REQUIRES "mbedtls")
set(COMPONENT_PRIV_REQUIRES "jsmn")
register_component()

View File

@ -1,164 +0,0 @@
menuconfig AWS_IOT_SDK
bool "Amazon Web Services IoT Platform"
help
Select this option to enable support for the AWS IoT platform,
via the esp-idf component for the AWS IoT Device C SDK.
config AWS_IOT_MQTT_HOST
string "AWS IoT Endpoint Hostname"
depends on AWS_IOT_SDK
default ""
help
Default endpoint host name to connect to AWS IoT MQTT/S gateway
This is the custom endpoint hostname and is specific to an AWS
IoT account. You can find it by logging into your AWS IoT
Console and clicking the Settings button. The endpoint hostname
is shown under the "Custom Endpoint" heading on this page.
If you need per-device hostnames for different regions or
accounts, you can override the default hostname in your app.
config AWS_IOT_MQTT_PORT
int "AWS IoT MQTT Port"
depends on AWS_IOT_SDK
default 8883
range 0 65535
help
Default port number to connect to AWS IoT MQTT/S gateway
If you need per-device port numbers for different regions, you can
override the default port number in your app.
config AWS_IOT_MQTT_TX_BUF_LEN
int "MQTT TX Buffer Length"
depends on AWS_IOT_SDK
default 512
range 32 65536
help
Maximum MQTT transmit buffer size. This is the maximum MQTT
message length (including protocol overhead) which can be sent.
Sending longer messages will fail.
config AWS_IOT_MQTT_RX_BUF_LEN
int "MQTT RX Buffer Length"
depends on AWS_IOT_SDK
default 512
range 32 65536
help
Maximum MQTT receive buffer size. This is the maximum MQTT
message length (including protocol overhead) which can be
received.
Longer messages are dropped.
config AWS_IOT_MQTT_NUM_SUBSCRIBE_HANDLERS
int "Maximum MQTT Topic Filters"
depends on AWS_IOT_SDK
default 5
range 1 100
help
Maximum number of concurrent MQTT topic filters.
config AWS_IOT_MQTT_MIN_RECONNECT_WAIT_INTERVAL
int "Auto reconnect initial interval (ms)"
depends on AWS_IOT_SDK
default 1000
range 10 3600000
help
Initial delay before making first reconnect attempt, if the AWS IoT connection fails.
Client will perform exponential backoff, starting from this value.
config AWS_IOT_MQTT_MAX_RECONNECT_WAIT_INTERVAL
int "Auto reconnect maximum interval (ms)"
depends on AWS_IOT_SDK
default 128000
range 10 3600000
help
Maximum delay between reconnection attempts. If the exponentially increased delay
interval reaches this value, the client will stop automatically attempting to reconnect.
menu "Thing Shadow"
depends on AWS_IOT_SDK
config AWS_IOT_OVERRIDE_THING_SHADOW_RX_BUFFER
bool "Override Shadow RX buffer size"
depends on AWS_IOT_SDK
default n
help
Allows setting a different Thing Shadow RX buffer
size. This is the maximum size of a Thing Shadow
message in bytes, plus one.
If not overridden, the default value is the MQTT RX Buffer length plus one. If overriden, do not set
higher than the default value.
config AWS_IOT_SHADOW_MAX_SIZE_OF_RX_BUFFER
int "Maximum RX Buffer (bytes)"
depends on AWS_IOT_OVERRIDE_THING_SHADOW_RX_BUFFER
default 513
range 32 65536
help
Allows setting a different Thing Shadow RX buffer size.
This is the maximum size of a Thing Shadow message in bytes,
plus one.
config AWS_IOT_SHADOW_MAX_SIZE_OF_UNIQUE_CLIENT_ID_BYTES
int "Maximum unique client ID size (bytes)"
depends on AWS_IOT_SDK
default 80
range 4 1000
help
Maximum size of the Unique Client Id.
config AWS_IOT_SHADOW_MAX_SIMULTANEOUS_ACKS
int "Maximum simultaneous responses"
depends on AWS_IOT_SDK
default 10
range 1 100
help
At any given time we will wait for this many responses. This will correlate to the rate at which the
shadow actions are requested
config AWS_IOT_SHADOW_MAX_SIMULTANEOUS_THINGNAMES
int "Maximum simultaneous Thing Name operations"
depends on AWS_IOT_SDK
default 10
range 1 100
help
We could perform shadow action on any thing Name and this is maximum Thing Names we can act on at any
given time
config AWS_IOT_SHADOW_MAX_JSON_TOKEN_EXPECTED
int "Maximum expected JSON tokens"
depends on AWS_IOT_SDK
default 120
help
These are the max tokens that is expected to be in the Shadow JSON document. Includes the metadata which
is published
config AWS_IOT_SHADOW_MAX_SHADOW_TOPIC_LENGTH_WITHOUT_THINGNAME
int "Maximum topic length (not including Thing Name)"
depends on AWS_IOT_SDK
default 60
range 10 1000
help
All shadow actions have to be published or subscribed to a topic which is of the format
$aws/things/{thingName}/shadow/update/accepted. This refers to the size of the topic without the Thing
Name
config AWS_IOT_SHADOW_MAX_SIZE_OF_THING_NAME
int "Maximum Thing Name length"
depends on AWS_IOT_SDK
default 20
range 4 1000
help
Maximum length of a Thing Name.
endmenu # Thing Shadow

View File

@ -1,20 +0,0 @@
#
# Component Makefile
#
ifdef CONFIG_AWS_IOT_SDK
COMPONENT_ADD_INCLUDEDIRS := include aws-iot-device-sdk-embedded-C/include
COMPONENT_SRCDIRS := aws-iot-device-sdk-embedded-C/src port
# Check the submodule is initialised
COMPONENT_SUBMODULES := aws-iot-device-sdk-embedded-C
else
# Disable AWS IoT support
COMPONENT_ADD_INCLUDEDIRS :=
COMPONENT_ADD_LDFLAGS :=
COMPONENT_SRCDIRS :=
endif

View File

@ -1,65 +0,0 @@
/*
* Copyright 2010-2015 Amazon.com, Inc. or its affiliates. All Rights Reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License").
* You may not use this file except in compliance with the License.
* A copy of the License is located at
*
* http://aws.amazon.com/apache2.0
*
* or in the "license" file accompanying this file. This file is distributed
* on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
* express or implied. See the License for the specific language governing
* permissions and limitations under the License.
*/
/**
* @file aws_iot_config.h
* @brief AWS IoT specific configuration file
*/
#ifndef _AWS_IOT_CONFIG_H_
#define _AWS_IOT_CONFIG_H_
#include "aws_iot_log.h"
// This configuration macro needs to be available globally to enable threading
#define _ENABLE_THREAD_SUPPORT_
// These values are defined in the menuconfig of the AWS IoT component.
// However, you can override these constants from your own code.
#define AWS_IOT_MQTT_HOST CONFIG_AWS_IOT_MQTT_HOST ///< Customer specific MQTT HOST. The same will be used for Thing Shadow
#define AWS_IOT_MQTT_PORT CONFIG_AWS_IOT_MQTT_PORT ///< default port for MQTT/S
// These values are defaults and are used for ShadowConnectParametersDefault.
// You should override them from your own code.
#define AWS_IOT_MQTT_CLIENT_ID "ESP32" ///< MQTT client ID should be unique for every device
#define AWS_IOT_MY_THING_NAME "ESP32" ///< Thing Name of the Shadow this device is associated with
// MQTT PubSub
#define AWS_IOT_MQTT_TX_BUF_LEN CONFIG_AWS_IOT_MQTT_TX_BUF_LEN ///< Any time a message is sent out through the MQTT layer. The message is copied into this buffer anytime a publish is done. This will also be used in the case of Thing Shadow
#define AWS_IOT_MQTT_RX_BUF_LEN CONFIG_AWS_IOT_MQTT_RX_BUF_LEN ///< Any message that comes into the device should be less than this buffer size. If a received message is bigger than this buffer size the message will be dropped.
#define AWS_IOT_MQTT_NUM_SUBSCRIBE_HANDLERS CONFIG_AWS_IOT_MQTT_NUM_SUBSCRIBE_HANDLERS ///< Maximum number of topic filters the MQTT client can handle at any given time. This should be increased appropriately when using Thing Shadow
// Thing Shadow specific configs
#ifdef CONFIG_AWS_IOT_OVERRIDE_THING_SHADOW_RX_BUFFER
#define SHADOW_MAX_SIZE_OF_RX_BUFFER CONFIG_AWS_IOT_SHADOW_MAX_SIZE_OF_RX_BUFFER ///< Maximum size of the SHADOW buffer to store the received Shadow message, including NULL terminating byte
#else
#define SHADOW_MAX_SIZE_OF_RX_BUFFER (AWS_IOT_MQTT_RX_BUF_LEN + 1)
#endif
#define MAX_SIZE_OF_UNIQUE_CLIENT_ID_BYTES 80 ///< Maximum size of the Unique Client Id. For More info on the Client Id refer \ref response "Acknowledgments"
#define MAX_SIZE_CLIENT_ID_WITH_SEQUENCE (MAX_SIZE_OF_UNIQUE_CLIENT_ID_BYTES + 10) ///< This is size of the extra sequence number that will be appended to the Unique client Id
#define MAX_SIZE_CLIENT_TOKEN_CLIENT_SEQUENCE (MAX_SIZE_CLIENT_ID_WITH_SEQUENCE + 20) ///< This is size of the the total clientToken key and value pair in the JSON
#define MAX_ACKS_TO_COMEIN_AT_ANY_GIVEN_TIME CONFIG_AWS_IOT_SHADOW_MAX_SIMULTANEOUS_ACKS ///< At Any given time we will wait for this many responses. This will correlate to the rate at which the shadow actions are requested
#define MAX_THINGNAME_HANDLED_AT_ANY_GIVEN_TIME CONFIG_AWS_IOT_SHADOW_MAX_SIMULTANEOUS_THINGNAMES ///< We could perform shadow action on any thing Name and this is maximum Thing Names we can act on at any given time
#define MAX_JSON_TOKEN_EXPECTED CONFIG_AWS_IOT_SHADOW_MAX_JSON_TOKEN_EXPECTED ///< These are the max tokens that is expected to be in the Shadow JSON document. Include the metadata that gets published
#define MAX_SHADOW_TOPIC_LENGTH_WITHOUT_THINGNAME CONFIG_AWS_IOT_SHADOW_MAX_SHADOW_TOPIC_LENGTH_WITHOUT_THINGNAME ///< All shadow actions have to be published or subscribed to a topic which is of the formablogt $aws/things/{thingName}/shadow/update/accepted. This refers to the size of the topic without the Thing Name
#define MAX_SIZE_OF_THING_NAME CONFIG_AWS_IOT_SHADOW_MAX_SIZE_OF_THING_NAME ///< The Thing Name should not be bigger than this value. Modify this if the Thing Name needs to be bigger
#define MAX_SHADOW_TOPIC_LENGTH_BYTES (MAX_SHADOW_TOPIC_LENGTH_WITHOUT_THINGNAME + MAX_SIZE_OF_THING_NAME) ///< This size includes the length of topic with Thing Name
// Auto Reconnect specific config
#define AWS_IOT_MQTT_MIN_RECONNECT_WAIT_INTERVAL CONFIG_AWS_IOT_MQTT_MIN_RECONNECT_WAIT_INTERVAL ///< Minimum time before the First reconnect attempt is made as part of the exponential back-off algorithm
#define AWS_IOT_MQTT_MAX_RECONNECT_WAIT_INTERVAL CONFIG_AWS_IOT_MQTT_MAX_RECONNECT_WAIT_INTERVAL ///< Maximum time interval after which exponential back-off will stop attempting to reconnect.
#endif /* _AWS_IOT_CONFIG_H_ */

View File

@ -1,44 +0,0 @@
// Copyright 2015-2016 Espressif Systems (Shanghai) PTE LTD
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
#pragma once
/* (these two headers aren't used here, but AWS IoT SDK code relies on them
being included from here...) */
#include <stdio.h>
#include <stdlib.h>
#include "esp_log.h"
/* This is a stub replacement for the aws_iot_log.h header in the AWS IoT SDK,
which redirects their logging framework into the esp-idf logging framework.
The current (2.1.1) upstream AWS IoT SDK doesn't allow this as some of its
headers include aws_iot_log.h, but our modified fork does.
*/
// redefine the AWS IoT log functions to call into the IDF log layer
#define IOT_DEBUG(format, ...) ESP_LOGD("aws_iot", format, ##__VA_ARGS__)
#define IOT_INFO(format, ...) ESP_LOGI("aws_iot", format, ##__VA_ARGS__)
#define IOT_WARN(format, ...) ESP_LOGW("aws_iot", format, ##__VA_ARGS__)
#define IOT_ERROR(format, ...) ESP_LOGE("aws_iot", format, ##__VA_ARGS__)
/* Function tracing macros used in AWS IoT SDK,
mapped to "verbose" level output
*/
#define FUNC_ENTRY ESP_LOGV("aws_iot", "FUNC_ENTRY: %s L#%d \n", __func__, __LINE__)
#define FUNC_EXIT_RC(x) \
do { \
ESP_LOGV("aws_iot", "FUNC_EXIT: %s L#%d Return Code : %d \n", __func__, __LINE__, x); \
return x; \
} while(0)

View File

@ -1,64 +0,0 @@
/*
* Copyright 2010-2015 Amazon.com, Inc. or its affiliates. All Rights Reserved.
* Additions Copyright 2016 Espressif Systems (Shanghai) PTE LTD
*
* Licensed under the Apache License, Version 2.0 (the "License").
* You may not use this file except in compliance with the License.
* A copy of the License is located at
*
* http://aws.amazon.com/apache2.0
*
* or in the "license" file accompanying this file. This file is distributed
* on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
* express or implied. See the License for the specific language governing
* permissions and limitations under the License.
*/
#ifndef IOTSDKC_NETWORK_MBEDTLS_PLATFORM_H_H
#if !defined(MBEDTLS_CONFIG_FILE)
#include "mbedtls/config.h"
#else
#include MBEDTLS_CONFIG_FILE
#endif
#include "mbedtls/platform.h"
#include "mbedtls/net_sockets.h"
#include "mbedtls/ssl.h"
#include "mbedtls/entropy.h"
#include "mbedtls/ctr_drbg.h"
#include "mbedtls/certs.h"
#include "mbedtls/x509.h"
#include "mbedtls/error.h"
#include "mbedtls/debug.h"
#include "mbedtls/timing.h"
#ifdef __cplusplus
extern "C" {
#endif
/**
* @brief TLS Connection Parameters
*
* Defines a type containing TLS specific parameters to be passed down to the
* TLS networking layer to create a TLS secured socket.
*/
typedef struct _TLSDataParams {
mbedtls_entropy_context entropy;
mbedtls_ctr_drbg_context ctr_drbg;
mbedtls_ssl_context ssl;
mbedtls_ssl_config conf;
uint32_t flags;
mbedtls_x509_crt cacert;
mbedtls_x509_crt clicert;
mbedtls_pk_context pkey;
mbedtls_net_context server_fd;
}TLSDataParams;
#define IOTSDKC_NETWORK_MBEDTLS_PLATFORM_H_H
#ifdef __cplusplus
}
#endif
#endif //IOTSDKC_NETWORK_MBEDTLS_PLATFORM_H_H

View File

@ -1,45 +0,0 @@
/*
* Copyright 2010-2015 Amazon.com, Inc. or its affiliates. All Rights Reserved.
* Additions Copyright 2016 Espressif Systems (Shanghai) PTE LTD
*
* Licensed under the Apache License, Version 2.0 (the "License").
* You may not use this file except in compliance with the License.
* A copy of the License is located at
*
* http://aws.amazon.com/apache2.0
*
* or in the "license" file accompanying this file. This file is distributed
* on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
* express or implied. See the License for the specific language governing
* permissions and limitations under the License.
*/
#include "threads_interface.h"
#ifndef AWS_IOTSDK_THREADS_PLATFORM_H
#define AWS_IOTSDK_THREADS_PLATFORM_H
#ifdef __cplusplus
extern "C" {
#endif
#include "freertos/FreeRTOS.h"
#include "freertos/semphr.h"
/**
* @brief Mutex Type
*
* definition of the Mutex struct. Platform specific
*
*/
struct _IoT_Mutex_t {
SemaphoreHandle_t mutex;
};
#ifdef __cplusplus
}
#endif
#endif /* AWS_IOTSDK_THREADS_PLATFORM_H */

View File

@ -1,40 +0,0 @@
/*
* Copyright 2010-2015 Amazon.com, Inc. or its affiliates. All Rights Reserved.
* Additions Copyright 2016 Espressif Systems (Shanghai) PTE LTD
*
* Licensed under the Apache License, Version 2.0 (the "License").
* You may not use this file except in compliance with the License.
* A copy of the License is located at
*
* http://aws.amazon.com/apache2.0
*
* or in the "license" file accompanying this file. This file is distributed
* on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
* express or implied. See the License for the specific language governing
* permissions and limitations under the License.
*/
#ifndef AWS_IOT_PLATFORM_H
#define AWS_IOT_PLATFORM_H
#ifdef __cplusplus
extern "C" {
#endif
#include <stdint.h>
#include "timer_interface.h"
/**
* definition of the Timer struct. Platform specific
*/
struct Timer {
uint32_t start_ticks;
uint32_t timeout_ticks;
uint32_t last_polled_ticks;
};
#ifdef __cplusplus
}
#endif
#endif /* AWS_IOT_PLATFORM_H */

View File

@ -1,419 +0,0 @@
/*
* Copyright 2010-2015 Amazon.com, Inc. or its affiliates. All Rights Reserved.
* Additions Copyright 2016 Espressif Systems (Shanghai) PTE LTD
*
* Licensed under the Apache License, Version 2.0 (the "License").
* You may not use this file except in compliance with the License.
* A copy of the License is located at
*
* http://aws.amazon.com/apache2.0
*
* or in the "license" file accompanying this file. This file is distributed
* on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
* express or implied. See the License for the specific language governing
* permissions and limitations under the License.
*/
#include <sys/param.h>
#include <stdbool.h>
#include <string.h>
#include <timer_platform.h>
#include <network_interface.h>
#include "aws_iot_config.h"
#include "aws_iot_error.h"
#include "network_interface.h"
#include "network_platform.h"
#include "mbedtls/esp_debug.h"
#include "esp_log.h"
#include "esp_vfs.h"
static const char *TAG = "aws_iot";
/* This is the value used for ssl read timeout */
#define IOT_SSL_READ_TIMEOUT 10
/*
* This is a function to do further verification if needed on the cert received.
*
* Currently used to print debug-level information about each cert.
*/
static int _iot_tls_verify_cert(void *data, mbedtls_x509_crt *crt, int depth, uint32_t *flags) {
char buf[256];
((void) data);
if (LOG_LOCAL_LEVEL >= ESP_LOG_DEBUG) {
ESP_LOGD(TAG, "Verify requested for (Depth %d):", depth);
mbedtls_x509_crt_info(buf, sizeof(buf) - 1, "", crt);
ESP_LOGD(TAG, "%s", buf);
if((*flags) == 0) {
ESP_LOGD(TAG, " This certificate has no flags");
} else {
ESP_LOGD(TAG, "Verify result:%s", buf);
}
}
return 0;
}
static void _iot_tls_set_connect_params(Network *pNetwork, const char *pRootCALocation, const char *pDeviceCertLocation,
const char *pDevicePrivateKeyLocation, const char *pDestinationURL,
uint16_t destinationPort, uint32_t timeout_ms, bool ServerVerificationFlag) {
pNetwork->tlsConnectParams.DestinationPort = destinationPort;
pNetwork->tlsConnectParams.pDestinationURL = pDestinationURL;
pNetwork->tlsConnectParams.pDeviceCertLocation = pDeviceCertLocation;
pNetwork->tlsConnectParams.pDevicePrivateKeyLocation = pDevicePrivateKeyLocation;
pNetwork->tlsConnectParams.pRootCALocation = pRootCALocation;
pNetwork->tlsConnectParams.timeout_ms = timeout_ms;
pNetwork->tlsConnectParams.ServerVerificationFlag = ServerVerificationFlag;
}
IoT_Error_t iot_tls_init(Network *pNetwork, const char *pRootCALocation, const char *pDeviceCertLocation,
const char *pDevicePrivateKeyLocation, const char *pDestinationURL,
uint16_t destinationPort, uint32_t timeout_ms, bool ServerVerificationFlag) {
_iot_tls_set_connect_params(pNetwork, pRootCALocation, pDeviceCertLocation, pDevicePrivateKeyLocation,
pDestinationURL, destinationPort, timeout_ms, ServerVerificationFlag);
pNetwork->connect = iot_tls_connect;
pNetwork->read = iot_tls_read;
pNetwork->write = iot_tls_write;
pNetwork->disconnect = iot_tls_disconnect;
pNetwork->isConnected = iot_tls_is_connected;
pNetwork->destroy = iot_tls_destroy;
pNetwork->tlsDataParams.flags = 0;
return SUCCESS;
}
IoT_Error_t iot_tls_is_connected(Network *pNetwork) {
/* Use this to add implementation which can check for physical layer disconnect */
return NETWORK_PHYSICAL_LAYER_CONNECTED;
}
IoT_Error_t iot_tls_connect(Network *pNetwork, TLSConnectParams *params) {
int ret = SUCCESS;
TLSDataParams *tlsDataParams = NULL;
char portBuffer[6];
char info_buf[256];
if(NULL == pNetwork) {
return NULL_VALUE_ERROR;
}
if(NULL != params) {
_iot_tls_set_connect_params(pNetwork, params->pRootCALocation, params->pDeviceCertLocation,
params->pDevicePrivateKeyLocation, params->pDestinationURL,
params->DestinationPort, params->timeout_ms, params->ServerVerificationFlag);
}
tlsDataParams = &(pNetwork->tlsDataParams);
mbedtls_net_init(&(tlsDataParams->server_fd));
mbedtls_ssl_init(&(tlsDataParams->ssl));
mbedtls_ssl_config_init(&(tlsDataParams->conf));
#ifdef CONFIG_MBEDTLS_DEBUG
mbedtls_esp_enable_debug_log(&(tlsDataParams->conf), 4);
#endif
mbedtls_ctr_drbg_init(&(tlsDataParams->ctr_drbg));
mbedtls_x509_crt_init(&(tlsDataParams->cacert));
mbedtls_x509_crt_init(&(tlsDataParams->clicert));
mbedtls_pk_init(&(tlsDataParams->pkey));
ESP_LOGD(TAG, "Seeding the random number generator...");
mbedtls_entropy_init(&(tlsDataParams->entropy));
if((ret = mbedtls_ctr_drbg_seed(&(tlsDataParams->ctr_drbg), mbedtls_entropy_func, &(tlsDataParams->entropy),
(const unsigned char *) TAG, strlen(TAG))) != 0) {
ESP_LOGE(TAG, "failed! mbedtls_ctr_drbg_seed returned -0x%x", -ret);
return NETWORK_MBEDTLS_ERR_CTR_DRBG_ENTROPY_SOURCE_FAILED;
}
/* Load root CA...
Certs/keys can be paths or they can be raw data. These use a
very basic heuristic: if the cert starts with '/' then it's a
path, if it's longer than this then it's raw cert data (PEM or DER,
neither of which can start with a slash. */
if (pNetwork->tlsConnectParams.pRootCALocation[0] == '/') {
ESP_LOGD(TAG, "Loading CA root certificate from file ...");
ret = mbedtls_x509_crt_parse_file(&(tlsDataParams->cacert), pNetwork->tlsConnectParams.pRootCALocation);
} else {
ESP_LOGD(TAG, "Loading embedded CA root certificate ...");
ret = mbedtls_x509_crt_parse(&(tlsDataParams->cacert), (const unsigned char *)pNetwork->tlsConnectParams.pRootCALocation,
strlen(pNetwork->tlsConnectParams.pRootCALocation)+1);
}
if(ret < 0) {
ESP_LOGE(TAG, "failed! mbedtls_x509_crt_parse returned -0x%x while parsing root cert", -ret);
return NETWORK_X509_ROOT_CRT_PARSE_ERROR;
}
ESP_LOGD(TAG, "ok (%d skipped)", ret);
/* Load client certificate... */
if (pNetwork->tlsConnectParams.pDeviceCertLocation[0] == '/') {
ESP_LOGD(TAG, "Loading client cert from file...");
ret = mbedtls_x509_crt_parse_file(&(tlsDataParams->clicert),
pNetwork->tlsConnectParams.pDeviceCertLocation);
} else {
ESP_LOGD(TAG, "Loading embedded client certificate...");
ret = mbedtls_x509_crt_parse(&(tlsDataParams->clicert),
(const unsigned char *)pNetwork->tlsConnectParams.pDeviceCertLocation,
strlen(pNetwork->tlsConnectParams.pDeviceCertLocation)+1);
}
if(ret != 0) {
ESP_LOGE(TAG, "failed! mbedtls_x509_crt_parse returned -0x%x while parsing device cert", -ret);
return NETWORK_X509_DEVICE_CRT_PARSE_ERROR;
}
/* Parse client private key... */
if (pNetwork->tlsConnectParams.pDevicePrivateKeyLocation[0] == '/') {
ESP_LOGD(TAG, "Loading client private key from file...");
ret = mbedtls_pk_parse_keyfile(&(tlsDataParams->pkey),
pNetwork->tlsConnectParams.pDevicePrivateKeyLocation,
"");
} else {
ESP_LOGD(TAG, "Loading embedded client private key...");
ret = mbedtls_pk_parse_key(&(tlsDataParams->pkey),
(const unsigned char *)pNetwork->tlsConnectParams.pDevicePrivateKeyLocation,
strlen(pNetwork->tlsConnectParams.pDevicePrivateKeyLocation)+1,
(const unsigned char *)"", 0);
}
if(ret != 0) {
ESP_LOGE(TAG, "failed! mbedtls_pk_parse_key returned -0x%x while parsing private key", -ret);
return NETWORK_PK_PRIVATE_KEY_PARSE_ERROR;
}
/* Done parsing certs */
ESP_LOGD(TAG, "ok");
snprintf(portBuffer, 6, "%d", pNetwork->tlsConnectParams.DestinationPort);
ESP_LOGD(TAG, "Connecting to %s/%s...", pNetwork->tlsConnectParams.pDestinationURL, portBuffer);
if((ret = mbedtls_net_connect(&(tlsDataParams->server_fd), pNetwork->tlsConnectParams.pDestinationURL,
portBuffer, MBEDTLS_NET_PROTO_TCP)) != 0) {
ESP_LOGE(TAG, "failed! mbedtls_net_connect returned -0x%x", -ret);
switch(ret) {
case MBEDTLS_ERR_NET_SOCKET_FAILED:
return NETWORK_ERR_NET_SOCKET_FAILED;
case MBEDTLS_ERR_NET_UNKNOWN_HOST:
return NETWORK_ERR_NET_UNKNOWN_HOST;
case MBEDTLS_ERR_NET_CONNECT_FAILED:
default:
return NETWORK_ERR_NET_CONNECT_FAILED;
};
}
ret = mbedtls_net_set_block(&(tlsDataParams->server_fd));
if(ret != 0) {
ESP_LOGE(TAG, "failed! net_set_(non)block() returned -0x%x", -ret);
return SSL_CONNECTION_ERROR;
} ESP_LOGD(TAG, "ok");
ESP_LOGD(TAG, "Setting up the SSL/TLS structure...");
if((ret = mbedtls_ssl_config_defaults(&(tlsDataParams->conf), MBEDTLS_SSL_IS_CLIENT, MBEDTLS_SSL_TRANSPORT_STREAM,
MBEDTLS_SSL_PRESET_DEFAULT)) != 0) {
ESP_LOGE(TAG, "failed! mbedtls_ssl_config_defaults returned -0x%x", -ret);
return SSL_CONNECTION_ERROR;
}
mbedtls_ssl_conf_verify(&(tlsDataParams->conf), _iot_tls_verify_cert, NULL);
if(pNetwork->tlsConnectParams.ServerVerificationFlag == true) {
mbedtls_ssl_conf_authmode(&(tlsDataParams->conf), MBEDTLS_SSL_VERIFY_REQUIRED);
} else {
mbedtls_ssl_conf_authmode(&(tlsDataParams->conf), MBEDTLS_SSL_VERIFY_OPTIONAL);
}
mbedtls_ssl_conf_rng(&(tlsDataParams->conf), mbedtls_ctr_drbg_random, &(tlsDataParams->ctr_drbg));
mbedtls_ssl_conf_ca_chain(&(tlsDataParams->conf), &(tlsDataParams->cacert), NULL);
ret = mbedtls_ssl_conf_own_cert(&(tlsDataParams->conf), &(tlsDataParams->clicert), &(tlsDataParams->pkey));
if(ret != 0) {
ESP_LOGE(TAG, "failed! mbedtls_ssl_conf_own_cert returned %d", ret);
return SSL_CONNECTION_ERROR;
}
mbedtls_ssl_conf_read_timeout(&(tlsDataParams->conf), pNetwork->tlsConnectParams.timeout_ms);
#ifdef CONFIG_MBEDTLS_SSL_ALPN
/* Use the AWS IoT ALPN extension for MQTT, if port 443 is requested */
if (pNetwork->tlsConnectParams.DestinationPort == 443) {
const char *alpnProtocols[] = { "x-amzn-mqtt-ca", NULL };
if ((ret = mbedtls_ssl_conf_alpn_protocols(&(tlsDataParams->conf), alpnProtocols)) != 0) {
ESP_LOGE(TAG, "failed! mbedtls_ssl_conf_alpn_protocols returned -0x%x", -ret);
return SSL_CONNECTION_ERROR;
}
}
#endif
if((ret = mbedtls_ssl_setup(&(tlsDataParams->ssl), &(tlsDataParams->conf))) != 0) {
ESP_LOGE(TAG, "failed! mbedtls_ssl_setup returned -0x%x", -ret);
return SSL_CONNECTION_ERROR;
}
if((ret = mbedtls_ssl_set_hostname(&(tlsDataParams->ssl), pNetwork->tlsConnectParams.pDestinationURL)) != 0) {
ESP_LOGE(TAG, "failed! mbedtls_ssl_set_hostname returned %d", ret);
return SSL_CONNECTION_ERROR;
}
ESP_LOGD(TAG, "SSL state connect : %d ", tlsDataParams->ssl.state);
mbedtls_ssl_set_bio(&(tlsDataParams->ssl), &(tlsDataParams->server_fd), mbedtls_net_send, NULL,
mbedtls_net_recv_timeout);
ESP_LOGD(TAG, "ok");
ESP_LOGD(TAG, "SSL state connect : %d ", tlsDataParams->ssl.state);
ESP_LOGD(TAG, "Performing the SSL/TLS handshake...");
while((ret = mbedtls_ssl_handshake(&(tlsDataParams->ssl))) != 0) {
if(ret != MBEDTLS_ERR_SSL_WANT_READ && ret != MBEDTLS_ERR_SSL_WANT_WRITE) {
ESP_LOGE(TAG, "failed! mbedtls_ssl_handshake returned -0x%x", -ret);
if(ret == MBEDTLS_ERR_X509_CERT_VERIFY_FAILED) {
ESP_LOGE(TAG, " Unable to verify the server's certificate. ");
}
return SSL_CONNECTION_ERROR;
}
}
ESP_LOGD(TAG, "ok [ Protocol is %s ] [ Ciphersuite is %s ]", mbedtls_ssl_get_version(&(tlsDataParams->ssl)),
mbedtls_ssl_get_ciphersuite(&(tlsDataParams->ssl)));
if((ret = mbedtls_ssl_get_record_expansion(&(tlsDataParams->ssl))) >= 0) {
ESP_LOGD(TAG, " [ Record expansion is %d ]", ret);
} else {
ESP_LOGD(TAG, " [ Record expansion is unknown (compression) ]");
}
ESP_LOGD(TAG, "Verifying peer X.509 certificate...");
if(pNetwork->tlsConnectParams.ServerVerificationFlag == true) {
if((tlsDataParams->flags = mbedtls_ssl_get_verify_result(&(tlsDataParams->ssl))) != 0) {
ESP_LOGE(TAG, "failed");
mbedtls_x509_crt_verify_info(info_buf, sizeof(info_buf), " ! ", tlsDataParams->flags);
ESP_LOGE(TAG, "%s", info_buf);
ret = SSL_CONNECTION_ERROR;
} else {
ESP_LOGD(TAG, "ok");
ret = SUCCESS;
}
} else {
ESP_LOGW(TAG, " Server Verification skipped");
ret = SUCCESS;
}
if(LOG_LOCAL_LEVEL >= ESP_LOG_DEBUG) {
if (mbedtls_ssl_get_peer_cert(&(tlsDataParams->ssl)) != NULL) {
ESP_LOGD(TAG, "Peer certificate information:");
mbedtls_x509_crt_info((char *) info_buf, sizeof(info_buf) - 1, " ", mbedtls_ssl_get_peer_cert(&(tlsDataParams->ssl)));
ESP_LOGD(TAG, "%s", info_buf);
}
}
return (IoT_Error_t) ret;
}
IoT_Error_t iot_tls_write(Network *pNetwork, unsigned char *pMsg, size_t len, Timer *timer, size_t *written_len) {
size_t written_so_far;
bool isErrorFlag = false;
int frags, ret = 0;
TLSDataParams *tlsDataParams = &(pNetwork->tlsDataParams);
for(written_so_far = 0, frags = 0;
written_so_far < len && !has_timer_expired(timer); written_so_far += ret, frags++) {
while(!has_timer_expired(timer) &&
(ret = mbedtls_ssl_write(&(tlsDataParams->ssl), pMsg + written_so_far, len - written_so_far)) <= 0) {
if(ret != MBEDTLS_ERR_SSL_WANT_READ && ret != MBEDTLS_ERR_SSL_WANT_WRITE) {
ESP_LOGE(TAG, "failed! mbedtls_ssl_write returned -0x%x", -ret);
/* All other negative return values indicate connection needs to be reset.
* Will be caught in ping request so ignored here */
isErrorFlag = true;
break;
}
}
if(isErrorFlag) {
break;
}
}
*written_len = written_so_far;
if(isErrorFlag) {
return NETWORK_SSL_WRITE_ERROR;
} else if(has_timer_expired(timer) && written_so_far != len) {
return NETWORK_SSL_WRITE_TIMEOUT_ERROR;
}
return SUCCESS;
}
IoT_Error_t iot_tls_read(Network *pNetwork, unsigned char *pMsg, size_t len, Timer *timer, size_t *read_len) {
TLSDataParams *tlsDataParams = &(pNetwork->tlsDataParams);
mbedtls_ssl_context *ssl = &(tlsDataParams->ssl);
mbedtls_ssl_config *ssl_conf = &(tlsDataParams->conf);
uint32_t read_timeout;
size_t rxLen = 0;
int ret;
read_timeout = ssl_conf->read_timeout;
while (len > 0) {
/* Make sure we never block on read for longer than timer has left,
but also that we don't block indefinitely (ie read_timeout > 0) */
mbedtls_ssl_conf_read_timeout(ssl_conf, MAX(1, MIN(read_timeout, left_ms(timer))));
ret = mbedtls_ssl_read(ssl, pMsg, len);
/* Restore the old timeout */
mbedtls_ssl_conf_read_timeout(ssl_conf, read_timeout);
if (ret > 0) {
rxLen += ret;
pMsg += ret;
len -= ret;
} else if (ret == 0 || (ret != MBEDTLS_ERR_SSL_WANT_READ && ret != MBEDTLS_ERR_SSL_WANT_WRITE && ret != MBEDTLS_ERR_SSL_TIMEOUT)) {
return NETWORK_SSL_READ_ERROR;
}
// Evaluate timeout after the read to make sure read is done at least once
if (has_timer_expired(timer)) {
break;
}
}
if (len == 0) {
*read_len = rxLen;
return SUCCESS;
}
if (rxLen == 0) {
return NETWORK_SSL_NOTHING_TO_READ;
} else {
return NETWORK_SSL_READ_TIMEOUT_ERROR;
}
}
IoT_Error_t iot_tls_disconnect(Network *pNetwork) {
mbedtls_ssl_context *ssl = &(pNetwork->tlsDataParams.ssl);
int ret = 0;
do {
ret = mbedtls_ssl_close_notify(ssl);
} while(ret == MBEDTLS_ERR_SSL_WANT_WRITE);
/* All other negative return values indicate connection needs to be reset.
* No further action required since this is disconnect call */
return SUCCESS;
}
IoT_Error_t iot_tls_destroy(Network *pNetwork) {
TLSDataParams *tlsDataParams = &(pNetwork->tlsDataParams);
mbedtls_net_free(&(tlsDataParams->server_fd));
mbedtls_x509_crt_free(&(tlsDataParams->clicert));
mbedtls_x509_crt_free(&(tlsDataParams->cacert));
mbedtls_pk_free(&(tlsDataParams->pkey));
mbedtls_ssl_free(&(tlsDataParams->ssl));
mbedtls_ssl_config_free(&(tlsDataParams->conf));
mbedtls_ctr_drbg_free(&(tlsDataParams->ctr_drbg));
mbedtls_entropy_free(&(tlsDataParams->entropy));
return SUCCESS;
}

View File

@ -1,104 +0,0 @@
/*
* Copyright 2010-2015 Amazon.com, Inc. or its affiliates. All Rights Reserved.
* Additions Copyright 2016 Espressif Systems (Shanghai) PTE LTD
*
* Licensed under the Apache License, Version 2.0 (the "License").
* You may not use this file except in compliance with the License.
* A copy of the License is located at
*
* http://aws.amazon.com/apache2.0
*
* or in the "license" file accompanying this file. This file is distributed
* on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
* express or implied. See the License for the specific language governing
* permissions and limitations under the License.
*/
#include "freertos/FreeRTOS.h"
#include "freertos/task.h"
#include "threads_platform.h"
#ifdef __cplusplus
extern "C" {
#endif
/**
* @brief Initialize the provided mutex
*
* Call this function to initialize the mutex
*
* @param IoT_Mutex_t - pointer to the mutex to be initialized
* @return IoT_Error_t - error code indicating result of operation
*/
IoT_Error_t aws_iot_thread_mutex_init(IoT_Mutex_t *pMutex) {
pMutex->mutex = xSemaphoreCreateRecursiveMutex();
return pMutex->mutex ? SUCCESS : MUTEX_INIT_ERROR;
}
/**
* @brief Lock the provided mutex
*
* Call this function to lock the mutex before performing a state change
* Blocking, thread will block until lock request fails
*
* @param IoT_Mutex_t - pointer to the mutex to be locked
* @return IoT_Error_t - error code indicating result of operation
*/
IoT_Error_t aws_iot_thread_mutex_lock(IoT_Mutex_t *pMutex) {
xSemaphoreTakeRecursive(pMutex->mutex, portMAX_DELAY);
return SUCCESS;
}
/**
* @brief Try to lock the provided mutex
*
* Call this function to attempt to lock the mutex before performing a state change
* Non-Blocking, immediately returns with failure if lock attempt fails
*
* @param IoT_Mutex_t - pointer to the mutex to be locked
* @return IoT_Error_t - error code indicating result of operation
*/
IoT_Error_t aws_iot_thread_mutex_trylock(IoT_Mutex_t *pMutex) {
if (xSemaphoreTakeRecursive(pMutex->mutex, 0)) {
return SUCCESS;
} else {
return MUTEX_LOCK_ERROR;
}
}
/**
* @brief Unlock the provided mutex
*
* Call this function to unlock the mutex before performing a state change
*
* @param IoT_Mutex_t - pointer to the mutex to be unlocked
* @return IoT_Error_t - error code indicating result of operation
*/
IoT_Error_t aws_iot_thread_mutex_unlock(IoT_Mutex_t *pMutex) {
if (xSemaphoreGiveRecursive(pMutex->mutex)) {
return SUCCESS;
} else {
return MUTEX_UNLOCK_ERROR;
}
}
/**
* @brief Destroy the provided mutex
*
* Call this function to destroy the mutex
*
* @param IoT_Mutex_t - pointer to the mutex to be destroyed
* @return IoT_Error_t - error code indicating result of operation
*/
IoT_Error_t aws_iot_thread_mutex_destroy(IoT_Mutex_t *pMutex) {
vSemaphoreDelete(pMutex->mutex);
return SUCCESS;
}
#ifdef __cplusplus
}
#endif

View File

@ -1,83 +0,0 @@
/*
* Copyright 2010-2015 Amazon.com, Inc. or its affiliates. All Rights Reserved.
* Additions Copyright 2016 Espressif Systems (Shanghai) PTE LTD
*
* Licensed under the Apache License, Version 2.0 (the "License").
* You may not use this file except in compliance with the License.
* A copy of the License is located at
*
* http://aws.amazon.com/apache2.0
*
* or in the "license" file accompanying this file. This file is distributed
* on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
* express or implied. See the License for the specific language governing
* permissions and limitations under the License.
*/
/**
* @file timer.c
* @brief FreeRTOS implementation of the timer interface uses ticks.
*/
#ifdef __cplusplus
extern "C" {
#endif
#include <limits.h>
#include "timer_platform.h"
#include "freertos/FreeRTOS.h"
#include "freertos/task.h"
#include "esp_log.h"
const static char *TAG = "aws_timer";
bool has_timer_expired(Timer *timer) {
uint32_t now = xTaskGetTickCount();
bool expired = (now - timer->start_ticks) >= timer->timeout_ticks;
/* AWS IoT SDK isn't very RTOS friendly because it polls for "done
timers" a lot without ever sleeping on them. So we hack in some
amount of sleeping here: if it seems like the caller is polling
an unexpired timer in a tight loop then we delay a tick to let
things progress elsewhere.
*/
if(!expired && now == timer->last_polled_ticks) {
vTaskDelay(1);
}
timer->last_polled_ticks = now;
return expired;
}
void countdown_ms(Timer *timer, uint32_t timeout) {
timer->start_ticks = xTaskGetTickCount();
timer->timeout_ticks = timeout / portTICK_PERIOD_MS;
timer->last_polled_ticks = 0;
}
uint32_t left_ms(Timer *timer) {
uint32_t now = xTaskGetTickCount();
uint32_t elapsed = now - timer->start_ticks;
if (elapsed < timer->timeout_ticks) {
return (timer->timeout_ticks - elapsed) * portTICK_PERIOD_MS;
} else {
return 0;
}
}
void countdown_sec(Timer *timer, uint32_t timeout) {
if (timeout > UINT32_MAX / 1000) {
ESP_LOGE(TAG, "timeout is out of range: %ds", timeout);
}
countdown_ms(timer, timeout * 1000);
}
void init_timer(Timer *timer) {
timer->start_ticks = 0;
timer->timeout_ticks = 0;
timer->last_polled_ticks = 0;
}
#ifdef __cplusplus
}
#endif

View File

@ -1,7 +1,21 @@
# bootloader component logic is all in project_include.cmake,
# and subproject/CMakeLists.txt.
#
# This file is only included so the build system finds the
# component
idf_component_register(PRIV_REQUIRES partition_table)
# Do not generate flash file when building bootloader or is in early expansion of the build
if(BOOTLOADER_BUILD OR NOT CONFIG_APP_BUILD_BOOTLOADER)
return()
endif()
# When secure boot is enabled, do not flash bootloader along with invocation of `idf.py flash`
if(NOT CONFIG_SECURE_BOOT)
set(flash_bootloader FLASH_IN_PROJECT)
endif()
# Set values used in flash_bootloader_args.in and generate flash file
# for bootloader
esptool_py_flash_project_args(bootloader 0x1000
${BOOTLOADER_BUILD_DIR}/bootloader.bin
${flash_bootloader}
FLASH_FILE_TEMPLATE flash_bootloader_args.in)
esptool_py_custom_target(bootloader-flash bootloader "bootloader")
add_dependencies(bootloader partition_table)

View File

@ -1,38 +1,63 @@
menu "Bootloader config"
choice LOG_BOOTLOADER_LEVEL
choice BOOTLOADER_COMPILER_OPTIMIZATION
prompt "Bootloader optimization Level"
default BOOTLOADER_COMPILER_OPTIMIZATION_SIZE
help
This option sets compiler optimization level (gcc -O argument)
for the bootloader.
- The default "Size" setting will add the -0s flag to CFLAGS.
- The "Debug" setting will add the -Og flag to CFLAGS.
- The "Performance" setting will add the -O2 flag to CFLAGS.
- The "None" setting will add the -O0 flag to CFLAGS.
Note that custom optimization levels may be unsupported.
config BOOTLOADER_COMPILER_OPTIMIZATION_SIZE
bool "Size (-Os)"
config BOOTLOADER_COMPILER_OPTIMIZATION_DEBUG
bool "Debug (-Og)"
config BOOTLOADER_COMPILER_OPTIMIZATION_PERF
bool "Optimize for performance (-O2)"
config BOOTLOADER_COMPILER_OPTIMIZATION_NONE
bool "Debug without optimization (-O0)"
endchoice
choice BOOTLOADER_LOG_LEVEL
bool "Bootloader log verbosity"
default LOG_BOOTLOADER_LEVEL_INFO
default BOOTLOADER_LOG_LEVEL_INFO
help
Specify how much output to see in bootloader logs.
config LOG_BOOTLOADER_LEVEL_NONE
config BOOTLOADER_LOG_LEVEL_NONE
bool "No output"
config LOG_BOOTLOADER_LEVEL_ERROR
config BOOTLOADER_LOG_LEVEL_ERROR
bool "Error"
config LOG_BOOTLOADER_LEVEL_WARN
config BOOTLOADER_LOG_LEVEL_WARN
bool "Warning"
config LOG_BOOTLOADER_LEVEL_INFO
config BOOTLOADER_LOG_LEVEL_INFO
bool "Info"
config LOG_BOOTLOADER_LEVEL_DEBUG
config BOOTLOADER_LOG_LEVEL_DEBUG
bool "Debug"
config LOG_BOOTLOADER_LEVEL_VERBOSE
config BOOTLOADER_LOG_LEVEL_VERBOSE
bool "Verbose"
endchoice
config LOG_BOOTLOADER_LEVEL
config BOOTLOADER_LOG_LEVEL
int
default 0 if LOG_BOOTLOADER_LEVEL_NONE
default 1 if LOG_BOOTLOADER_LEVEL_ERROR
default 2 if LOG_BOOTLOADER_LEVEL_WARN
default 3 if LOG_BOOTLOADER_LEVEL_INFO
default 4 if LOG_BOOTLOADER_LEVEL_DEBUG
default 5 if LOG_BOOTLOADER_LEVEL_VERBOSE
default 0 if BOOTLOADER_LOG_LEVEL_NONE
default 1 if BOOTLOADER_LOG_LEVEL_ERROR
default 2 if BOOTLOADER_LOG_LEVEL_WARN
default 3 if BOOTLOADER_LOG_LEVEL_INFO
default 4 if BOOTLOADER_LOG_LEVEL_DEBUG
default 5 if BOOTLOADER_LOG_LEVEL_VERBOSE
config BOOTLOADER_SPI_WP_PIN
int "SPI Flash WP Pin when customising pins via eFuse (read help)"
range 0 33
default 7
depends on FLASHMODE_QIO || FLASHMODE_QOUT
depends on ESPTOOLPY_FLASHMODE_QIO || ESPTOOLPY_FLASHMODE_QOUT
help
This value is ignored unless flash mode is set to QIO or QOUT *and* the SPI flash pins have been
overriden by setting the eFuses SPI_PAD_CONFIG_xxx.
@ -140,7 +165,7 @@ menu "Bootloader config"
source for slow_clk - and ends calling app_main.
Re-set timeout is needed due to WDT uses a SLOW_CLK clock source. After changing a frequency slow_clk a
time of WDT needs to re-set for new frequency.
slow_clk depends on ESP32_RTC_CLOCK_SOURCE (INTERNAL_RC or EXTERNAL_CRYSTAL).
slow_clk depends on ESP32_RTC_CLK_SRC (INTERNAL_RC or EXTERNAL_CRYSTAL).
config BOOTLOADER_WDT_DISABLE_IN_USER_CODE
bool "Allows RTC watchdog disable in user code"
@ -163,7 +188,7 @@ menu "Bootloader config"
- these options can increase the execution time.
Note: RTC_WDT will reset while encryption operations will be performed.
config APP_ROLLBACK_ENABLE
config BOOTLOADER_APP_ROLLBACK_ENABLE
bool "Enable app rollback support"
default n
help
@ -175,22 +200,22 @@ menu "Bootloader config"
Note: If during the first boot a new app the power goes out or the WDT works, then roll back will happen.
Rollback is possible only between the apps with the same security versions.
config APP_ANTI_ROLLBACK
config BOOTLOADER_APP_ANTI_ROLLBACK
bool "Enable app anti-rollback support"
depends on APP_ROLLBACK_ENABLE
depends on BOOTLOADER_APP_ROLLBACK_ENABLE
default n
help
This option prevents rollback to previous firmware/application image with lower security version.
config APP_SECURE_VERSION
config BOOTLOADER_APP_SECURE_VERSION
int "eFuse secure version of app"
depends on APP_ANTI_ROLLBACK
depends on BOOTLOADER_APP_ANTI_ROLLBACK
default 0
help
The secure version is the sequence number stored in the header of each firmware.
The security version is set in the bootloader, version is recorded in the eFuse field
as the number of set ones. The allocated number of bits in the efuse field
for storing the security version is limited (see APP_SECURE_VERSION_SIZE_EFUSE_FIELD option).
for storing the security version is limited (see BOOTLOADER_APP_SEC_VER_SIZE_EFUSE_FIELD option).
Bootloader: When bootloader selects an app to boot, an app is selected that has
a security version greater or equal that recorded in eFuse field.
@ -201,24 +226,74 @@ menu "Bootloader config"
Your partition table should has a scheme with ota_0 + ota_1 (without factory).
config APP_SECURE_VERSION_SIZE_EFUSE_FIELD
config BOOTLOADER_APP_SEC_VER_SIZE_EFUSE_FIELD
int "Size of the efuse secure version field"
depends on APP_ANTI_ROLLBACK
range 1 32
default 32
depends on BOOTLOADER_APP_ANTI_ROLLBACK
range 1 32 if IDF_TARGET_ESP32
default 32 if IDF_TARGET_ESP32
range 1 16 if IDF_TARGET_ESP32S2BETA
default 16 if IDF_TARGET_ESP32S2BETA
help
The size of the efuse secure version field. Its length is limited to 32 bits.
The size of the efuse secure version field.
Its length is limited to 32 bits for ESP32 and 16 bits for ESP32S2BETA.
This determines how many times the security version can be increased.
config EFUSE_SECURE_VERSION_EMULATE
config BOOTLOADER_EFUSE_SECURE_VERSION_EMULATE
bool "Emulate operations with efuse secure version(only test)"
default n
depends on APP_ANTI_ROLLBACK
depends on BOOTLOADER_APP_ANTI_ROLLBACK
help
This option allow emulate read/write operations with efuse secure version.
It allow to test anti-rollback implemention without permanent write eFuse bits.
In partition table should be exist this partition `emul_efuse, data, 5, , 0x2000`.
config BOOTLOADER_SKIP_VALIDATE_IN_DEEP_SLEEP
bool "Skip image validation when exiting deep sleep"
depends on (SECURE_BOOT && SECURE_BOOT_INSECURE) || !SECURE_BOOT
default n
help
This option disables the normal validation of an image coming out of
deep sleep (checksums, SHA256, and signature). This is a trade-off
between wakeup performance from deep sleep, and image integrity checks.
Only enable this if you know what you are doing. It should not be used
in conjunction with using deep_sleep() entry and changing the active OTA
partition as this would skip the validation upon first load of the new
OTA partition.
config BOOTLOADER_RESERVE_RTC_SIZE
hex
default 0x10 if BOOTLOADER_SKIP_VALIDATE_IN_DEEP_SLEEP || BOOTLOADER_CUSTOM_RESERVE_RTC
default 0
help
Reserve RTC FAST memory for Skip image validation. This option in bytes.
This option reserves an area in the RTC FAST memory (access only PRO_CPU).
Used to save the addresses of the selected application.
When a wakeup occurs (from Deep sleep), the bootloader retrieves it and
loads the application without validation.
config BOOTLOADER_CUSTOM_RESERVE_RTC
bool "Reserve RTC FAST memory for custom purposes"
default n
help
This option allows the customer to place data in the RTC FAST memory,
this area remains valid when rebooted, except for power loss.
This memory is located at a fixed address and is available
for both the bootloader and the application.
(The application and bootoloader must be compiled with the same option).
The RTC FAST memory has access only through PRO_CPU.
config BOOTLOADER_CUSTOM_RESERVE_RTC_SIZE
hex "Size in bytes for custom purposes"
range 0 0x10
default 0
depends on BOOTLOADER_CUSTOM_RESERVE_RTC
help
This option reserves in RTC FAST memory the area for custom purposes.
If you want to create your own bootloader and save more information
in this area of memory, you can increase it. It must be a multiple of 4 bytes.
This area (rtc_retain_mem_t) is reserved and has access from the bootloader and an application.
endmenu # Bootloader
@ -229,23 +304,26 @@ menu "Security features"
config SECURE_SIGNED_ON_BOOT
bool
default y
depends on SECURE_BOOT_ENABLED || SECURE_SIGNED_ON_BOOT_NO_SECURE_BOOT
depends on SECURE_BOOT || SECURE_SIGNED_ON_BOOT_NO_SECURE_BOOT
config SECURE_SIGNED_ON_UPDATE
bool
default y
depends on SECURE_BOOT_ENABLED || SECURE_SIGNED_ON_UPDATE_NO_SECURE_BOOT
depends on SECURE_BOOT || SECURE_SIGNED_ON_UPDATE_NO_SECURE_BOOT
config SECURE_SIGNED_APPS
bool
default y
select MBEDTLS_ECP_DP_SECP256R1_ENABLED
select MBEDTLS_ECP_C
select MBEDTLS_ECDH_C
select MBEDTLS_ECDSA_C
depends on SECURE_SIGNED_ON_BOOT || SECURE_SIGNED_ON_UPDATE
config SECURE_SIGNED_APPS_NO_SECURE_BOOT
bool "Require signed app images"
default n
depends on !SECURE_BOOT_ENABLED
depends on !SECURE_BOOT
help
Require apps to be signed to verify their integrity.
@ -254,6 +332,35 @@ menu "Security features"
against remote network access, but not physical access. Compared to using hardware Secure Boot this option
is much simpler to implement.
choice SECURE_SIGNED_APPS_SCHEME
bool "App Signing Scheme"
depends on SECURE_BOOT || SECURE_SIGNED_APPS_NO_SECURE_BOOT
default SECURE_SIGNED_APPS_ECDSA_SCHEME if SECURE_BOOT_V1_ENABLED
default SECURE_SIGNED_APPS_RSA_SCHEME if SECURE_BOOT_V2_ENABLED
help
Select the Secure App signing scheme. Depends on the Chip Revision.
There are two options:
1. ECDSA based secure boot scheme. (Only choice for Secure Boot V1)
Supported in ESP32 and ESP32-ECO3.
2. The RSA based secure boot scheme. (Only choice for Secure Boot V2)
Supported in ESP32-ECO3. (ESP32 Chip Revision 3 onwards)
config SECURE_SIGNED_APPS_ECDSA_SCHEME
bool "ECDSA"
depends on IDF_TARGET_ESP32 && (SECURE_SIGNED_APPS_NO_SECURE_BOOT || SECURE_BOOT_V1_ENABLED)
help
Embeds the ECDSA public key in the bootloader and signs the application with an ECDSA key.
Refer to the documentation before enabling.
config SECURE_SIGNED_APPS_RSA_SCHEME
bool "RSA"
depends on ESP32_REV_MIN_3 && SECURE_BOOT_V2_ENABLED
help
Appends the RSA-3072 based Signature block to the application.
Refer to <Secure Boot Version 2 documentation link> before enabling.
endchoice
config SECURE_SIGNED_ON_BOOT_NO_SECURE_BOOT
bool "Bootloader verifies app signatures"
default n
@ -280,23 +387,48 @@ menu "Security features"
If hardware secure boot is not enabled, this option still adds significant security against network-based
attackers by preventing spoofing of OTA updates.
config SECURE_BOOT_ENABLED
bool "Enable hardware secure boot in bootloader (READ DOCS FIRST)"
config SECURE_BOOT
bool "Enable hardware Secure Boot in bootloader (READ DOCS FIRST)"
default n
help
Build a bootloader which enables secure boot on first boot.
Build a bootloader which enables Secure Boot on first boot.
Once enabled, secure boot will not boot a modified bootloader. The bootloader will only load a partition
Once enabled, Secure Boot will not boot a modified bootloader. The bootloader will only load a partition
table or boot an app if the data has a verified digital signature. There are implications for reflashing
updated apps once secure boot is enabled.
When enabling secure boot, JTAG and ROM BASIC Interpreter are permanently disabled by default.
Refer to https://docs.espressif.com/projects/esp-idf/en/latest/security/secure-boot.html before enabling.
choice SECURE_BOOT_VERSION
bool "Select secure boot version"
default SECURE_BOOT_V2_ENABLED if ESP32_REV_MIN_3
depends on SECURE_BOOT
help
Select the Secure Boot Version. Depends on the Chip Revision.
Secure Boot V2 is the new RSA based secure boot scheme.
Supported in ESP32-ECO3. (ESP32 Chip Revision 3 onwards)
Secure Boot V1 is the AES based secure boot scheme.
Supported in ESP32 and ESP32-ECO3.
config SECURE_BOOT_V1_ENABLED
bool "Enable Secure Boot version 1"
depends on IDF_TARGET_ESP32
help
Build a bootloader which enables secure boot version 1 on first boot.
Refer to the Secure Boot section of the ESP-IDF Programmer's Guide for this version before enabling.
config SECURE_BOOT_V2_ENABLED
bool "Enable Secure Boot version 2"
depends on ESP32_REV_MIN_3
help
Build a bootloader which enables Secure Boot version 2 on first boot.
Refer to Secure Boot V2 section of the ESP-IDF Programmer's Guide for this version before enabling.
endchoice
choice SECURE_BOOTLOADER_MODE
bool "Secure bootloader mode"
depends on SECURE_BOOT_ENABLED
depends on SECURE_BOOT_V1_ENABLED
default SECURE_BOOTLOADER_ONE_TIME_FLASH
config SECURE_BOOTLOADER_ONE_TIME_FLASH
@ -331,43 +463,48 @@ menu "Security features"
If enabled (default), these binary files are signed as part of the build process. The file named in
"Secure boot private signing key" will be used to sign the image.
If disabled, unsigned app/partition data will be built. They must be signed manually using espsecure.py
If disabled, unsigned app/partition data will be built. They must be signed manually using espsecure.py.
Version 1 to enable ECDSA Based Secure Boot and Version 2 to enable RSA based Secure Boot.
(for example, on a remote signing server.)
config SECURE_BOOT_SIGNING_KEY
string "Secure boot private signing key"
depends on SECURE_BOOT_BUILD_SIGNED_BINARIES
default secure_boot_signing_key.pem
default "secure_boot_signing_key.pem"
help
Path to the key file used to sign app images.
Key file is an ECDSA private key (NIST256p curve) in PEM format.
Key file is an ECDSA private key (NIST256p curve) in PEM format for Secure Boot V1.
Key file is an RSA private key in PEM format for Secure Boot V2.
Path is evaluated relative to the project directory.
You can generate a new signing key by running the following command:
espsecure.py generate_signing_key secure_boot_signing_key.pem
See https://docs.espressif.com/projects/esp-idf/en/latest/security/secure-boot.html for details.
See the Secure Boot section of the ESP-IDF Programmer's Guide for this version for details.
config SECURE_BOOT_VERIFICATION_KEY
string "Secure boot public signature verification key"
depends on SECURE_SIGNED_APPS && !SECURE_BOOT_BUILD_SIGNED_BINARIES
default signature_verification_key.bin
depends on SECURE_SIGNED_APPS && !SECURE_BOOT_BUILD_SIGNED_BINARIES && !SECURE_SIGNED_APPS_RSA_SCHEME
default "signature_verification_key.bin"
help
Path to a public key file used to verify signed images. This key is compiled into the bootloader and/or
Path to a public key file used to verify signed images.
Secure Boot V1: This ECDSA public key is compiled into the bootloader and/or
app, to verify app images.
Secure Boot V2: This RSA public key is compiled into the signature block at
the end of the bootloader/app.
Key file is in raw binary format, and can be extracted from a
PEM formatted private key using the espsecure.py
extract_public_key command.
Refer to https://docs.espressif.com/projects/esp-idf/en/latest/security/secure-boot.html before enabling.
Refer to the Secure Boot section of the ESP-IDF Programmer's Guide for this version before enabling.
choice SECURE_BOOTLOADER_KEY_ENCODING
bool "Hardware Key Encoding"
depends on SECURE_BOOTLOADER_REFLASHABLE
default SECURE_BOOTLOADER_NO_ENCODING
default SECURE_BOOTLOADER_KEY_ENCODING_256BIT
help
In reflashable secure bootloader mode, a hardware key is derived from the signing key (with SHA-256) and
@ -389,7 +526,7 @@ menu "Security features"
config SECURE_BOOT_INSECURE
bool "Allow potentially insecure options"
depends on SECURE_BOOT_ENABLED
depends on SECURE_BOOT
default N
help
You can disable some of the default protections offered by secure boot, in order to enable testing or a
@ -397,9 +534,9 @@ menu "Security features"
Only enable these options if you are very sure.
Refer to https://docs.espressif.com/projects/esp-idf/en/latest/security/secure-boot.html before enabling.
Refer to the Secure Boot section of the ESP-IDF Programmer's Guide for this version before enabling.
config FLASH_ENCRYPTION_ENABLED
config SECURE_FLASH_ENC_ENABLED
bool "Enable flash encryption on boot (READ DOCS FIRST)"
default N
help
@ -408,33 +545,63 @@ menu "Security features"
Note: After first boot, the system will be permanently encrypted. Re-flashing an encrypted
system is complicated and not always possible.
Read https://docs.espressif.com/projects/esp-idf/en/latest/security/flash-encryption.html before enabling.
Read https://docs.espressif.com/projects/esp-idf/en/latest/security/flash-encryption.html
before enabling.
config FLASH_ENCRYPTION_INSECURE
bool "Allow potentially insecure options"
depends on FLASH_ENCRYPTION_ENABLED
default N
choice SECURE_FLASH_ENCRYPTION_KEYSIZE
bool "Size of generated AES-XTS key"
default SECURE_FLASH_ENCRYPTION_AES128
depends on IDF_TARGET_ESP32S2BETA && SECURE_FLASH_ENC_ENABLED
help
You can disable some of the default protections offered by flash encryption, in order to enable testing or
a custom combination of security features.
Size of generated AES-XTS key.
Only enable these options if you are very sure.
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.
Refer to https://docs.espressif.com/projects/esp-idf/en/latest/security/secure-boot.html and
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
bool "AES-128 (256-bit key)"
config SECURE_FLASH_ENCRYPTION_AES256
bool "AES-256 (512-bit key)"
endchoice
choice SECURE_FLASH_ENCRYPTION_MODE
bool "Enable usage mode"
depends on SECURE_FLASH_ENC_ENABLED
default SECURE_FLASH_ENCRYPTION_MODE_DEVELOPMENT
help
By default Development mode is enabled which allows UART bootloader to perform flash encryption operations
Select Release mode only for production or manufacturing. Once enabled you can not reflash using UART
bootloader
Refer to the Secure Boot section of the ESP-IDF Programmer's Guide for this version and
https://docs.espressif.com/projects/esp-idf/en/latest/security/flash-encryption.html for details.
config SECURE_FLASH_ENCRYPTION_MODE_DEVELOPMENT
bool "Development(NOT SECURE)"
select SECURE_FLASH_UART_BOOTLOADER_ALLOW_ENC
config SECURE_FLASH_ENCRYPTION_MODE_RELEASE
bool "Release"
endchoice
menu "Potentially insecure options"
visible if FLASH_ENCRYPTION_INSECURE || SECURE_BOOT_INSECURE
visible if SECURE_FLASH_ENCRYPTION_MODE_DEVELOPMENT || SECURE_BOOT_INSECURE
# NOTE: Options in this menu NEED to have SECURE_BOOT_INSECURE
# and/or FLASH_ENCRYPTION_INSECURE in "depends on", as the menu
# and/or SECURE_FLASH_ENCRYPTION_MODE_DEVELOPMENT in "depends on", as the menu
# itself doesn't enable/disable its children (if it's not set,
# it's possible for the insecure menu to be disabled but the insecure option
# to remain on which is very bad.)
config SECURE_BOOT_ALLOW_ROM_BASIC
bool "Leave ROM BASIC Interpreter available on reset"
depends on SECURE_BOOT_INSECURE || FLASH_ENCRYPTION_INSECURE
depends on SECURE_BOOT_INSECURE || SECURE_FLASH_ENCRYPTION_MODE_DEVELOPMENT
default N
help
By default, the BASIC ROM Console starts on reset if no valid bootloader is
@ -448,7 +615,7 @@ menu "Security features"
config SECURE_BOOT_ALLOW_JTAG
bool "Allow JTAG Debugging"
depends on SECURE_BOOT_INSECURE || FLASH_ENCRYPTION_INSECURE
depends on SECURE_BOOT_INSECURE || SECURE_FLASH_ENCRYPTION_MODE_DEVELOPMENT
default N
help
If not set (default), the bootloader will permanently disable JTAG (across entire chip) on first boot
@ -473,9 +640,21 @@ menu "Security features"
image to this length. It is generally not recommended to set this option, unless you have a legacy
partitioning scheme which doesn't support 64KB aligned partition lengths.
config FLASH_ENCRYPTION_UART_BOOTLOADER_ALLOW_ENCRYPT
config SECURE_BOOT_V2_ALLOW_EFUSE_RD_DIS
bool "Allow additional read protecting of efuses"
depends on SECURE_BOOT_INSECURE && SECURE_BOOT_V2_ENABLED
help
If not set (default, recommended), on first boot the bootloader will burn the WR_DIS_RD_DIS
efuse when Secure Boot is enabled. This prevents any more efuses from being read protected.
If this option is set, it will remain possible to write the EFUSE_RD_DIS efuse field after Secure
Boot is enabled. This may allow an attacker to read-protect the BLK2 efuse holding the public
key digest, causing an immediate denial of service and possibly allowing an additional fault
injection attack to bypass the signature protection.
config SECURE_FLASH_UART_BOOTLOADER_ALLOW_ENC
bool "Leave UART bootloader encryption enabled"
depends on FLASH_ENCRYPTION_INSECURE
depends on SECURE_FLASH_ENCRYPTION_MODE_DEVELOPMENT
default N
help
If not set (default), the bootloader will permanently disable UART bootloader encryption access on
@ -483,9 +662,9 @@ menu "Security features"
It is recommended to only set this option in testing environments.
config FLASH_ENCRYPTION_UART_BOOTLOADER_ALLOW_DECRYPT
config SECURE_FLASH_UART_BOOTLOADER_ALLOW_DEC
bool "Leave UART bootloader decryption enabled"
depends on FLASH_ENCRYPTION_INSECURE
depends on SECURE_FLASH_ENCRYPTION_MODE_DEVELOPMENT
default N
help
If not set (default), the bootloader will permanently disable UART bootloader decryption access on
@ -494,9 +673,9 @@ menu "Security features"
Only set this option in testing environments. Setting this option allows complete bypass of flash
encryption.
config FLASH_ENCRYPTION_UART_BOOTLOADER_ALLOW_CACHE
config SECURE_FLASH_UART_BOOTLOADER_ALLOW_CACHE
bool "Leave UART bootloader flash cache enabled"
depends on FLASH_ENCRYPTION_INSECURE
depends on SECURE_FLASH_ENCRYPTION_MODE_DEVELOPMENT
default N
help
If not set (default), the bootloader will permanently disable UART bootloader flash cache access on
@ -504,16 +683,20 @@ menu "Security features"
Only set this option in testing environments.
config SECURE_BOOT_TEST_MODE
bool "Secure boot test mode: don't permanently set any eFuses"
depends on SECURE_BOOT_INSECURE
config SECURE_FLASH_REQUIRE_ALREADY_ENABLED
bool "Require flash encryption to be already enabled"
depends on SECURE_FLASH_ENCRYPTION_MODE_DEVELOPMENT
default N
help
If this option is set, all permanent secure boot changes (via eFuse) are disabled.
If not set (default), and flash encryption is not yet enabled in eFuses, the 2nd stage bootloader
will enable flash encryption: generate the flash encryption key and program eFuses.
If this option is set, and flash encryption is not yet enabled, the bootloader will error out and
reboot.
If flash encryption is enabled in eFuses, this option does not change the bootloader behavior.
Log output will state changes which would be applied, but they will not be.
This option is for testing purposes only - it completely disables secure boot protection.
Only use this option in testing environments, to avoid accidentally enabling flash encryption on
the wrong device. The device needs to have flash encryption already enabled using espefuse.py.
endmenu # Potentially Insecure
endmenu # Security features

View File

@ -45,7 +45,7 @@ clean: bootloader-clean
bootloader-list-components:
$(BOOTLOADER_MAKE) list-components
ifndef CONFIG_SECURE_BOOT_ENABLED
ifndef CONFIG_SECURE_BOOT
# If secure boot disabled, bootloader flashing is integrated
# with 'make flash' and no warnings are printed.
@ -115,13 +115,35 @@ $(BOOTLOADER_DIGEST_BIN): $(BOOTLOADER_BIN) $(SECURE_BOOTLOADER_KEY) | check_pyt
@echo "DIGEST $(notdir $@)"
$(ESPSECUREPY) digest_secure_bootloader -k $(SECURE_BOOTLOADER_KEY) -o $@ $<
else # CONFIG_SECURE_BOOT_ENABLED && !CONFIG_SECURE_BOOTLOADER_REFLASHABLE && !CONFIG_SECURE_BOOTLOADER_ONE_TIME_FLASH
else ifdef CONFIG_SECURE_BOOT_V2_ENABLED
BOOTLOADER_SIGNED_BIN := $(BOOTLOADER_BUILD_DIR)/bootloader-signed.bin
ifdef CONFIG_SECURE_BOOT_BUILD_SIGNED_BINARIES
bootloader: $(BOOTLOADER_BIN) $(SDKCONFIG_MAKEFILE) | check_python_dependencies
$(ESPSECUREPY) sign_data --keyfile $(SECURE_BOOT_SIGNING_KEY) --version 2 \
-o $(BOOTLOADER_SIGNED_BIN) $(BOOTLOADER_BIN)
else
bootloader: $(BOOTLOADER_BIN) $(SDKCONFIG_MAKEFILE) | check_python_dependencies
@echo "Bootloader not signed. Sign the bootloader before flashing."
@echo "To sign the bootloader, you can use this command:"
@echo "espsecure.py sign_data --keyfile SECURE_BOOT_SIGNING_KEY --version 2 $(BOOTLOADER_BIN)"
endif
@echo $(SEPARATOR)
@echo "Use the following command to flash the bootloader:"
ifdef CONFIG_SECURE_BOOT_BUILD_SIGNED_BINARIES
@echo "$(ESPTOOLPY_WRITE_FLASH) $(BOOTLOADER_OFFSET) $(BOOTLOADER_SIGNED_BIN)"
else
@echo "$(ESPTOOLPY_WRITE_FLASH) $(BOOTLOADER_OFFSET) $(BOOTLOADER_BIN)"
endif
@echo $(SEPARATOR)
else # CONFIG_SECURE_BOOT && !CONFIG_SECURE_BOOTLOADER_REFLASHABLE \
&& !CONFIG_SECURE_BOOTLOADER_ONE_TIME_FLASH && !CONFIG_SECURE_SIGNED_APPS_RSA_SCHEME
bootloader:
@echo "Invalid bootloader target: bad sdkconfig?"
@exit 1
endif
ifndef CONFIG_SECURE_BOOT_ENABLED
ifndef CONFIG_SECURE_BOOT
# don't build bootloader by default if secure boot is enabled
all_binaries: $(BOOTLOADER_BIN)
endif
@ -131,3 +153,8 @@ bootloader-clean: $(SDKCONFIG_MAKEFILE)
ifdef CONFIG_SECURE_BOOTLOADER_REFLASHABLE
rm -f $(SECURE_BOOTLOADER_KEY) $(BOOTLOADER_DIGEST_BIN)
endif
ifdef CONFIG_SECURE_SIGNED_APPS_RSA_SCHEME
ifdef CONFIG_SECURE_BOOT_BUILD_SIGNED_BINARIES
rm -f $(BOOTLOADER_SIGNED_BIN)
endif
endif

View File

@ -0,0 +1,4 @@
--flash_mode ${ESPFLASHMODE}
--flash_size ${ESPFLASHSIZE}
--flash_freq ${ESPFLASHFREQ}
${OFFSET} ${IMAGE}

View File

@ -1,65 +1,135 @@
# This is for tracking the top level project path
if(BOOTLOADER_BUILD)
set(main_project_path "${CMAKE_BINARY_DIR}/../..")
else()
set(main_project_path "${IDF_PROJECT_PATH}")
endif()
set(BOOTLOADER_OFFSET 0x1000)
get_filename_component(secure_boot_signing_key
"${CONFIG_SECURE_BOOT_SIGNING_KEY}"
ABSOLUTE BASE_DIR "${main_project_path}")
if(NOT EXISTS ${secure_boot_signing_key})
# If the signing key is not found, create a phony gen_secure_boot_signing_key target that
# fails the build. fail_at_build_time also touches CMakeCache.txt to cause a cmake run next time
# (to pick up a new signing key if one exists, etc.)
fail_at_build_time(gen_secure_boot_signing_key
"Secure Boot Signing Key ${CONFIG_SECURE_BOOT_SIGNING_KEY} does not exist. Generate using:"
"\tespsecure.py generate_signing_key ${CONFIG_SECURE_BOOT_SIGNING_KEY}")
else()
add_custom_target(gen_secure_boot_signing_key)
endif()
if(BOOTLOADER_BUILD OR NOT IDF_BUILD_ARTIFACTS)
return() # don't keep recursing, generate on project builds
# Do not generate flash file when building bootloader
if(BOOTLOADER_BUILD OR NOT CONFIG_APP_BUILD_BOOTLOADER)
return()
endif()
# Glue to build the bootloader subproject binary as an external
# cmake project under this one
#
#
set(bootloader_build_dir "${IDF_BUILD_ARTIFACTS_DIR}/bootloader")
idf_build_get_property(build_dir BUILD_DIR)
set(BOOTLOADER_BUILD_DIR "${build_dir}/bootloader")
set(bootloader_binary_files
"${bootloader_build_dir}/bootloader.elf"
"${bootloader_build_dir}/bootloader.bin"
"${bootloader_build_dir}/bootloader.map"
"${BOOTLOADER_BUILD_DIR}/bootloader.elf"
"${BOOTLOADER_BUILD_DIR}/bootloader.bin"
"${BOOTLOADER_BUILD_DIR}/bootloader.map"
)
# These additional files may get generated
if(CONFIG_SECURE_BOOTLOADER_REFLASHABLE)
set(bootloader_binary_files
${bootloader_binary_files}
"${bootloader_build_dir}/bootloader-reflash-digest.bin"
"${bootloader_build_dir}/secure-bootloader-key-192.bin"
"${bootloader_build_dir}/secure-bootloader-key-256.bin"
)
idf_build_get_property(project_dir PROJECT_DIR)
# There are some additional processing when CONFIG_SECURE_SIGNED_APPS. This happens
# when either CONFIG_SECURE_BOOT_V1_ENABLED or CONFIG_SECURE_BOOT_BUILD_SIGNED_BINARIES.
# For both cases, the user either sets binaries to be signed during build or not
# using CONFIG_SECURE_BOOT_BUILD_SIGNED_BINARIES.
#
# Regardless, pass the main project's keys (signing/verification) to the bootloader subproject
# via config.
if(CONFIG_SECURE_SIGNED_APPS)
add_custom_target(gen_secure_boot_keys)
if(CONFIG_SECURE_SIGNED_APPS_ECDSA_SCHEME)
set(secure_apps_signing_scheme "1")
elseif(CONFIG_SECURE_SIGNED_APPS_RSA_SCHEME)
set(secure_apps_signing_scheme "2")
endif()
if(CONFIG_SECURE_BOOT_V1_ENABLED)
# Check that the configuration is sane
if((CONFIG_SECURE_BOOTLOADER_REFLASHABLE AND CONFIG_SECURE_BOOTLOADER_ONE_TIME_FLASH) OR
(NOT CONFIG_SECURE_BOOTLOADER_REFLASHABLE AND NOT CONFIG_SECURE_BOOTLOADER_ONE_TIME_FLASH))
fail_at_build_time(bootloader "Invalid bootloader target: bad sdkconfig?")
endif()
if(CONFIG_SECURE_BOOTLOADER_REFLASHABLE)
set(bootloader_binary_files
${bootloader_binary_files}
"${BOOTLOADER_BUILD_DIR}/bootloader-reflash-digest.bin"
"${BOOTLOADER_BUILD_DIR}/secure-bootloader-key-192.bin"
"${BOOTLOADER_BUILD_DIR}/secure-bootloader-key-256.bin"
)
endif()
endif()
# Since keys are usually given relative to main project dir, get the absolute paths to the keys
# for use by the bootloader subproject. Replace the values in config with these absolute paths,
# so that bootloader subproject does not need to assume main project dir to obtain path to the keys.
if(CONFIG_SECURE_BOOT_BUILD_SIGNED_BINARIES)
get_filename_component(secure_boot_signing_key
"${CONFIG_SECURE_BOOT_SIGNING_KEY}"
ABSOLUTE BASE_DIR "${project_dir}")
if(NOT EXISTS ${secure_boot_signing_key})
# If the signing key is not found, create a phony gen_secure_boot_signing_key target that
# fails the build. fail_at_build_time causes a cmake run next time
# (to pick up a new signing key if one exists, etc.)
fail_at_build_time(gen_secure_boot_signing_key
"Secure Boot Signing Key ${CONFIG_SECURE_BOOT_SIGNING_KEY} does not exist. Generate using:"
"\tespsecure.py generate_signing_key --version ${secure_apps_signing_scheme} \
${CONFIG_SECURE_BOOT_SIGNING_KEY}")
else()
add_custom_target(gen_secure_boot_signing_key)
endif()
set(SECURE_BOOT_SIGNING_KEY ${secure_boot_signing_key}) # needed by some other components
set(sign_key_arg "-DSECURE_BOOT_SIGNING_KEY=${secure_boot_signing_key}")
set(ver_key_arg)
add_dependencies(gen_secure_boot_keys gen_secure_boot_signing_key)
elseif(CONFIG_SECURE_SIGNED_APPS_ECDSA_SCHEME)
get_filename_component(secure_boot_verification_key
${CONFIG_SECURE_BOOT_VERIFICATION_KEY}
ABSOLUTE BASE_DIR "${project_dir}")
if(NOT EXISTS ${secure_boot_verification_key})
# If the verification key is not found, create a phony gen_secure_boot_verification_key target that
# fails the build. fail_at_build_time causes a cmake run next time
# (to pick up a new verification key if one exists, etc.)
fail_at_build_time(gen_secure_boot_verification_key
"Secure Boot Verification Public Key ${CONFIG_SECURE_BOOT_VERIFICATION_KEY} does not exist."
"\tThis can be extracted from the private signing key."
"\tSee docs/security/secure-boot-v1.rst for details.")
else()
add_custom_target(gen_secure_boot_verification_key)
endif()
set(sign_key_arg)
set(ver_key_arg "-DSECURE_BOOT_VERIFICATION_KEY=${secure_boot_verification_key}")
add_dependencies(gen_secure_boot_keys gen_secure_boot_verification_key)
endif()
else()
set(sign_key_arg)
set(ver_key_arg)
endif()
if((NOT CONFIG_SECURE_BOOT_ENABLED) OR
CONFIG_SECURE_BOOTLOADER_REFLASHABLE OR
CONFIG_SECURE_BOOTLOADER_ONE_TIME_FLASH)
externalproject_add(bootloader
# TODO: support overriding the bootloader in COMPONENT_PATHS
SOURCE_DIR "${IDF_PATH}/components/bootloader/subproject"
BINARY_DIR "${bootloader_build_dir}"
CMAKE_ARGS -DSDKCONFIG=${SDKCONFIG} -DIDF_PATH=${IDF_PATH}
-DSECURE_BOOT_SIGNING_KEY=${secure_boot_signing_key}
INSTALL_COMMAND ""
BUILD_ALWAYS 1 # no easy way around this...
BUILD_BYPRODUCTS ${bootloader_binary_files}
DEPENDS gen_secure_boot_signing_key
)
else()
fail_at_build_time(bootloader "Invalid bootloader target: bad sdkconfig?")
idf_build_get_property(idf_path IDF_PATH)
idf_build_get_property(idf_target IDF_TARGET)
idf_build_get_property(sdkconfig SDKCONFIG)
idf_build_get_property(python PYTHON)
idf_build_get_property(extra_cmake_args EXTRA_CMAKE_ARGS)
externalproject_add(bootloader
SOURCE_DIR "${CMAKE_CURRENT_LIST_DIR}/subproject"
BINARY_DIR "${BOOTLOADER_BUILD_DIR}"
CMAKE_ARGS -DSDKCONFIG=${sdkconfig} -DIDF_PATH=${idf_path} -DIDF_TARGET=${idf_target}
-DPYTHON_DEPS_CHECKED=1 -DPYTHON=${python}
-DEXTRA_COMPONENT_DIRS=${CMAKE_CURRENT_LIST_DIR}
${sign_key_arg} ${ver_key_arg}
# LEGACY_INCLUDE_COMMON_HEADERS has to be passed in via cache variable since
# the bootloader common component requirements depends on this and
# config variables are not available before project() call.
-DLEGACY_INCLUDE_COMMON_HEADERS=${CONFIG_LEGACY_INCLUDE_COMMON_HEADERS}
${extra_cmake_args}
INSTALL_COMMAND ""
BUILD_ALWAYS 1 # no easy way around this...
BUILD_BYPRODUCTS ${bootloader_binary_files}
)
if(CONFIG_SECURE_SIGNED_APPS)
add_dependencies(bootloader gen_secure_boot_keys)
endif()
# this is a hack due to an (annoying) shortcoming in cmake, it can't

View File

@ -0,0 +1,25 @@
# sdkconfig replacement configurations for deprecated options formatted as
# CONFIG_DEPRECATED_OPTION CONFIG_NEW_OPTION
CONFIG_LOG_BOOTLOADER_LEVEL CONFIG_BOOTLOADER_LOG_LEVEL
CONFIG_LOG_BOOTLOADER_LEVEL_NONE CONFIG_BOOTLOADER_LOG_LEVEL_NONE
CONFIG_LOG_BOOTLOADER_LEVEL_ERROR CONFIG_BOOTLOADER_LOG_LEVEL_ERROR
CONFIG_LOG_BOOTLOADER_LEVEL_WARN CONFIG_BOOTLOADER_LOG_LEVEL_WARN
CONFIG_LOG_BOOTLOADER_LEVEL_INFO CONFIG_BOOTLOADER_LOG_LEVEL_INFO
CONFIG_LOG_BOOTLOADER_LEVEL_DEBUG CONFIG_BOOTLOADER_LOG_LEVEL_DEBUG
CONFIG_LOG_BOOTLOADER_LEVEL_VERBOSE CONFIG_BOOTLOADER_LOG_LEVEL_VERBOSE
CONFIG_APP_ROLLBACK_ENABLE CONFIG_BOOTLOADER_APP_ROLLBACK_ENABLE
CONFIG_APP_ANTI_ROLLBACK CONFIG_BOOTLOADER_APP_ANTI_ROLLBACK
CONFIG_APP_SECURE_VERSION CONFIG_BOOTLOADER_APP_SECURE_VERSION
CONFIG_APP_SECURE_VERSION_SIZE_EFUSE_FIELD CONFIG_BOOTLOADER_APP_SEC_VER_SIZE_EFUSE_FIELD
CONFIG_EFUSE_SECURE_VERSION_EMULATE CONFIG_BOOTLOADER_EFUSE_SECURE_VERSION_EMULATE
CONFIG_FLASH_ENCRYPTION_ENABLED CONFIG_SECURE_FLASH_ENC_ENABLED
CONFIG_FLASH_ENCRYPTION_INSECURE CONFIG_SECURE_FLASH_ENCRYPTION_MODE_DEVELOPMENT
CONFIG_FLASH_ENCRYPTION_UART_BOOTLOADER_ALLOW_ENCRYPT CONFIG_SECURE_FLASH_UART_BOOTLOADER_ALLOW_ENC
CONFIG_FLASH_ENCRYPTION_UART_BOOTLOADER_ALLOW_DECRYPT CONFIG_SECURE_FLASH_UART_BOOTLOADER_ALLOW_DEC
CONFIG_FLASH_ENCRYPTION_UART_BOOTLOADER_ALLOW_CACHE CONFIG_SECURE_FLASH_UART_BOOTLOADER_ALLOW_CACHE
# Secure Boot Scheme
CONFIG_SECURE_BOOT_ENABLED CONFIG_SECURE_BOOT_V1_ENABLED

View File

@ -10,32 +10,24 @@ if(NOT IDF_PATH)
"in by the parent build process.")
endif()
set(COMPONENTS bootloader esptool_py esp32 partition_table soc bootloader_support log spi_flash micro-ecc soc main efuse)
if(NOT IDF_TARGET)
message(FATAL_ERROR "Bootloader subproject expects the IDF_TARGET variable to be passed "
"in by the parent build process.")
endif()
set(COMPONENTS bootloader esptool_py partition_table soc bootloader_support log spi_flash micro-ecc main efuse)
set(BOOTLOADER_BUILD 1)
add_definitions(-DBOOTLOADER_BUILD=1)
set(COMPONENT_REQUIRES_COMMON log esp32 soc)
include("${IDF_PATH}/tools/cmake/project.cmake")
set(common_req log esp_rom esp_common xtensa)
if(LEGACY_INCLUDE_COMMON_HEADERS)
list(APPEND common_req soc)
endif()
idf_build_set_property(__COMPONENT_REQUIRES_COMMON "${common_req}")
idf_build_set_property(__OUTPUT_SDKCONFIG 0)
project(bootloader)
target_linker_script(bootloader.elf
"main/esp32.bootloader.ld"
"main/esp32.bootloader.rom.ld"
)
# as cmake won't attach linker args to a header-only library, attach
# linker args directly to the bootloader.elf
set(ESP32_BOOTLOADER_LINKER_SCRIPTS
"../../esp32/ld/esp32.rom.ld"
"../../esp32/ld/esp32.rom.spiram_incompatible_fns.ld"
"../../esp32/ld/esp32.peripherals.ld")
target_linker_script(bootloader.elf ${ESP32_BOOTLOADER_LINKER_SCRIPTS})
target_link_libraries(bootloader.elf gcc)
set(secure_boot_signing_key ${SECURE_BOOT_SIGNING_KEY})
idf_build_set_property(COMPILE_DEFINITIONS "-DBOOTLOADER_BUILD=1" APPEND)
idf_build_set_property(COMPILE_OPTIONS "-fno-stack-protector" APPEND)
string(REPLACE ";" " " espsecurepy "${ESPSECUREPY}")
string(REPLACE ";" " " espefusepy "${ESPEFUSEPY}")
@ -59,7 +51,7 @@ if(CONFIG_SECURE_BOOTLOADER_REFLASHABLE)
add_custom_command(OUTPUT "${secure_bootloader_key}"
COMMAND ${ESPSECUREPY} digest_private_key
--keylen "${key_digest_len}"
--keyfile "${secure_boot_signing_key}"
--keyfile "${SECURE_BOOT_SIGNING_KEY}"
"${secure_bootloader_key}"
VERBATIM)
@ -73,7 +65,7 @@ if(CONFIG_SECURE_BOOTLOADER_REFLASHABLE)
"\nTo generate one, you can use this command:"
"\n\t${espsecurepy} generate_flash_encryption_key ${secure_bootloader_key}"
"\nIf a signing key is present, then instead use:"
"\n\t${ESPSECUREPY} digest_private_key "
"\n\t${espsecurepy} digest_private_key "
"--keylen (192/256) --keyfile KEYFILE "
"${secure_bootloader_key}")
endif()
@ -83,15 +75,49 @@ if(CONFIG_SECURE_BOOTLOADER_REFLASHABLE)
add_custom_command(OUTPUT "${bootloader_digest_bin}"
COMMAND ${CMAKE_COMMAND} -E echo "DIGEST ${bootloader_digest_bin}"
COMMAND ${ESPSECUREPY} digest_secure_bootloader --keyfile "${secure_bootloader_key}"
-o "${bootloader_digest_bin}" "${CMAKE_BINARY_DIR}/bootloader.bin"
DEPENDS gen_secure_bootloader_key "${CMAKE_BINARY_DIR}/bootloader.bin"
-o "${bootloader_digest_bin}" "${CMAKE_BINARY_DIR}/bootloader.bin"
MAIN_DEPENDENCY "${CMAKE_BINARY_DIR}/.bin_timestamp"
DEPENDS gen_secure_bootloader_key gen_project_binary
VERBATIM)
add_custom_target (gen_bootloader_digest_bin ALL DEPENDS "${bootloader_digest_bin}")
endif()
if(CONFIG_SECURE_BOOT_V2_ENABLED)
if(CONFIG_SECURE_BOOT_BUILD_SIGNED_BINARIES)
get_filename_component(secure_boot_signing_key
"${SECURE_BOOT_SIGNING_KEY}" ABSOLUTE BASE_DIR "${project_dir}")
if(NOT EXISTS "${secure_boot_signing_key}")
message(FATAL_ERROR
"Secure Boot Signing Key Not found."
"\nGenerate the Secure Boot V2 RSA-PSS 3072 Key."
"\nTo generate one, you can use this command:"
"\n\t${espsecurepy} generate_signing_key --version 2 ${SECURE_BOOT_SIGNING_KEY}")
endif()
set(bootloader_unsigned_bin "bootloader-unsigned.bin")
add_custom_command(OUTPUT ".signed_bin_timestamp"
COMMAND cp "${CMAKE_BINARY_DIR}/${PROJECT_BIN}" "${CMAKE_BINARY_DIR}/${bootloader_unsigned_bin}"
COMMAND ${ESPSECUREPY} sign_data --version 2 --keyfile "${secure_boot_signing_key}"
-o "${CMAKE_BINARY_DIR}/${PROJECT_BIN}" "${CMAKE_BINARY_DIR}/${bootloader_unsigned_bin}"
COMMAND ${CMAKE_COMMAND} -E echo "Generated signed binary image ${build_dir}/${PROJECT_BIN}"
"from ${CMAKE_BINARY_DIR}/${bootloader_unsigned_bin}"
COMMAND ${CMAKE_COMMAND} -E md5sum "${CMAKE_BINARY_DIR}/${PROJECT_BIN}" > "${CMAKE_BINARY_DIR}/.signed_bin_timestamp"
DEPENDS "${build_dir}/.bin_timestamp"
VERBATIM
COMMENT "Generated the signed Bootloader")
else()
add_custom_command(OUTPUT ".signed_bin_timestamp"
VERBATIM
COMMENT "Bootloader generated but not signed")
endif()
add_custom_target (gen_signed_bootloader ALL DEPENDS "${build_dir}/.signed_bin_timestamp")
endif()
if(CONFIG_SECURE_BOOTLOADER_ONE_TIME_FLASH)
add_custom_command(TARGET bootloader POST_BUILD
add_custom_command(TARGET bootloader.elf POST_BUILD
COMMAND ${CMAKE_COMMAND} -E echo
"=============================================================================="
COMMAND ${CMAKE_COMMAND} -E echo
@ -103,9 +129,8 @@ if(CONFIG_SECURE_BOOTLOADER_ONE_TIME_FLASH)
COMMAND ${CMAKE_COMMAND} -E echo
"* IMPORTANT: After first boot, BOOTLOADER CANNOT BE RE-FLASHED on same device"
VERBATIM)
elseif(CONFIG_SECURE_BOOTLOADER_REFLASHABLE)
add_custom_command(TARGET bootloader POST_BUILD
add_custom_command(TARGET bootloader.elf POST_BUILD
COMMAND ${CMAKE_COMMAND} -E echo
"=============================================================================="
COMMAND ${CMAKE_COMMAND} -E echo
@ -134,4 +159,18 @@ elseif(CONFIG_SECURE_BOOTLOADER_REFLASHABLE)
"* Not recommended to re-use the same secure boot keyfile on multiple production devices."
DEPENDS gen_secure_bootloader_key gen_bootloader_digest_bin
VERBATIM)
elseif(CONFIG_SECURE_BOOT_V2_ENABLED)
add_custom_command(TARGET bootloader.elf POST_BUILD
COMMAND ${CMAKE_COMMAND} -E echo
"=============================================================================="
COMMAND ${CMAKE_COMMAND} -E echo
"Bootloader built. Secure boot enabled, so bootloader not flashed automatically."
COMMAND ${CMAKE_COMMAND} -E echo
"Secure boot enabled, so bootloader not flashed automatically."
COMMAND ${CMAKE_COMMAND} -E echo
"\t${esptoolpy_write_flash} ${BOOTLOADER_OFFSET} ${CMAKE_BINARY_DIR}/bootloader.bin"
COMMAND ${CMAKE_COMMAND} -E echo
"=============================================================================="
DEPENDS gen_signed_bootloader
VERBATIM)
endif()

View File

@ -14,8 +14,11 @@ COMPONENTS := esptool_py bootloader_support log spi_flash micro-ecc soc main efu
CFLAGS =
CXXFLAGS =
#We cannot include the esp32 component directly but we need its includes.
CFLAGS += -I $(IDF_PATH)/components/esp32/include
#We cannot include the idf_target, esp_rom, esp_common component directly but we need their includes.
CFLAGS += -I $(IDF_PATH)/components/$(IDF_TARGET)/include
CFLAGS += -I $(IDF_PATH)/components/esp_rom/include
CFLAGS += -I $(IDF_PATH)/components/esp_common/include
CFLAGS += -I $(IDF_PATH)/components/xtensa/include -I $(IDF_PATH)/components/xtensa/$(IDF_TARGET)/include
# The bootloader pseudo-component is also included in this build, for its Kconfig.projbuild to be included.
#

View File

@ -0,0 +1,3 @@
# only compile the "uECC_verify_antifault.c" file which includes the "micro-ecc/uECC.c" source file
idf_component_register(SRCS "uECC_verify_antifault.c"
INCLUDE_DIRS . micro-ecc)

View File

@ -0,0 +1,6 @@
# only compile the "uECC_verify_antifault.c" file which includes the "micro-ecc/uECC.c" source file
COMPONENT_SRCDIRS := .
COMPONENT_ADD_INCLUDEDIRS := . micro-ecc
COMPONENT_SUBMODULES := micro-ecc

View File

@ -0,0 +1,141 @@
/* Copyright 2014, Kenneth MacKay. Licensed under the BSD 2-clause license.
Modifications Copyright 2020, Espressif Systems (Shanghai) PTE LTD. Licensed under the BSD
2-clause license.
*/
/* uECC_verify() calls a number of static functions form here and
uses other definitions, so we just build that whole source file here and then append
our modified version uECC_verify_antifault(). */
#include "micro-ecc/uECC.c"
/* Version of uECC_verify() which also copies message_hash into verified_hash,
but only if the signature is valid. Does this in an FI resistant way.
*/
int uECC_verify_antifault(const uint8_t *public_key,
const uint8_t *message_hash,
unsigned hash_size,
const uint8_t *signature,
uECC_Curve curve,
uint8_t *verified_hash) {
uECC_word_t u1[uECC_MAX_WORDS], u2[uECC_MAX_WORDS];
uECC_word_t z[uECC_MAX_WORDS];
uECC_word_t sum[uECC_MAX_WORDS * 2];
uECC_word_t rx[uECC_MAX_WORDS];
uECC_word_t ry[uECC_MAX_WORDS];
uECC_word_t tx[uECC_MAX_WORDS];
uECC_word_t ty[uECC_MAX_WORDS];
uECC_word_t tz[uECC_MAX_WORDS];
const uECC_word_t *points[4];
const uECC_word_t *point;
bitcount_t num_bits;
bitcount_t i;
#if uECC_VLI_NATIVE_LITTLE_ENDIAN
uECC_word_t *_public = (uECC_word_t *)public_key;
#else
uECC_word_t _public[uECC_MAX_WORDS * 2];
#endif
uECC_word_t r[uECC_MAX_WORDS], s[uECC_MAX_WORDS];
wordcount_t num_words = curve->num_words;
wordcount_t num_n_words = BITS_TO_WORDS(curve->num_n_bits);
rx[num_n_words - 1] = 0;
r[num_n_words - 1] = 0;
s[num_n_words - 1] = 0;
#if uECC_VLI_NATIVE_LITTLE_ENDIAN
bcopy((uint8_t *) r, signature, curve->num_bytes);
bcopy((uint8_t *) s, signature + curve->num_bytes, curve->num_bytes);
#else
uECC_vli_bytesToNative(_public, public_key, curve->num_bytes);
uECC_vli_bytesToNative(
_public + num_words, public_key + curve->num_bytes, curve->num_bytes);
uECC_vli_bytesToNative(r, signature, curve->num_bytes);
uECC_vli_bytesToNative(s, signature + curve->num_bytes, curve->num_bytes);
#endif
/* r, s must not be 0. */
if (uECC_vli_isZero(r, num_words) || uECC_vli_isZero(s, num_words)) {
return 0;
}
/* r, s must be < n. */
if (uECC_vli_cmp(curve->n, r, num_n_words) != 1 ||
uECC_vli_cmp(curve->n, s, num_n_words) != 1) {
return 0;
}
/* Calculate u1 and u2. */
uECC_vli_modInv(z, s, curve->n, num_n_words); /* z = 1/s */
u1[num_n_words - 1] = 0;
bits2int(u1, message_hash, hash_size, curve);
uECC_vli_modMult(u1, u1, z, curve->n, num_n_words); /* u1 = e/s */
uECC_vli_modMult(u2, r, z, curve->n, num_n_words); /* u2 = r/s */
/* Calculate sum = G + Q. */
uECC_vli_set(sum, _public, num_words);
uECC_vli_set(sum + num_words, _public + num_words, num_words);
uECC_vli_set(tx, curve->G, num_words);
uECC_vli_set(ty, curve->G + num_words, num_words);
uECC_vli_modSub(z, sum, tx, curve->p, num_words); /* z = x2 - x1 */
XYcZ_add(tx, ty, sum, sum + num_words, curve);
uECC_vli_modInv(z, z, curve->p, num_words); /* z = 1/z */
apply_z(sum, sum + num_words, z, curve);
/* Use Shamir's trick to calculate u1*G + u2*Q */
points[0] = 0;
points[1] = curve->G;
points[2] = _public;
points[3] = sum;
num_bits = smax(uECC_vli_numBits(u1, num_n_words),
uECC_vli_numBits(u2, num_n_words));
point = points[(!!uECC_vli_testBit(u1, num_bits - 1)) |
((!!uECC_vli_testBit(u2, num_bits - 1)) << 1)];
uECC_vli_set(rx, point, num_words);
uECC_vli_set(ry, point + num_words, num_words);
uECC_vli_clear(z, num_words);
z[0] = 1;
for (i = num_bits - 2; i >= 0; --i) {
uECC_word_t index;
curve->double_jacobian(rx, ry, z, curve);
index = (!!uECC_vli_testBit(u1, i)) | ((!!uECC_vli_testBit(u2, i)) << 1);
point = points[index];
if (point) {
uECC_vli_set(tx, point, num_words);
uECC_vli_set(ty, point + num_words, num_words);
apply_z(tx, ty, z, curve);
uECC_vli_modSub(tz, rx, tx, curve->p, num_words); /* Z = x2 - x1 */
XYcZ_add(tx, ty, rx, ry, curve);
uECC_vli_modMult_fast(z, z, tz, curve);
}
}
uECC_vli_modInv(z, z, curve->p, num_words); /* Z = 1/Z */
apply_z(rx, ry, z, curve);
/* v = x1 (mod n) */
if (uECC_vli_cmp(curve->n, rx, num_n_words) != 1) {
uECC_vli_sub(rx, rx, curve->n, num_n_words);
}
/* Anti-FI addition. Copy message_hash into verified_hash, but do it in a
way that it will only happen if v == r (ie, rx == r)
*/
const uECC_word_t *mhash_words = (const uECC_word_t *)message_hash;
uECC_word_t *vhash_words = (uECC_word_t *)verified_hash;
unsigned hash_words = hash_size / sizeof(uECC_word_t);
for (int w = 0; w < hash_words; w++) {
/* note: using curve->num_words here to encourage compiler to re-read this variable */
vhash_words[w] = mhash_words[w] ^ rx[w % curve->num_words] ^ r[w % curve->num_words];
}
/* Curve may be longer than hash, in which case keep reading the rest of the bytes */
for (int w = hash_words; w < curve->num_words; w++) {
vhash_words[w % hash_words] |= rx[w] ^ r[w];
}
/* Accept only if v == r. */
return (int)(uECC_vli_equal(rx, r, num_words));
}

View File

@ -0,0 +1,18 @@
/* Copyright 2014, Kenneth MacKay. Licensed under the BSD 2-clause license.
Modifications Copyright 2020, Espressif Systems (Shanghai) PTE LTD. Licensed under the BSD
2-clause license.
*/
#pragma once
#include "uECC.h"
/* Version uECC_verify() that also copies message_hash to verified_hash
if the signature is valid, and does it in a way that is harder to attack
with fault injection.
*/
int uECC_verify_antifault(const uint8_t *public_key,
const uint8_t *message_hash,
unsigned hash_size,
const uint8_t *signature,
uECC_Curve curve,
uint8_t *verified_hash);

View File

@ -1,4 +1,9 @@
set(COMPONENT_SRCS "bootloader_start.c")
set(COMPONENT_ADD_INCLUDEDIRS "")
set(COMPONENT_REQUIRES "bootloader bootloader_support")
register_component()
idf_component_register(SRCS "bootloader_start.c"
REQUIRES bootloader bootloader_support)
idf_build_get_property(target IDF_TARGET)
set(scripts "ld/${target}/bootloader.ld"
"ld/${target}/bootloader.rom.ld")
target_linker_script(${COMPONENT_LIB} INTERFACE "${scripts}")

View File

@ -1,4 +0,0 @@
# Submodules normally added in component.mk, but fully qualified
# paths can be added at this level (we need binary librtc to be
# available to link bootloader).
COMPONENT_SUBMODULES += $(IDF_PATH)/components/esp32/lib

View File

@ -1,4 +1,4 @@
// Copyright 2015-2016 Espressif Systems (Shanghai) PTE LTD
// Copyright 2015-2019 Espressif Systems (Shanghai) PTE LTD
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
@ -11,38 +11,39 @@
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
#include <string.h>
#include <stdint.h>
#include <stdbool.h>
#include "esp_log.h"
#include "rom/gpio.h"
#include "rom/spi_flash.h"
#include "bootloader_config.h"
#include "bootloader_init.h"
#include "bootloader_utility.h"
#include "bootloader_common.h"
#include "sdkconfig.h"
#include "esp_image_format.h"
static const char* TAG = "boot";
static const char *TAG = "boot";
static int select_partition_number (bootloader_state_t *bs);
static int select_partition_number(bootloader_state_t *bs);
static int selected_boot_partition(const bootloader_state_t *bs);
/*
* We arrive here after the ROM bootloader finished loading this second stage bootloader from flash.
* The hardware is mostly uninitialized, flash cache is down and the app CPU is in reset.
* We do have a stack, so we can do the initialization in C.
*/
void __attribute__((noreturn)) call_start_cpu0()
void __attribute__((noreturn)) call_start_cpu0(void)
{
// 1. Hardware initialization
if (bootloader_init() != ESP_OK) {
bootloader_reset();
}
#ifdef CONFIG_BOOTLOADER_SKIP_VALIDATE_IN_DEEP_SLEEP
// If this boot is a wake up from the deep sleep then go to the short way,
// try to load the application which worked before deep sleep.
// It skips a lot of checks due to it was done before (while first boot).
bootloader_utility_load_boot_image_from_deep_sleep();
// If it is not successful try to load an application as usual.
#endif
// 2. Select the number of boot partition
bootloader_state_t bs = { 0 };
bootloader_state_t bs = {0};
int boot_index = select_partition_number(&bs);
if (boot_index == INVALID_INDEX) {
bootloader_reset();
@ -53,7 +54,7 @@ void __attribute__((noreturn)) call_start_cpu0()
}
// Select the number of boot partition
static int select_partition_number (bootloader_state_t *bs)
static int select_partition_number(bootloader_state_t *bs)
{
// 1. Load partition table
if (!bootloader_utility_load_partition_table(bs)) {
@ -74,7 +75,8 @@ static int selected_boot_partition(const bootloader_state_t *bs)
int boot_index = bootloader_utility_get_selected_boot_partition(bs);
if (boot_index == INVALID_INDEX) {
return boot_index; // Unrecoverable failure (not due to corrupt ota data or bad partition contents)
} else {
}
if (bootloader_common_get_reset_reason(0) != DEEPSLEEP_RESET) {
// Factory firmware.
#ifdef CONFIG_BOOTLOADER_FACTORY_RESET
if (bootloader_common_check_long_hold_gpio(CONFIG_BOOTLOADER_NUM_PIN_FACTORY_RESET, CONFIG_BOOTLOADER_HOLD_TIME_GPIO) == 1) {
@ -91,7 +93,7 @@ static int selected_boot_partition(const bootloader_state_t *bs)
return bootloader_utility_get_selected_boot_partition(bs);
}
#endif
// TEST firmware.
// TEST firmware.
#ifdef CONFIG_BOOTLOADER_APP_TEST
if (bootloader_common_check_long_hold_gpio(CONFIG_BOOTLOADER_NUM_PIN_APP_TEST, CONFIG_BOOTLOADER_HOLD_TIME_GPIO) == 1) {
ESP_LOGI(TAG, "Detect a boot condition of the test firmware");
@ -111,3 +113,9 @@ static int selected_boot_partition(const bootloader_state_t *bs)
}
return boot_index;
}
// Return global reent struct if any newlib functions are linked to bootloader
struct _reent *__getreent(void)
{
return _GLOBAL_REENT;
}

View File

@ -6,14 +6,20 @@
#
LINKER_SCRIPTS := \
esp32.bootloader.ld \
$(IDF_PATH)/components/esp32/ld/esp32.rom.ld \
$(IDF_PATH)/components/esp32/ld/esp32.rom.spiram_incompatible_fns.ld \
$(IDF_PATH)/components/esp32/ld/esp32.peripherals.ld \
esp32.bootloader.rom.ld
$(COMPONENT_PATH)/ld/$(IDF_TARGET)/bootloader.ld \
$(COMPONENT_PATH)/ld/$(IDF_TARGET)/bootloader.rom.ld \
$(IDF_PATH)/components/esp_rom/$(IDF_TARGET)/ld/$(IDF_TARGET).rom.ld \
$(IDF_PATH)/components/esp_rom/$(IDF_TARGET)/ld/$(IDF_TARGET).rom.newlib-funcs.ld \
$(IDF_PATH)/components/$(IDF_TARGET)/ld/$(IDF_TARGET).peripherals.ld
ifndef CONFIG_SPI_FLASH_ROM_DRIVER_PATCH
LINKER_SCRIPTS += $(IDF_PATH)/components/esp32/ld/esp32.rom.spiflash.ld
# SPI driver patch for ROM is only needed in ESP32
ifdef CONFIG_IDF_TARGET_ESP32
ifndef CONFIG_SPI_FLASH_ROM_DRIVER_PATCH
LINKER_SCRIPTS += $(IDF_PATH)/components/esp_rom/$(IDF_TARGET)/ld/$(IDF_TARGET).rom.spiflash.ld
endif
ifdef CONFIG_ESP32_REV_MIN_3
LINKER_SCRIPTS += $(IDF_PATH)/components/esp_rom/$(IDF_TARGET)/ld/$(IDF_TARGET).rom.eco3.ld
endif
endif
COMPONENT_ADD_LDFLAGS += -L $(COMPONENT_PATH) $(addprefix -T ,$(LINKER_SCRIPTS))

View File

@ -1,168 +0,0 @@
/*
Linker file used to link the bootloader.
*/
/* Simplified memory map for the bootloader
The main purpose is to make sure the bootloader can load into main memory
without overwriting itself.
*/
MEMORY
{
/* I/O */
dport0_seg (RW) : org = 0x3FF00000, len = 0x10
/* IRAM POOL1, used for APP CPU cache. Bootloader runs from here during the final stage of loading the app because APP CPU is still held in reset, the main app enables APP CPU cache */
iram_loader_seg (RWX) : org = 0x40078000, len = 0x8000 /* 32KB, APP CPU cache */
/* 63kB, IRAM. We skip the first 1k to prevent the entry point being
placed into the same range as exception vectors in the app.
This leads to idf_monitor decoding ROM bootloader "entry 0x40080xxx"
message as one of the exception vectors, which looks scary to users.
*/
iram_seg (RWX) : org = 0x40080400, len = 0xfc00
/* 64k at the end of DRAM, after ROM bootloader stack */
dram_seg (RW) : org = 0x3FFF0000, len = 0x10000
}
/* Default entry point: */
ENTRY(call_start_cpu0);
SECTIONS
{
.iram_loader.text :
{
. = ALIGN (16);
_loader_text_start = ABSOLUTE(.);
*(.stub .gnu.warning .gnu.linkonce.literal.* .gnu.linkonce.t.*.literal .gnu.linkonce.t.*)
*(.iram1 .iram1.*) /* catch stray IRAM_ATTR */
*liblog.a:(.literal .text .literal.* .text.*)
*libgcc.a:(.literal .text .literal.* .text.*)
*libbootloader_support.a:bootloader_common.*(.literal .text .literal.* .text.*)
*libbootloader_support.a:bootloader_flash.*(.literal .text .literal.* .text.*)
*libbootloader_support.a:bootloader_random.*(.literal .text .literal.* .text.*)
*libbootloader_support.a:bootloader_utility.*(.literal .text .literal.* .text.*)
*libbootloader_support.a:bootloader_sha.*(.literal .text .literal.* .text.*)
*libbootloader_support.a:esp_image_format.*(.literal .text .literal.* .text.*)
*libbootloader_support.a:flash_encrypt.*(.literal .text .literal.* .text.*)
*libbootloader_support.a:flash_partitions.*(.literal .text .literal.* .text.*)
*libbootloader_support.a:secure_boot.*(.literal .text .literal.* .text.*)
*libbootloader_support.a:secure_boot_signatures.*(.literal .text .literal.* .text.*)
*libmicro-ecc.a:*.*(.literal .text .literal.* .text.*)
*libspi_flash.a:*.*(.literal .text .literal.* .text.*)
*libsoc.a:rtc_wdt.*(.literal .text .literal.* .text.*)
*libefuse.a:*.*(.literal .text .literal.* .text.*)
*(.fini.literal)
*(.fini)
*(.gnu.version)
_loader_text_end = ABSOLUTE(.);
} > iram_loader_seg
.iram.text :
{
. = ALIGN (16);
*(.entry.text)
*(.init.literal)
*(.init)
} > iram_seg
/* Shared RAM */
.dram0.bss (NOLOAD) :
{
. = ALIGN (8);
_bss_start = ABSOLUTE(.);
*(.dynsbss)
*(.sbss)
*(.sbss.*)
*(.gnu.linkonce.sb.*)
*(.scommon)
*(.sbss2)
*(.sbss2.*)
*(.gnu.linkonce.sb2.*)
*(.dynbss)
*(.bss)
*(.bss.*)
*(.gnu.linkonce.b.*)
*(COMMON)
. = ALIGN (8);
_bss_end = ABSOLUTE(.);
} >dram_seg
.dram0.data :
{
_data_start = ABSOLUTE(.);
*(.data)
*(.data.*)
*(.gnu.linkonce.d.*)
*(.data1)
*(.sdata)
*(.sdata.*)
*(.gnu.linkonce.s.*)
*(.sdata2)
*(.sdata2.*)
*(.gnu.linkonce.s2.*)
*(.jcr)
_data_end = ABSOLUTE(.);
} >dram_seg
.dram0.rodata :
{
_rodata_start = ABSOLUTE(.);
*(.rodata)
*(.rodata.*)
*(.gnu.linkonce.r.*)
*(.rodata1)
__XT_EXCEPTION_TABLE_ = ABSOLUTE(.);
*(.xt_except_table)
*(.gcc_except_table)
*(.gnu.linkonce.e.*)
*(.gnu.version_r)
*(.eh_frame)
. = (. + 3) & ~ 3;
/* C++ constructor and destructor tables, properly ordered: */
__init_array_start = ABSOLUTE(.);
KEEP (*crtbegin.*(.ctors))
KEEP (*(EXCLUDE_FILE (*crtend.*) .ctors))
KEEP (*(SORT(.ctors.*)))
KEEP (*(.ctors))
__init_array_end = ABSOLUTE(.);
KEEP (*crtbegin.*(.dtors))
KEEP (*(EXCLUDE_FILE (*crtend.*) .dtors))
KEEP (*(SORT(.dtors.*)))
KEEP (*(.dtors))
/* C++ exception handlers table: */
__XT_EXCEPTION_DESCS_ = ABSOLUTE(.);
*(.xt_except_desc)
*(.gnu.linkonce.h.*)
__XT_EXCEPTION_DESCS_END__ = ABSOLUTE(.);
*(.xt_except_desc_end)
*(.dynamic)
*(.gnu.version_d)
_rodata_end = ABSOLUTE(.);
/* Literals are also RO data. */
_lit4_start = ABSOLUTE(.);
*(*.lit4)
*(.lit4.*)
*(.gnu.linkonce.lit4.*)
_lit4_end = ABSOLUTE(.);
. = ALIGN(4);
_heap_start = ABSOLUTE(.);
} >dram_seg
.iram.text :
{
_stext = .;
_text_start = ABSOLUTE(.);
*(.literal .text .literal.* .text.* .stub .gnu.warning .gnu.linkonce.literal.* .gnu.linkonce.t.*.literal .gnu.linkonce.t.*)
*(.iram .iram.*) /* catch stray IRAM_ATTR */
*(.fini.literal)
*(.fini)
*(.gnu.version)
_text_end = ABSOLUTE(.);
_etext = .;
} > iram_seg
}

View File

@ -1,4 +0,0 @@
PROVIDE ( ets_update_cpu_frequency = 0x40008550 ); /* Updates g_ticks_per_us on the current CPU only; not on the other core */
PROVIDE ( MD5Final = 0x4005db1c );
PROVIDE ( MD5Init = 0x4005da7c );
PROVIDE ( MD5Update = 0x4005da9c );

View File

@ -0,0 +1,172 @@
/*
Linker file used to link the bootloader.
*/
/* Simplified memory map for the bootloader
The main purpose is to make sure the bootloader can load into main memory
without overwriting itself.
*/
MEMORY
{
/* I/O */
dport0_seg (RW) : org = 0x3FF00000, len = 0x10
/* IRAM POOL1, used for APP CPU cache. Bootloader runs from here during the final stage of loading the app because APP CPU is still held in reset, the main app enables APP CPU cache */
iram_loader_seg (RWX) : org = 0x40078000, len = 0x8000 /* 32KB, APP CPU cache */
/* 63kB, IRAM. We skip the first 1k to prevent the entry point being
placed into the same range as exception vectors in the app.
This leads to idf_monitor decoding ROM bootloader "entry 0x40080xxx"
message as one of the exception vectors, which looks scary to users.
*/
iram_seg (RWX) : org = 0x40080400, len = 0xfc00
/* 64k at the end of DRAM, after ROM bootloader stack */
dram_seg (RW) : org = 0x3FFF0000, len = 0x10000
}
/* Default entry point: */
ENTRY(call_start_cpu0);
SECTIONS
{
.iram_loader.text :
{
. = ALIGN (16);
_loader_text_start = ABSOLUTE(.);
*(.stub .gnu.warning .gnu.linkonce.literal.* .gnu.linkonce.t.*.literal .gnu.linkonce.t.*)
*(.iram1 .iram1.*) /* catch stray IRAM_ATTR */
*liblog.a:(.literal .text .literal.* .text.*)
*libgcc.a:(.literal .text .literal.* .text.*)
*libbootloader_support.a:bootloader_clock.*(.literal .text .literal.* .text.*)
*libbootloader_support.a:bootloader_common.*(.literal .text .literal.* .text.*)
*libbootloader_support.a:bootloader_flash.*(.literal .text .literal.* .text.*)
*libbootloader_support.a:bootloader_random.*(.literal .text .literal.* .text.*)
*libbootloader_support.a:bootloader_efuse_esp32.*(.literal .text .literal.* .text.*)
*libbootloader_support.a:bootloader_utility.*(.literal .text .literal.* .text.*)
*libbootloader_support.a:bootloader_sha.*(.literal .text .literal.* .text.*)
*libbootloader_support.a:esp_image_format.*(.literal .text .literal.* .text.*)
*libbootloader_support.a:flash_encrypt.*(.literal .text .literal.* .text.*)
*libbootloader_support.a:flash_partitions.*(.literal .text .literal.* .text.*)
*libbootloader_support.a:secure_boot.*(.literal .text .literal.* .text.*)
*libbootloader_support.a:secure_boot_signatures.*(.literal .text .literal.* .text.*)
*libmicro-ecc.a:*.*(.literal .text .literal.* .text.*)
*libspi_flash.a:*.*(.literal .text .literal.* .text.*)
*libsoc.a:rtc_wdt.*(.literal .text .literal.* .text.*)
*libsoc.a:rtc_clk.*(.literal .text .literal.* .text.*)
*libefuse.a:*.*(.literal .text .literal.* .text.*)
*(.fini.literal)
*(.fini)
*(.gnu.version)
_loader_text_end = ABSOLUTE(.);
} > iram_loader_seg
.iram.text :
{
. = ALIGN (16);
*(.entry.text)
*(.init.literal)
*(.init)
} > iram_seg
/* Shared RAM */
.dram0.bss (NOLOAD) :
{
. = ALIGN (8);
_dram_start = ABSOLUTE(.);
_bss_start = ABSOLUTE(.);
*(.dynsbss)
*(.sbss)
*(.sbss.*)
*(.gnu.linkonce.sb.*)
*(.scommon)
*(.sbss2)
*(.sbss2.*)
*(.gnu.linkonce.sb2.*)
*(.dynbss)
*(.bss)
*(.bss.*)
*(.gnu.linkonce.b.*)
*(COMMON)
. = ALIGN (8);
_bss_end = ABSOLUTE(.);
} >dram_seg
.dram0.data :
{
_data_start = ABSOLUTE(.);
*(.data)
*(.data.*)
*(.gnu.linkonce.d.*)
*(.data1)
*(.sdata)
*(.sdata.*)
*(.gnu.linkonce.s.*)
*(.sdata2)
*(.sdata2.*)
*(.gnu.linkonce.s2.*)
*(.jcr)
_data_end = ABSOLUTE(.);
} >dram_seg
.dram0.rodata :
{
_rodata_start = ABSOLUTE(.);
*(.rodata)
*(.rodata.*)
*(.gnu.linkonce.r.*)
*(.rodata1)
__XT_EXCEPTION_TABLE_ = ABSOLUTE(.);
*(.xt_except_table)
*(.gcc_except_table)
*(.gnu.linkonce.e.*)
*(.gnu.version_r)
*(.eh_frame)
. = (. + 3) & ~ 3;
/* C++ constructor and destructor tables, properly ordered: */
__init_array_start = ABSOLUTE(.);
KEEP (*crtbegin.*(.ctors))
KEEP (*(EXCLUDE_FILE (*crtend.*) .ctors))
KEEP (*(SORT(.ctors.*)))
KEEP (*(.ctors))
__init_array_end = ABSOLUTE(.);
KEEP (*crtbegin.*(.dtors))
KEEP (*(EXCLUDE_FILE (*crtend.*) .dtors))
KEEP (*(SORT(.dtors.*)))
KEEP (*(.dtors))
/* C++ exception handlers table: */
__XT_EXCEPTION_DESCS_ = ABSOLUTE(.);
*(.xt_except_desc)
*(.gnu.linkonce.h.*)
__XT_EXCEPTION_DESCS_END__ = ABSOLUTE(.);
*(.xt_except_desc_end)
*(.dynamic)
*(.gnu.version_d)
_rodata_end = ABSOLUTE(.);
/* Literals are also RO data. */
_lit4_start = ABSOLUTE(.);
*(*.lit4)
*(.lit4.*)
*(.gnu.linkonce.lit4.*)
_lit4_end = ABSOLUTE(.);
. = ALIGN(4);
_dram_end = ABSOLUTE(.);
} >dram_seg
.iram.text :
{
_stext = .;
_text_start = ABSOLUTE(.);
*(.literal .text .literal.* .text.* .stub .gnu.warning .gnu.linkonce.literal.* .gnu.linkonce.t.*.literal .gnu.linkonce.t.*)
*(.iram .iram.*) /* catch stray IRAM_ATTR */
*(.fini.literal)
*(.fini)
*(.gnu.version)
_text_end = ABSOLUTE(.);
_etext = .;
} > iram_seg
}

View File

@ -0,0 +1,9 @@
PROVIDE ( ets_update_cpu_frequency = 0x40008550 ); /* Updates g_ticks_per_us on the current CPU only; not on the other core */
PROVIDE ( MD5Final = 0x4005db1c );
PROVIDE ( MD5Init = 0x4005da7c );
PROVIDE ( MD5Update = 0x4005da9c );
/* bootloader will use following functions from xtensa hal library */
xthal_get_ccount = 0x4000c050;
xthal_get_ccompare = 0x4000c078;
xthal_set_ccompare = 0x4000c058;

View File

@ -0,0 +1,164 @@
/*
Linker file used to link the bootloader.
*/
/* Simplified memory map for the bootloader
The main purpose is to make sure the bootloader can load into main memory
without overwriting itself.
*/
MEMORY
{
/* I/O */
dport0_seg (RW) : org = 0x3FF00000, len = 0x10
iram_loader_seg (RWX) : org = 0x40062000, len = 0x4000 /* 16KB, IRAM */
iram_seg (RWX) : org = 0x40066000, len = 0x4000 /* 16KB, IRAM */
/* 8k at the end of DRAM, before ROM data & stack */
dram_seg (RW) : org = 0x3FFFA000, len = 0x2000
}
/* Default entry point: */
ENTRY(call_start_cpu0);
SECTIONS
{
.iram_loader.text :
{
. = ALIGN (16);
_loader_text_start = ABSOLUTE(.);
*(.stub .gnu.warning .gnu.linkonce.literal.* .gnu.linkonce.t.*.literal .gnu.linkonce.t.*)
*(.iram1 .iram1.*) /* catch stray IRAM_ATTR */
*liblog.a:(.literal .text .literal.* .text.*)
*libgcc.a:(.literal .text .literal.* .text.*)
*libbootloader_support.a:bootloader_common.*(.literal .text .literal.* .text.*)
*libbootloader_support.a:bootloader_flash.*(.literal .text .literal.* .text.*)
*libbootloader_support.a:bootloader_random.*(.literal .text .literal.* .text.*)
*libbootloader_support.a:bootloader_efuse_esp32s2.*(.literal .text .literal.* .text.*)
*libbootloader_support.a:bootloader_utility.*(.literal .text .literal.* .text.*)
*libbootloader_support.a:bootloader_sha.*(.literal .text .literal.* .text.*)
*libbootloader_support.a:esp_image_format.*(.literal .text .literal.* .text.*)
*libbootloader_support.a:flash_encrypt.*(.literal .text .literal.* .text.*)
*libbootloader_support.a:flash_partitions.*(.literal .text .literal.* .text.*)
*libbootloader_support.a:secure_boot.*(.literal .text .literal.* .text.*)
*libbootloader_support.a:secure_boot_signatures.*(.literal .text .literal.* .text.*)
*libmicro-ecc.a:*.*(.literal .text .literal.* .text.*)
*libspi_flash.a:*.*(.literal .text .literal.* .text.*)
*libsoc.a:rtc_wdt.*(.literal .text .literal.* .text.*)
*libefuse.a:*.*(.literal .text .literal.* .text.*)
*(.fini.literal)
*(.fini)
*(.gnu.version)
_loader_text_end = ABSOLUTE(.);
} > iram_loader_seg
.iram.text :
{
. = ALIGN (16);
*(.entry.text)
*(.init.literal)
*(.init)
} > iram_seg
/* Shared RAM */
.dram0.bss (NOLOAD) :
{
. = ALIGN (8);
_dram_start = ABSOLUTE(.);
_bss_start = ABSOLUTE(.);
*(.dynsbss)
*(.sbss)
*(.sbss.*)
*(.gnu.linkonce.sb.*)
*(.scommon)
*(.sbss2)
*(.sbss2.*)
*(.gnu.linkonce.sb2.*)
*(.dynbss)
*(.bss)
*(.bss.*)
*(.gnu.linkonce.b.*)
*(COMMON)
. = ALIGN (8);
_bss_end = ABSOLUTE(.);
} >dram_seg
.dram0.data :
{
_data_start = ABSOLUTE(.);
*(.data)
*(.data.*)
*(.gnu.linkonce.d.*)
*(.data1)
*(.sdata)
*(.sdata.*)
*(.gnu.linkonce.s.*)
*(.sdata2)
*(.sdata2.*)
*(.gnu.linkonce.s2.*)
*(.jcr)
_data_end = ABSOLUTE(.);
} >dram_seg
.dram0.rodata :
{
_rodata_start = ABSOLUTE(.);
*(.rodata)
*(.rodata.*)
*(.gnu.linkonce.r.*)
*(.rodata1)
__XT_EXCEPTION_TABLE_ = ABSOLUTE(.);
*(.xt_except_table)
*(.gcc_except_table)
*(.gnu.linkonce.e.*)
*(.gnu.version_r)
*(.eh_frame)
. = (. + 3) & ~ 3;
/* C++ constructor and destructor tables, properly ordered: */
__init_array_start = ABSOLUTE(.);
KEEP (*crtbegin.*(.ctors))
KEEP (*(EXCLUDE_FILE (*crtend.*) .ctors))
KEEP (*(SORT(.ctors.*)))
KEEP (*(.ctors))
__init_array_end = ABSOLUTE(.);
KEEP (*crtbegin.*(.dtors))
KEEP (*(EXCLUDE_FILE (*crtend.*) .dtors))
KEEP (*(SORT(.dtors.*)))
KEEP (*(.dtors))
/* C++ exception handlers table: */
__XT_EXCEPTION_DESCS_ = ABSOLUTE(.);
*(.xt_except_desc)
*(.gnu.linkonce.h.*)
__XT_EXCEPTION_DESCS_END__ = ABSOLUTE(.);
*(.xt_except_desc_end)
*(.dynamic)
*(.gnu.version_d)
_rodata_end = ABSOLUTE(.);
/* Literals are also RO data. */
_lit4_start = ABSOLUTE(.);
*(*.lit4)
*(.lit4.*)
*(.gnu.linkonce.lit4.*)
_lit4_end = ABSOLUTE(.);
. = ALIGN(4);
_dram_end = ABSOLUTE(.);
} >dram_seg
.iram.text :
{
_stext = .;
_text_start = ABSOLUTE(.);
*(.literal .text .literal.* .text.* .stub .gnu.warning .gnu.linkonce.literal.* .gnu.linkonce.t.*.literal .gnu.linkonce.t.*)
*(.iram .iram.*) /* catch stray IRAM_ATTR */
*(.fini.literal)
*(.fini)
*(.gnu.version)
_text_end = ABSOLUTE(.);
_etext = .;
} > iram_seg
}

View File

@ -0,0 +1,14 @@
/*
* ESP32S2 ROM address table
* Generated for ROM with MD5sum: f054d40c5f6b9207d3827460a6f5748c
*/
PROVIDE ( ets_update_cpu_frequency = 0x4000d954 );
/* ToDo: Following address may need modification */
PROVIDE ( MD5Final = 0x400056e8 );
PROVIDE ( MD5Init = 0x40005648 );
PROVIDE ( MD5Update = 0x40005668 );
/* bootloader will use following functions from xtensa hal library */
xthal_get_ccount = 0x40015cbc;
xthal_get_ccompare = 0x40015ce8;
xthal_set_ccompare = 0x40015cc4;

View File

@ -1,60 +1,116 @@
set(COMPONENT_SRCS "src/bootloader_clock.c"
"src/bootloader_common.c"
"src/bootloader_flash.c"
"src/bootloader_random.c"
"src/bootloader_sha.c"
"src/bootloader_utility.c"
"src/esp_image_format.c"
"src/flash_encrypt.c"
"src/flash_partitions.c"
"src/flash_qio_mode.c"
"src/secure_boot.c"
"src/secure_boot_signatures.c")
set(srcs
"src/bootloader_clock.c"
"src/bootloader_common.c"
"src/bootloader_flash.c"
"src/bootloader_random.c"
"src/bootloader_utility.c"
"src/esp_image_format.c"
"src/flash_partitions.c"
"src/flash_qio_mode.c"
"src/bootloader_flash_config_${IDF_TARGET}.c"
"src/bootloader_efuse_${IDF_TARGET}.c"
)
if(${BOOTLOADER_BUILD})
set(COMPONENT_ADD_INCLUDEDIRS "include include_bootloader")
set(COMPONENT_REQUIRES)
set(COMPONENT_PRIV_REQUIRES spi_flash micro-ecc efuse)
list(APPEND COMPONENT_SRCS "src/bootloader_init.c")
if(CONFIG_SECURE_SIGNED_APPS)
get_filename_component(secure_boot_verification_key
"signature_verification_key.bin"
ABSOLUTE BASE_DIR "${CMAKE_BINARY_DIR}")
if(CONFIG_SECURE_BOOT_BUILD_SIGNED_BINARIES)
add_custom_command(OUTPUT "${secure_boot_verification_key}"
COMMAND ${ESPSECUREPY}
extract_public_key --keyfile "${secure_boot_signing_key}"
"${secure_boot_verification_key}"
DEPENDS gen_secure_boot_signing_key
VERBATIM)
else()
get_filename_component(orig_secure_boot_verification_key
"${CONFIG_SECURE_BOOT_VERIFICATION_KEY}"
ABSOLUTE BASE_DIR "${main_project_path}")
if(NOT EXISTS ${orig_secure_boot_verification_key})
message(FATAL_ERROR
"Secure Boot Verification Public Key ${CONFIG_SECURE_BOOT_VERIFICATION_KEY} does not exist."
"\nThis can be extracted from the private signing key."
"\nSee docs/security/secure-boot.rst for details.")
endif()
add_custom_command(OUTPUT "${secure_boot_verification_key}"
COMMAND ${CMAKE_COMMAND} -E copy "${orig_secure_boot_verification_key}"
"${secure_boot_verification_key}"
DEPENDS "${orig_secure_boot_verification_key}"
VERBATIM)
endif()
set(COMPONENT_EMBED_FILES "${secure_boot_verification_key}")
set_property(DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}"
APPEND PROPERTY ADDITIONAL_MAKE_CLEAN_FILES
"${secure_boot_verification_key}")
endif()
else()
set(COMPONENT_ADD_INCLUDEDIRS "include")
set(COMPONENT_PRIV_INCLUDEDIRS "include_bootloader")
set(COMPONENT_REQUIRES)
set(COMPONENT_PRIV_REQUIRES spi_flash mbedtls micro-ecc efuse)
if(IDF_TARGET STREQUAL "esp32")
# Not supported on ESP32S2Beta yet
list(APPEND srcs "src/flash_encrypt.c")
endif()
register_component()
if(BOOTLOADER_BUILD)
set(include_dirs "include" "include_bootloader")
set(priv_requires micro-ecc spi_flash efuse)
list(APPEND srcs
"src/bootloader_init.c"
"src/${IDF_TARGET}/bootloader_sha.c"
"src/${IDF_TARGET}/flash_encrypt.c"
"src/${IDF_TARGET}/bootloader_${IDF_TARGET}.c"
)
else()
list(APPEND srcs
"src/idf/bootloader_sha.c")
set(include_dirs "include")
set(priv_include_dirs "include_bootloader")
set(priv_requires spi_flash mbedtls efuse)
endif()
if(CONFIG_SECURE_SIGNED_APPS_ECDSA_SCHEME OR CONFIG_SECURE_SIGNED_APPS_RSA_SCHEME)
if(BOOTLOADER_BUILD)
list(APPEND srcs
"src/${IDF_TARGET}/secure_boot_signatures.c")
else()
list(APPEND srcs
"src/idf/secure_boot_signatures.c")
endif()
endif()
if(CONFIG_SECURE_BOOT AND BOOTLOADER_BUILD)
list(APPEND srcs
"src/${IDF_TARGET}/secure_boot.c")
endif()
set(requires soc) #unfortunately the header directly uses SOC registers
idf_component_register(SRCS "${srcs}"
INCLUDE_DIRS "${include_dirs}"
PRIV_INCLUDE_DIRS "${priv_include_dirs}"
REQUIRES "${requires}"
PRIV_REQUIRES "${priv_requires}")
if(CONFIG_SECURE_SIGNED_APPS AND (CONFIG_SECURE_BOOT_V1_ENABLED OR CONFIG_SECURE_SIGNED_APPS_ECDSA_SCHEME))
if(BOOTLOADER_BUILD)
# Whether CONFIG_SECURE_BOOT_BUILD_SIGNED_BINARIES or not, we need verification key to embed
# in the library.
if(CONFIG_SECURE_BOOT_BUILD_SIGNED_BINARIES)
# We generate the key from the signing key. The signing key is passed from the main project.
get_filename_component(secure_boot_signing_key
"${SECURE_BOOT_SIGNING_KEY}"
ABSOLUTE BASE_DIR "${project_dir}")
get_filename_component(secure_boot_verification_key
"signature_verification_key.bin"
ABSOLUTE BASE_DIR "${CMAKE_CURRENT_BINARY_DIR}")
add_custom_command(OUTPUT "${secure_boot_verification_key}"
COMMAND ${ESPSECUREPY}
extract_public_key --keyfile "${secure_boot_signing_key}"
"${secure_boot_verification_key}"
DEPENDS ${secure_boot_signing_key}
VERBATIM)
else()
# We expect to 'inherit' the verification key passed from main project.
get_filename_component(secure_boot_verification_key
${SECURE_BOOT_VERIFICATION_KEY}
ABSOLUTE BASE_DIR "${project_dir}")
endif()
else() # normal app build
idf_build_get_property(project_dir PROJECT_DIR)
if(CONFIG_SECURE_BOOT_VERIFICATION_KEY)
# verification-only build supplies verification key
set(secure_boot_verification_key ${CONFIG_SECURE_BOOT_VERIFICATION_KEY})
get_filename_component(secure_boot_verification_key
${secure_boot_verification_key}
ABSOLUTE BASE_DIR "${project_dir}")
else()
# sign at build time, extracts key from signing key
set(secure_boot_verification_key "${CMAKE_BINARY_DIR}/signature_verification_key.bin")
get_filename_component(secure_boot_signing_key
${CONFIG_SECURE_BOOT_SIGNING_KEY}
ABSOLUTE BASE_DIR "${project_dir}")
add_custom_command(OUTPUT "${secure_boot_verification_key}"
COMMAND ${ESPSECUREPY}
extract_public_key --keyfile "${secure_boot_signing_key}"
"${secure_boot_verification_key}"
WORKING_DIRECTORY ${project_dir}
DEPENDS ${secure_boot_signing_key}
VERBATIM)
endif()
endif()
# Embed the verification key in the binary (app & bootloader)
#
target_add_binary_data(${COMPONENT_LIB} "${secure_boot_verification_key}" "BINARY"
RENAME_TO signature_verification_key_bin)
set_property(DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}"
APPEND PROPERTY ADDITIONAL_MAKE_CLEAN_FILES
"${secure_boot_verification_key}")
endif()

View File

@ -9,15 +9,36 @@ endif
COMPONENT_SRCDIRS := src
ifndef IS_BOOTLOADER_BUILD
COMPONENT_SRCDIRS += src/idf # idf sub-directory contains platform agnostic IDF versions
else
COMPONENT_SRCDIRS += src/$(IDF_TARGET) # one sub-dir per chip
endif
ifndef IS_BOOTLOADER_BUILD
COMPONENT_OBJEXCLUDE := src/bootloader_init.o
endif
COMPONENT_OBJEXCLUDE += src/bootloader_flash_config_esp32s2beta.o \
src/bootloader_efuse_esp32s2beta.o
ifndef CONFIG_SECURE_SIGNED_APPS_ECDSA_SCHEME
ifndef CONFIG_SECURE_SIGNED_APPS_RSA_SCHEME
COMPONENT_OBJEXCLUDE += src/$(IDF_TARGET)/secure_boot_signatures.o \
src/idf/secure_boot_signatures.o
endif
endif
ifndef CONFIG_SECURE_BOOT
COMPONENT_OBJEXCLUDE += src/$(IDF_TARGET)/secure_boot.o
endif
#
# Secure boot signing key support
#
ifdef CONFIG_SECURE_SIGNED_APPS
ifdef CONFIG_SECURE_SIGNED_APPS_ECDSA_SCHEME
# this path is created relative to the component build directory
SECURE_BOOT_VERIFICATION_KEY := $(abspath signature_verification_key.bin)
@ -32,7 +53,7 @@ ORIG_SECURE_BOOT_VERIFICATION_KEY := $(call resolvepath,$(call dequote,$(CONFIG_
$(ORIG_SECURE_BOOT_VERIFICATION_KEY):
@echo "Secure boot verification public key '$@' missing."
@echo "This can be extracted from the private signing key, see"
@echo "docs/security/secure-boot.rst for details."
@echo "docs/security/secure-boot-v1.rst for details."
exit 1
# copy it into the build dir, so the secure boot verification key has
@ -40,10 +61,11 @@ $(ORIG_SECURE_BOOT_VERIFICATION_KEY):
$(SECURE_BOOT_VERIFICATION_KEY): $(ORIG_SECURE_BOOT_VERIFICATION_KEY) $(SDKCONFIG_MAKEFILE)
$(summary) CP $< $@
cp $< $@
endif
endif #CONFIG_SECURE_BOOT_BUILD_SIGNED_BINARIES
COMPONENT_EXTRA_CLEAN += $(SECURE_BOOT_VERIFICATION_KEY)
COMPONENT_EMBED_FILES := $(SECURE_BOOT_VERIFICATION_KEY)
endif
endif #CONFIG_SECURE_SIGNED_APPS_ECDSA_SCHEME
endif #CONFIG_SECURE_SIGNED_APPS

Some files were not shown because too many files have changed in this diff Show More