Commit Graph

14471 Commits

Author SHA1 Message Date
Peter Hoddie
3a768f51c3 app_update: add support for incremental flash erase
This patch modifies the OTA implementation to incremental erase flash sectors
as they are written, rather than bulk erasing them all at once when OTA begins.

This solves several problems:
- The bulk flash erase can take so long that it triggers the watchdog timer.
  Disabling the watchdog is an undesirable risk.
- The bulk erase interferes with the responsiveness of the system to user input.
- Incremental erasing eliminates the need to pass the firmware image size to
  esp_ota_begin to avoid erasing more flash sectors than required.
- When installing an OTA received via HTTP, the size of the firmware image is
  known when the content-length header is received. Calling esp_ota_begin at that
  time causes a long delay to do the bulk erase which causes the TCP transfer
  speed to be measurably slowed when the transfer resumes after the erase.
  Incremental erasing eliminates this TCP slowdown.

Update:
Rework so erase optimization is only applied when image_size is set to
OTA_WITH_SEQUENTIAL_WRITES #5246

Merges https://github.com/espressif/esp-idf/pull/5246
2020-09-04 12:05:02 +05:30
David Čermák
fdd40b0d9e Merge branch 'bugfix/slip_ipv6_fix' into 'master'
esp-netif: Fix SLIP interface to start with correct IPv6 addr

Closes IDFGH-2952

See merge request espressif/esp-idf!10116
2020-09-04 13:55:32 +08:00
Mahavir Jain
cec605f74d Merge branch 'bugfix/espcommon_reqs_cmake' into 'master'
esp_common: Add required missing components to CMakelists

Closes IDFGH-3373

See merge request espressif/esp-idf!10122
2020-09-04 12:54:47 +08:00
Ivan Grokhotkov
ab0fc70104 Merge branch 'feature/check_section_references' into 'master'
ci: add script to check section references

See merge request espressif/esp-idf!9513
2020-09-04 06:19:13 +08:00
David Cermak
5dae28069f esp-netif: Fix SLIP interface to start with correct IPv6 addr
Merges https://github.com/espressif/esp-idf/pull/4985
2020-09-03 18:11:09 +00:00
Ivan Grokhotkov
52d935615c Merge branch 'bugfix/window_spill_a0_corruption' into 'master'
freertos: don't clobber a4 while spilling register windows

Closes IDFGH-3852 and IDF-1935

See merge request espressif/esp-idf!10252
2020-09-04 00:23:43 +08:00
Ivan Grokhotkov
7a9d2c3fb4 bootloader: fix section placement of wdt_hal
Regression from moving HAL and LL code into the new "hal" component.
2020-09-03 18:14:17 +02:00
Ivan Grokhotkov
66a32c1707 bootloader: fix section placement issues found by the check script
Summary of changes:

- bootloader_clock split into *_clock_init and *_clock_loader.
  Only esp_clk_apb_freq is in *_clock_loader.
- bootloader_common moved out of loader; functions needed in loader
  (or, referenced from bootloader_utility) were moved into
  bootloader_common_loader.c.
- assert and abort moved into bootloader_panic, made part of the
  loader
- rtc_clk and rtc_time made part of loader
2020-09-03 18:14:17 +02:00
Ivan Grokhotkov
52607063cb ci: add script to check section references 2020-09-03 18:14:17 +02:00
Ivan Grokhotkov
6beefff725 Merge branch 'ci/not_show_error_when_checkout_ref' into 'master'
CI: Not showing stdout nor stderr when checkout ref

See merge request espressif/esp-idf!10258
2020-09-03 23:45:07 +08:00
Michael (XIAO Xufeng)
91af5eaf4f Merge branch 'refactor/twai_hal_state' into 'master'
Refactor TWAI HAL to store state information

Closes IDF-1633

See merge request espressif/esp-idf!9789
2020-09-03 23:22:30 +08:00
Ivan Grokhotkov
277a902dec Merge branch 'bugfix/docker_gdb_python' into 'master'
tools/docker: Add libpython2.7 in order to satisfy GDB dependencies (Github PR)

