Commit Graph

14658 Commits

Author SHA1 Message Date
Michael (XIAO Xufeng)
fefdee1349 bootloader: fix the WRSR format for ISSI flash chips
1. The 2nd bootloader always call `rom_spiflash_unlock()`, but never help to clear the WEL bit when exit. This may cause system unstability.

   This commit helps to clear WEL when flash configuration is done.

   **RISK:** When the app starts, it didn't have to clear the WEL before it actually write/erase. But now the very first write/erase operation should be done after a WEL clear. Though the risk is little (all the following write/erase also need to clear the WEL), we still have to test this carefully, especially for those functions used by the OTA.

2. The `rom_spiflash_unlock()` function in the patch of ESP32 may (1) trigger the QPI, (2) clear the QE or (3) fail to unlock the ISSI chips.

   Status register bitmap of ISSI chip and GD chip:

| SR | ISSI | GD25LQ32C |
| -- | ---- | --------- |
| 0  | WIP  | WIP       |
| 1  | WEL  | WEL       |
| 2  | BP0  | BP0       |
| 3  | BP1  | BP1       |
| 4  | BP2  | BP2       |
| 5  | BP3  | BP3       |
| 6  | QE   | BP4       |
| 7  | SRWD | SRP0      |
| 8  |      | SRP1      |
| 9  |      | QE        |
| 10 |      | SUS2      |
| 11 |      | LB1       |
| 12 |      | LB2       |
| 13 |      | LB3       |
| 14 |      | CMP       |
| 15 |      | SUS1      |

   QE bit of other chips are at the bit 9 of the status register (i.e. bit 1 of SR2), which should be read by RDSR2 command.

   However, the RDSR2 (35H, Read Status 2) command for chip of other vendors happens to be the QIOEN (Enter QPI mode) command of ISSI chips. When the `rom_spiflash_unlock()` function trys to read SR2, it may trigger the QPI of ISSI chips.

   Moreover, when `rom_spiflash_unlock()` try to clear the BP4 bit in the status register, QE (bit 6) of ISSI chip may be cleared by accident. Or if the ISSI chip doesn't accept WRSR command with argument of two bytes (since it only have status register of one byte), it may fail to clear the other protect bits (BP0~BP3) as expected.

   This commit makes the `rom_spiflash_unlock()` check whether the vendor is issi. if so, `rom_spiflash_unlock()` only send RDSR to read the status register, send WRSR with only 1 byte argument, and also avoid clearing the QE bit (bit 6).

3. `rom_spiflash_unlock()` always send WRSR command to clear protection bits even when there is no protection bit active. And the execution of clearing status registers, which takes about 700us, will also happen even when there's no bits cleared.

   This commit skips the clearing of status register if there is no protection bits active.

Also move the execute_flash_command to be a bootloader API; move
implementation of spi_flash_wrap_set to the bootloader
2020-09-19 10:51:51 +08:00
Ivan Grokhotkov
eebc71b16d Merge branch 'feature/ci_submodule_fetch_mirror' into 'master'
ci: download submodules from mirror, if enabled

See merge request espressif/esp-idf!10477
2020-09-18 22:30:49 +08:00
Ivan Grokhotkov
57a8dbb93d Merge branch 'bugfix/idf_gdb_no_openocd_crash' into 'master'
idf.py: Fixed gdb target to exit cleanly when no openocd watch task

Closes IDF-2157

See merge request espressif/esp-idf!10503
2020-09-18 19:12:38 +08:00
David Cermak
3b3409fb20 idf.py: Fixed gdb target to exit cleanly when no openocd watch task
When idf.py gdb starts, it expects openocd was started in the background
and creates a thread to watch for openocd errors. when gdb target exits,
the debug_ext.py aims to cleanup all threads and processes, but fails
with traceback if openocd-watch thread not available, which could happen
if openocd started separately.
2020-09-18 08:30:21 +02:00
Jiang Jiang Jian
65c94dfb4c Merge branch 'bugfix/add_disconn_req_action_when_no_link' into 'master'
component_bt/bugfix: add_disconn_req_action_when_no_link

See merge request espressif/esp-idf!9751
2020-09-18 12:21:50 +08:00
Michael (XIAO Xufeng)
8b1d39bf53 Merge branch 'bugfix/fix_mcpwm_period_calculation_bug' into 'master'
mcpwm_example: fix  period calculation bug in high frequency

See merge request espressif/esp-idf!10152
2020-09-18 02:02:32 +08:00
Ivan Grokhotkov
a62c6b6b05 Merge branch 'bugfix/flash_encryption_example_espsecure_public' into 'master'
examples: fix flash encryption example test (third version)

See merge request espressif/esp-idf!10480
2020-09-18 01:08:55 +08:00
Ivan Grokhotkov
3af24d2f36 Merge branch 'bugfix/fix_wrong_nvs_api_doc' into 'master'
nvs: fix api doc regarding to maximum key length

See merge request espressif/esp-idf!10439
2020-09-18 01:01:45 +08:00
Ivan Grokhotkov
d7f846d1b3 Merge branch 'bugfix/log-error-run-esptool' into 'master'
parttool.py: Add file stream parameter and log stdout and stderr to same stream

Closes IDF-2075

See merge request espressif/esp-idf!10465
2020-09-18 01:00:05 +08:00
martin.gano
da5b582dee add file stream parameter and log stdout and stderr to same stream 2020-09-17 12:54:18 +02:00
Angus Gratton
0fe231d2b3 Merge branch 'feature/pkg_ver_uses_4_bits' into 'master'
efuse/esp32: Expands PKG_VER from 3 bit to 4 bits

Closes IDF-1919

See merge request espressif/esp-idf!9949
2020-09-17 18:21:08 +08:00
Mahavir Jain
d82b9275b5 Merge branch 'bugfix/provisioning_example_warning_with_O2_optimization' into 'master'
provisioning: use memcpy instead of strncpy for copying SSID

Closes IDFGH-3983

See merge request espressif/esp-idf!10467
2020-09-17 17:56:37 +08:00
Michael (XIAO Xufeng)
3c283b490a Merge branch 'feature/async_memcpy' into 'master'
async_mcp: support async memory copy on esp32s2 and esp32s3

See merge request espressif/esp-idf!10242
2020-09-17 16:54:28 +08:00
KonstantinKondrashov
2373f115fc efuse/esp32: Expands PKG_VER from 3 bit to 4 bits
Closes: IDF-1919
2020-09-17 07:44:37 +00:00
Mahavir Jain
6a3d50c952 provisioning: use memcpy instead of strncpy for copying SSID
Per WiFi library requirement, SSID can be non-null terminated string
if its length goes to 32 bytes (maximum). Use of strncpy in this case,
along with compiler optimization level -O2 results in some warnings
for potential use of non-null terminated strings.

Fix here ensures use of memcpy to copy SSID string upto appropriate
desired length. This helps to avoid compiler specific workaround
flags added earlier.

Closes https://github.com/espressif/esp-idf/issues/5866
Closes IDFGH-3983
2020-09-17 12:59:22 +05:30
Mahavir Jain
6d14bdf068 Merge branch 'feature/ota_example_test' into 'master'
Add OTA example test on Flash Encrypted runner

Closes IDFCI-73

See merge request espressif/esp-idf!9423
2020-09-17 12:39:41 +08:00
morris
e52c93a514 nvs: fix api doc regarding to maximum key length
Thanks to feed back from https://esp32.com/viewtopic.php?f=25&t=17323
2020-09-17 12:37:28 +08:00
Ivan Grokhotkov
cdb4b3b889 examples: fix flash encryption example test
Commit 5e8795eebe has changed the partition table offset, which
has resulted in the ciphertext not matching the one expected in the
example test.
Fix by calculating the ciphertext using espsecure.py.
2020-09-17 13:27:57 +10:00
Island
83ffba024a Merge branch 'bugfix/ble_mesh_check_stack_init' into 'master'
ble_mesh: stack: Check if mesh stack initialized before init vendor client

See merge request espressif/esp-idf!10468
2020-09-17 11:21:25 +08:00
Ivan Grokhotkov
b62d149b82 Merge branch 'feature/freertos_port_code_out_iram' into 'master'
feature/esp_system: move startup and freertos port  once-time code out of IRAM when possible

Closes IDF-1975

See merge request espressif/esp-idf!9976
2020-09-17 06:58:08 +08:00
Ivan Grokhotkov
f4296b947e Merge branch 'bugfix/fatfs_alloc_extram_first' into 'master'
fatfs: fix SPIRAM allocation not used due to Kconfig option name error