See merge request espressif/esp-idf!10257
2020-09-03 20:35:56 +08:00
Ivan Grokhotkov
390a90ff7f Merge branch 'feature/codeowners' into 'master'
add initial CODEOWNERS file

Closes IDF-308

See merge request espressif/esp-idf!9928
2020-09-03 17:54:31 +08:00
Shivani Tipnis
8963ebf2e2 esp_common: Add required missing components to CMakelists 2020-09-03 09:46:37 +00:00
David Čermák
9e8f4e51b2 Merge branch 'bugfix/mdns_query_id' into 'master'
mdns: Responding: Fix query ID, add questions if not strict mode

Closes IDFGH-3639 and IDFGH-3577

See merge request espressif/esp-idf!9795
2020-09-03 14:57:47 +08:00
Island
bc6d239681 Merge branch 'feat/ble_mesh_use_model_cb' into 'master'
ble_mesh: stack: Use model callback for operations [Zephyr]

See merge request espressif/esp-idf!9505
2020-09-03 14:48:13 +08:00
Krzysztof Budzynski
6211d5297d Merge branch 'doc/warn_doxygen_ver' into 'master'
docs: add warning for doxygen version

See merge request espressif/esp-idf!10219
2020-09-03 13:48:40 +08:00
Marius Vikhammer
9b552ce004 docs: add warning for doxygen version
Running with a newer doxygen version than what's
used in CI may raise warnings locally that are not
present when built by CI
2020-09-03 13:48:40 +08:00
Mahavir Jain
7f5b6d1843 Merge branch 'bugfix/time_spinlock' into 'master'
newlib: revert back from spinlocks to using newlib locks for time.h

Closes IDFGH-3858

See merge request espressif/esp-idf!10130
2020-09-03 12:34:29 +08:00
Fu Hanxi
6f675925d8 CI: Not showing stdout nor stderr when checkout ref 2020-09-03 12:17:50 +08:00
lly
043abf5750 ble_mesh: stack: Use model callback for operations [Zephyr]
- Previously when a model is initialized or deinitialized, in the
  access layer, we need to check the model id with the ids in the
  table in order to find the proper model operation function.
- Currently all the operation functions of each model will be set
  during the mesh initialization. When the model is found, we can
  directly use the corresponding callback for different operations.
- Currently only init/deinit operations are registered, later we
  will add more operations.
2020-09-03 02:02:33 +00:00
Marius Vikhammer
6fb996b1ac newlib: revert back from spinlocks to using newlib locks for time.h
Spinlocks from spinlock.h do not disable the scheduler and thus cannot safely
be directly used as a locking mechanism. A task holding the lock can get
pre-empted, and at that point the new running task will also be allowed to
take the spinlock and access whatever it was protecting.

Another issue is that the task holding a spinlock could migrate to a different
core which in turn would cause the application to fail asserts. The current
implementation assumes the core that takes the lock is also the core that
releases it.

Closes https://github.com/espressif/esp-idf/issues/5762
2020-09-03 09:56:02 +08:00
Krzysztof Budzynski
cc33c1db91 Merge branch 'doc/adc_grammar_stuff' into 'master'
Bugfix(doc): minor modifications in the adc section

Closes DOC-436

See merge request espressif/esp-idf!9620
2020-09-03 04:29:24 +08:00
Michael (XIAO Xufeng)
9e7eda9770 Merge branch 'feat/spi_flash_override_size' into 'master'
spi_flash: add config option to override flash size in bootloader header

See merge request espressif/esp-idf!10131
2020-09-03 02:57:31 +08:00
Martin Stejskal
be0372b1db tools/docker: Add libpython2.7 in order to satisfy GDB dependencies
It was not possible to run xtensa-esp32-elf-gdb from container due to
missing libpython2.7 library.