Closes IDFGH-3850

See merge request espressif/esp-idf!10381
2020-09-17 03:41:34 +08:00
Ivan Grokhotkov
d17a3c76d0 ci: fetch submodules from mirror, if enabled 2020-09-16 21:22:26 +02:00
morris
a3cc43485f async memcpy: support async memcopy on esp32s2/s3
Added async memory copy API:
on esp32-s2, the implementation is based on CP_DMA
on esp32-s3, the implementation is based on GDMA
2020-09-16 21:30:54 +08:00
Ivan Grokhotkov
0add567edf Merge branch 'bugfix/export_fish_exec_check' into 'master'
export.fish: Remove source check (Github PR)

See merge request espressif/esp-idf!10474
2020-09-16 18:29:47 +08:00
Kelvie Wong
9a79de3659 export.fish: Remove source check
This prevents starting a new shell with the IDF environment like this:

    env IDF_PATH=/my/idf/path fish -C 'source "$IDF_PATH"/export.fish'

as `status current-command` returns `fish` in this case, but this check expects
`source`.

This check does nothing anyway, as you can't even execute that file even if it
was marked executable, as fish rejects files without a shebang, and it's not
valid bash.

Closes https://github.com/espressif/esp-idf/pull/5860
2020-09-16 10:20:17 +02:00
Ivan Grokhotkov
77b03ff800 Merge branch 'bugfix/fix_partition_table_in_flash_encryption_example' into 'master'
example/flash_encryption: Fix partition table

See merge request espressif/esp-idf!10133
2020-09-16 15:58:38 +08:00
Jiang Jiang Jian
78ee03b100 Merge branch 'bugfix/update_esp32_phy_4390' into 'master'
esp_wifi: update esp32 phy v4390

See merge request espressif/esp-idf!10397
2020-09-16 11:57:32 +08:00
lly
cf1f5fe5ad ble_mesh: stack: Check if mesh stack initialized before init vendor client 2020-09-16 02:41:49 +00:00
Felipe Neves
e67162a7ea startup: namespaced start_app and start_app_other_core to avoid user code collision 2020-09-15 16:05:19 -03:00
Felipe Neves
a1e5dd58b2 startup: moved init core functions out of iram memory 2020-09-15 16:02:12 -03:00
Felipe Neves
d59e8b50d2 freertos: move startup code out of iram memory 2020-09-15 16:02:12 -03:00
Ivan Grokhotkov
deb7ca8bac Merge branch 'bugfix/codeowners_patterns' into 'master'
fix CODEOWNERS file patterns

See merge request espressif/esp-idf!10455
2020-09-16 02:56:28 +08:00
Ivan Grokhotkov
96db25c861 Merge branch 'feature/nvs_encryption_s2' into 'master'
NVS: using esp_partition API

Closes IDF-1340 and IDF-858

See merge request espressif/esp-idf!8683
2020-09-16 02:12:54 +08:00
Ivan Grokhotkov
72aaf83747 Merge branch 'sonarqube/pylint_with_py3' into 'master'
CI: Sonarqube: Use Python version 3 and pylint 2.6

See merge request espressif/esp-idf!10243
2020-09-16 01:59:33 +08:00
Ivan Grokhotkov
f16d231197 Merge branch 'feature/improve_load_env_log' into 'master'
CI: Improve load env config log output

See merge request espressif/esp-idf!9587
2020-09-16 01:59:05 +08:00
Ivan Grokhotkov
37eb5066ca Merge branch 'bugfix/delete_useless_built_binaries_failed' into 'master'
CI: fix the bug that will cause non-preserve app binaries won't get removed

See merge request espressif/esp-idf!9767
2020-09-16 01:58:10 +08:00
Ivan Grokhotkov
8bc19ba893 Merge branch 'feature/free_components_iram' into 'master'
freertos: free IRAM space moving task functions into flash memory