Merges https://github.com/espressif/esp-idf/pull/5817
Closes https://github.com/espressif/esp-idf/issues/5284
2020-09-02 18:15:52 +02:00
Ivan Grokhotkov
c23a9d91d8 add code owners list 2020-09-02 18:04:27 +02:00
Ivan Grokhotkov
52cc05108e Revert "CXX: removed exception windowspill test"
This reverts commit f3e180de72.
2020-09-02 15:44:18 +02:00
Ivan Grokhotkov
04b95f3567 freertos: don't clobber a4 while spilling register windows
Commit 891eb3b0 was fixing an issue with PS and EPC1 not being
preserved after the window spill procedure. It did so by saving PS in
a2 and EPC1 in a4. However the a4 register may be a live register of
another window in the call stack, and if it is overwritten and then
spilled to the stack, then the corresponding register value will end
up being corrupted. In practice the problem would show up as an
IllegalInstruction exception, when trying to return from a function
when a0 value was 0x40020.
Fix by using a0 register instead of a4 as scratch. Also fix a comment
about xthal_save_extra_nw, as this function in fact doesn't clobber
a4 or a5 because XCHAL_NCP_NUM_ATMPS is defined as 1.

Closes https://github.com/espressif/esp-idf/issues/5758
2020-09-02 15:40:41 +02:00
David Čermák
40f3cc4a34 Merge branch 'feature/mqtt_outbox_expired_config' into 'master'
MQTT: add configurable msg expired timeout

See merge request espressif/esp-idf!9997
2020-09-02 20:40:45 +08:00
Wu Bo Wen
658b56a690 doc/adc: modifications in the adc documentation and adc headers 2020-09-02 11:30:48 +00:00
David Cermak
81e89476fe mdns test: Add test to resolve esp32 hostname with DiG 2020-09-02 11:12:08 +02:00
David Cermak
52a7721bf7 examples: Common connect component: Unregister shutdown handler on disconnection
To be able to connect smoothly after disconnecting, we have to unregister all handlers including shutdown handler on disconnection
2020-09-02 11:12:08 +02:00
David Cermak
bcfa36db8f mdns: Support queries in responses in mDNS non-strict mode
By default adds original queries to responses in order to be resolved by some resolvers, such as lwIP mdns library. This functionality however is discouraged by the RFC6762, so it could be disabled in menuconfig if MDNS_STRICT_MODE configured

Closes https://github.com/espressif/esp-idf/issues/5521
2020-09-02 11:12:08 +02:00
David Cermak
f62e321d87 mdns: Fix include query ID in reponses
Closes https://github.com/espressif/esp-idf/issues/5574
2020-09-02 11:12:08 +02:00
Anton Maklakov
5c5c7c4449 Merge branch 'bugfix/pip_gdbgui' into 'master'
fix windows incompatibility with gdbgui>=0.14

Closes IDFGH-3896

See merge request espressif/esp-idf!10166
2020-09-02 15:09:42 +08:00
Jiang Jiang Jian
685d6af004 Merge branch 'feature/pmf_espnow_coexistance' into 'master'
espnow/pmf: Implement ESPNOW + PMF Co-existance

Closes WIFI-2712, WIFI-2774, WIFI-2775, and WIFI-2778