See merge request espressif/esp-idf!5648
2020-09-15 23:14:31 +08:00
Alex Lisitsyn
eaa892bebf freertos: optionally place selected freertos functions into flash memory instead of IRAM
correct generation.py script to be silent when file: function is not in the object list (just ignore placement)
correct linker.lf to place task functions into flash if CONFIG_FREERTOS_TASK_FUNCTIONS_INTO_FLASH is active otherwise into IRAM
update kconfig option to place functions into IRAM
update linker file after tests
fix spi_device_polling_end crash when xTaskGetTickCount() in flash
disable "yield from lower priority task, other CPU" test case when placing rtos functions into flash
upadate ut app config freertos_flash
combine spi_flash driver and freertos ut configs into one file
remove TEST_EXCLUDE_COMPONENTS
ci: fix ut job
remove functions that are called from ISR funcs
add port module functions to place into Flash
place snapshot funcs into Flash when ESP_PANIC_HANDLER_IRAM is not set
ci: add job with tags UT_T1_GPIO,ESP32_IDF
2020-09-15 23:14:31 +08:00
Angus Gratton
4535fa03b0 Merge branch 'feature/freertos_dual_portYIELD_support' into 'master'
feature/freertos: enable support for portYIELD_FROM_ISR that takes an argument or not

Closes IDF-1962

See merge request espressif/esp-idf!9927
2020-09-15 19:06:58 +08:00
Ivan Grokhotkov
00c3e0e8ec codeowners: fix directory patterns
The previous version used an incorrect /dir1/dir2 pattern to match the
content of dir2. The correct pattern should be /dir1/dir2/ (with the
trailing slash). This commit fixes these patterns.

Regarding codeowners.py:

'git ls-files' can not be used to correctly implement the logic of
CODEOWNERS file patterns, since it doesn't distinguish between
/path/* and /path/. The former pattern in CODEOWNERS file should only
match the files inside /path/, while the latter also matches files in
nested directories.

Because of this, the logic for evaluating patterns is re-implemented,
by converting CODEOWNERS patterns into regular expressions.
Gitlab CODEOWNERS parsing code was used as a reference, in addition to
the approach for converting glob patterns into regular expressions
proposed in https://stackoverflow.com/a/29354254.
2020-09-15 11:10:36 +02:00
Angus Gratton
2b8bacafc4 Merge branch 'bugfix/mfg_tool' into 'master'
mfg_util: Maintain format for line endings across various OS

Closes IDFGH-2827

See merge request espressif/esp-idf!8923
2020-09-15 14:30:44 +08:00
Island
ee7a7ffe55 Merge branch 'bugfix/ble_mesh_settings_fix' into 'master'
Bugfix/ble mesh settings fix

Closes BLEMESH-217

See merge request espressif/esp-idf!8920
2020-09-15 11:08:51 +08:00
Ivan Grokhotkov
0efad5951b Merge branch 'bugfix/ulp_doc_typo' into 'master'
ulp: typo fix (Github PR)

Closes IDFGH-1899

See merge request espressif/esp-idf!10382
2020-09-15 01:11:25 +08:00
Ivan Grokhotkov
4fe7a58a60 Merge branch 'bugfix/config_pm_use_rtc_timer_ref' into 'master'
esp_timer: fix CONFIG_PM_USE_RTC_TIMER_REF option usage

Closes IDFGH-2958

See merge request espressif/esp-idf!8399
2020-09-15 00:41:16 +08:00
Ivan Grokhotkov
c330def25a fatfs: fix SPIRAM allocation not used due to Kconfig option name error
Closes https://github.com/espressif/esp-idf/issues/5756
2020-09-14 18:30:31 +02:00
Felipe Neves
c471cce26c freertos/tests: added isr latency test with no parameter and parameter based yield from ISR 2020-09-14 16:12:38 +00:00
Felipe Neves
36b2737bb1 freertos/xtensa: make vportYIELD_FROM_ISR compatible with version that both takes argument or not 2020-09-14 16:12:38 +00:00
Michael (XIAO Xufeng)
1a1e1911f9 Merge branch 'bugfix/spi_dma_close_before_cpu_reset' into 'master'
spi: fix issue with closing DMA before CPU reset

Closes FCS-484

See merge request espressif/esp-idf!9844
2020-09-14 23:02:05 +08:00
Michael (XIAO Xufeng)
286ccc600e Merge branch 'bugfix/spi_slave_hd_callback_judge' into 'master'
spi_slave_hd: Prevent NULL callback from being called

See merge request espressif/esp-idf!9998
2020-09-14 22:43:33 +08:00
Shubham Kulkarni
b930f7a96d simple_ota_example: Add example test with flash encryption enabled 2020-09-14 13:47:39 +00:00