See merge request espressif/esp-idf!9885
2020-09-02 14:35:15 +08:00
Marek Ištok
96cfdf3184 tools: fix windows incompatibility with gdbgui>=0.14
gdbgui intentionally (https://github.com/cs01/gdbgui/pull/346) introduced dependencies that are incompatible with windows, and don't seem to have plans to resolve them anytime soon

Closes https://github.com/espressif/esp-idf/issues/5782
Closes https://github.com/espressif/esp-idf/issues/5787
Merges https://github.com/espressif/esp-idf/pull/5794
2020-09-02 06:00:53 +00:00
Darian Leung
7398390049 TWAI: Track HW state in HAL
This commit refactors the TWAI HAL such that it
now tracks  harwdare state instead of the driver
layer. Some HAL and LL cleanup was also done.
2020-09-02 13:03:41 +08:00
Jiang Jiang Jian
36720504f9 Merge branch 'bugfix/add_protection_for_spp_api' into 'master'
componnet_bt:/ Add protection for btc and some comment correction

Closes BT-899 and BTCI-78

See merge request espressif/esp-idf!9329
2020-09-02 12:01:34 +08:00
Nachiket Kukade
3308ede898 espnow/pmf: Implement ESPNOW + PMF Co-existance
H/W decryption of Mgmt frames was disabled for PMF and done through
S/W. If ESPNOW packets go through this path, it affects backward
compatibility since method of decrypting Mgmt packets is different in H/W.

To address PMF + ESPNOW Co-existance, CCMP decryption method is modified
for ESPNOW packets so that they can be decrypted correctly. Since Tx
of ESPNOW packets can still be done in H/W alongside PMF, no change
required in encryption method in S/W.

Co-Authored-By: Nachiket Kukade <nachiket.kukade@espressif.com>
Co-Authored-By: zhangyanjiao <zhangyanjiao@espressif.com>
Co-Authored-By: kapil.gupta <kapil.gupta@espressif.com>
2020-09-02 09:26:39 +05:30
Anton Maklakov
587f97ab15 Merge branch 'ci/sonarqube_improvement' into 'master'
CI: Sonarqube: CI_MERGE_REQUEST_IID

See merge request espressif/esp-idf!10218
2020-09-02 10:23:44 +08:00
Ivan Grokhotkov
fdba279970 Merge branch 'ci/adc_calib_test_failures' into 'master'
bugfix/CI: fix for adc-calib test failures

See merge request espressif/esp-idf!10215
2020-09-02 03:05:27 +08:00
Michael (XIAO Xufeng)
c15c6a2803 Merge branch 'fix/esp_flash_delay_type' into 'master'
esp_flash: fix the data type of delay_us

See merge request espressif/esp-idf!10115
2020-09-02 01:21:12 +08:00
Michael (XIAO Xufeng)
37423083bb spi_flash: add config option to override flash size in bootloader header
Sometimes the flash size read from bootloader is not correct. This may
forbid SPI Flash driver from reading the the area larger than the size
in bootloader header.

When the new config option is enabled, the latest configured
ESPTOOLPY_FLAHSIZE in the app header will be used to override the value
read from bootloader header.
2020-09-02 00:35:53 +08:00
Krzysztof Budzynski
f90b6eb639 Merge branch 'enhancement/docs/add-vscode-extension-info' into 'master'
VSCode Extension Setup Guide

Closes VSC-421

See merge request espressif/esp-idf!9995
2020-09-02 00:07:32 +08:00
Soumesh Banerjee
22301653c6 VSCode Extension Setup Guide 2020-09-02 00:07:31 +08:00
Michael (XIAO Xufeng)
ea63bd3de4 Merge branch 'feat/extract_hal_from_soc' into 'master'
hal: extract hal component from soc component

See merge request espressif/esp-idf!9992
2020-09-01 23:56:15 +08:00
Ivan Grokhotkov
7da6d6c1b5 Merge branch 'bugfix/get_time_in_less_than_microsecond' into 'master'
esp_timer: inline is initialized check

See merge request espressif/esp-idf!10080
2020-09-01 23:29:14 +08:00
Ivan Grokhotkov
2ee480163d Merge branch 'bugfix/disable_failing_ut_for_S2' into 'master'
esp_system: Disable UTs for ESP32-S2 linked to sleep mode

See merge request espressif/esp-idf!10235
2020-09-01 23:18:24 +08:00
Michael (XIAO Xufeng)
9d09f739da Merge branch 'refactor/unit_test_ref_clock' into 'master'
unit_test:refactor ref clock to use RMT carrier

See merge request espressif/esp-idf!10045
2020-09-01 22:13:03 +08:00