Commit Graph

10054 Commits

Author SHA1 Message Date
Ivan Grokhotkov 51d86081b8 gdbstub: fix thread list generation
This commit fixes an issue with gdbstub, where it would list threads
with TIDs 1 to N in qfThreadInfo/qsThreadInfo responses, and then
would tell GDB that the current TID is 0 in the qC response. This
caused an assertion failure in GDB, because it couldn't find the
thread structure corresponding to TID 0:

src/gdb/gdb/thread.c:93: internal-error: thread_info* inferior_thread(): Assertion `tp' failed.

The issue was caused by the logic of qfThreadInfo/qsThreadInfo.
If the "paniced" task index was 1, the code would report it in the
response to qfThreadInfo, and then mistakenly skip task with index 0
in qsThreadInfo, due to the use of pre-increment instead of a
post-increment.

With that issue fixed, GDB assertion doesn't happen anymore. However
the code contained a deeper problem, which manifested itself in the
fact that GDB would incorrectly show task index 0 as the current task,
after the above fix.

Previous version of the code assumed that when GDB requests the thread
list, it uses the first thread returned by the target as the "default"
thread, and subsequently shows the user that the program is stopped
in that thread. This assumption was incorrect. In fact, after
connecting to a remote target, GDB obtains information about the
"default" or "current" thread from two sources:
1. the 'thread' special register indicated in the status response
   ($T00thread;00000001#ee)
2. if the target has only sent the plain stop response ($T00#ee), GDB
   would ask for the current thread using a qC packet.
With that in mind, it is not necessary to report the paniced task as
the first task in qfThreadInfo response. We can simply returns the
tasks in their natural order, and then indicate the current task in
the qS packet response.

However even that change does not fully resolve the issues with task
list. The previous version of this code also incorrectly interpreted
the meaning of GDB TIDs -1 and 0. When GDB sends an "Hg0" command
early in the connection process, it doesn't expect the server to set
task 0 as the current task, as the code assumed. Rather, it tells the
server to "set any (arbitrary) task as the current one", and the most
logical thing to do for the server that is already in "stopped" state
is to keep the current task selection.

Since TID 0 has a special meaning in GDB remote protocol, gdbstub code
is now modified to map task indices (which start from 0) to GDB TIDs.
GDB TIDs are arbitrary, and for simplicity we keep the same order and
start counting them from 1.

The summary of all the above changes is:

1. Use "task index + 1" as the TID reported to GDB
2. Report the tasks in natural order; don't complicate the code to
   make the paniced task first in the list.
3. Centralize modification of 'current_task_index' and 'regfile'
   in the new 'set_active_task' function, to improve encapsulation.
2020-10-13 18:09:22 +02:00
Jiang Jiang Jian f10f27c01a Merge branch 'bugfix/ipv6_address_get_fail_after_wifi_disconnect' into 'master'
lw-ip:ipv6 address get fail after wifi disconnect

Closes ESPCS-442

See merge request espressif/esp-idf!9438
2020-10-13 12:14:46 +08:00
Jiang Jiang Jian 138f036b55 Merge branch 'bugfix/pmf_softap_coex_issue' into 'master'
Fix issues related to PMF and WPA2-Enterprise

Closes WIFI-2852, WIFI-2704, and WIFI-2863

See merge request espressif/esp-idf!10523
2020-10-13 11:43:41 +08:00
Angus Gratton af57f5f520 Merge branch 'bugfix/secure_boot_v2_ota_verification' into 'master'
Secure Boot V2: Fixes the OTA regression with secure boot in ESP32-V3

Closes IDFGH-4032

See merge request espressif/esp-idf!10600
2020-10-13 07:09:44 +08:00
Angus Gratton ff8d05466e Merge branch 'bugfix/deep_sleep_stub_heap_rtc_fast_mem' into 'master'
deep sleep: Calculate RTC CRC without using any stack or other RTC heap memory

Closes IDF-2242

See merge request espressif/esp-idf!10741
2020-10-13 06:17:50 +08:00
Mahavir Jain 0b71a0a46d Merge branch 'bugfix/esp_https_ota_error_codes' into 'master'
esp_https_ota: fix error code formatting

See merge request espressif/esp-idf!10809
2020-10-12 22:39:31 +08:00
Michael (XIAO Xufeng) fc7433d610 Merge branch 'feature/twai_isr_runs_with_cache_disabled' into 'master'
TWAI: ISR runs when cache is disabled

See merge request espressif/esp-idf!9920
2020-10-12 20:18:36 +08:00
Ivan Grokhotkov 85f919a428 esp_https_ota: fix error code formatting 2020-10-12 13:46:15 +02:00
Michael (XIAO Xufeng) f5e4638c54 Merge branch 'feature/tusb_cdc_without_timer' into 'master'
Update `tinyusb_cdcacm_write_flush` to using ticks counting instead of the FreeRTOS timer

See merge request espressif/esp-idf!10738
2020-10-12 19:45:57 +08:00
Jiang Jiang Jian b8d26ca389 Merge branch 'bugfix/assert_no_IRAM_ATTR' into 'master'
components/bt: btdm fix cache disable crash

See merge request espressif/esp-idf!10778
2020-10-12 16:58:26 +08:00
Michael (XIAO Xufeng) b821025312 Merge branch 'bugfix/uart_test_debug' into 'master'
driver: add diagnostic information into UART test, enable flow control

See merge request espressif/esp-idf!10627
2020-10-12 15:50:33 +08:00
Angus Gratton ff4d82c7d2 Merge branch 'feature/sha_hal' into 'master'
SHA: add HAL layer and refactor

See merge request espressif/esp-idf!10065
2020-10-12 15:15:28 +08:00
Supreet Deshpande 2356be7c7a Secure Boot V2: Fixes the OTA regression with secure boot in ESP32-V3
Closes https://github.com/espressif/esp-idf/issues/5905
2020-10-12 07:15:16 +00:00
Island 64fa998c0f Merge branch 'optimize/ble_mesh_make_buf_config_invisible' into 'master'
ble_mesh: stack: Make mesh buf debug option invisible

See merge request espressif/esp-idf!10777
2020-10-12 14:14:50 +08:00
Michael (XIAO Xufeng) 3c167497ad Merge branch 'bugfix/esp_flash_erase_timeout' into 'master'
esp_flash: change timeout threshold and can close timeout

Closes IDF-2023

See merge request espressif/esp-idf!10138
2020-10-12 12:49:36 +08:00
Cao Sen Miao b9f6efd99a esp_flash: change timeout threshold and can close timeout 2020-10-12 10:43:25 +08:00
xueyunfei 91fd587fb7 lwip/ipv6:ipv6 address get fail after wifi disconnect 2020-10-12 10:40:22 +08:00
lly 0d3c724281 ble_mesh: stack: Make mesh buf debug option invisible 2020-10-12 02:26:47 +00:00
Island 2b374ab7b8 Merge branch 'feat/ble_mesh_device_properties_v2' into 'master'
ble_mesh: Update mesh device property to v2

See merge request espressif/esp-idf!10754
2020-10-12 10:13:27 +08:00
Michael (XIAO Xufeng) 47e5dfb120 Merge branch 'feature/test_for_ext_flash_HSPI_on_esp32s2' into 'master'
spi_flash: add unit tests for HSPI on esp32s2

See merge request espressif/esp-idf!10040
2020-10-12 10:06:49 +08:00
lly d3aa32c2ec ble_mesh: stack: Add mesh device properties v2 definitions
Also fixes wrong characteristic value length of some device
properties.
2020-10-12 00:39:58 +00:00
lly 0b57cdf85b ble_mesh: stack: Move device property to model common part 2020-10-12 00:39:58 +00:00
Angus Gratton 562ab01046 deep sleep: Calculate RTC CRC immediately before deep sleep, without using RAM
Fix for issues where RTC FAST memory is updated as part of going into deep
sleep. Very high risk if heaps are in RTC memory - in particular task stacks
may be in RTC memory, but also other variables.

Also fixes potential concurrency problems as RTC FAST memory is not accessible
by CPU during the CRC calculation itself.

Method:
- Disable interrupts (currently for single core only, will need update for S3)
- Load all registers before calculating CRC or going to sleep
2020-10-12 11:19:56 +11:00
Angus Gratton bb480b72d0 Merge branch 'bugfix/parttool_init' into 'master'
parttool: make part_list an optional argument

See merge request espressif/esp-idf!10776
2020-10-12 06:36:48 +08:00
Anton Maklakov c8d45f11b3 Merge branch 'ci/fast_template_app_s3' into 'master'
ci: add esp32s3 into template app build

See merge request espressif/esp-idf!10598
2020-10-11 19:00:48 +08:00
wangcheng 49a52cda6e components/bt: btdm fix cache disable crash 2020-10-11 15:14:34 +08:00
Island cbb9aca23a Merge branch 'bugfix/ble_mesh_proxy_cfg_replay' into 'master'
Bugfix/ble mesh proxy cfg replay

See merge request espressif/esp-idf!10699
2020-10-10 21:07:42 +08:00
Nachiket Kukade 6ae4b3ef48 esp_wifi: Update wifi lib
1. Add STA checks during STA PMF operations
2. Fix WPA2-Ent issue with Open AP
3. Skip WPA-TKIP profile if PMF is required
4. Skip & clear Supplicant PMK Cache with mismatching AP config
2020-10-10 09:03:55 +00:00
Darian Leung 4c57f50fe4 TWAI: ISR runs when cache is disabled
This commit adds the feature where the TWAI ISR will continue to
run even if the cache is disabled. Whilst cache is disabled, any
received messages will go into the RX queue, and any pending TX
messages in the TX queue will be transmitted. This feature should
be enabled using the CONFIG_TWAI_ISR_IN_IRAM option.
2020-10-10 14:19:32 +08:00
Marius Vikhammer b3e7b58d04 parttool: make part_list an optional argument
Previous versions of PartitionType only required type and subtype as
arguments for the constructor. Make the new part_list argument optional to
keep backwards compatibilty
2020-10-10 09:46:51 +08:00
Cao Sen Miao 98cb2e5af3 spi_flash: add a unit test for HSPI on esp32s2 2020-10-09 20:57:00 +08:00
Ivan Grokhotkov eb83878323 Merge branch 'bugfix/coredump_thread_info_failure' into 'master'
espcoredump: fix exception when -thread-info fails

See merge request espressif/esp-idf!10720
2020-10-09 19:36:36 +08:00
Michael (XIAO Xufeng) 953c046550 esp32s3/bootloader: extend IRAM usage to 0x6000
The bootloader cannot fit in the size of iram_loader_seg when built under -O0. Extend the IRAM size to fix this.
2020-10-09 17:50:17 +08:00
lly 68a6ccba76 ble_mesh: stack: Store kr phase after value changed [Zephyr] 2020-10-09 08:52:01 +00:00
lly e286cd845f ble_mesh: stack: Fix rpl not check by proxy cfg [Zephyr] 2020-10-09 08:52:01 +00:00
Marius Vikhammer 949fb8e63a SHA: add HAL layer and refactor driver
Add a LL and HAL layer for SHA.
2020-10-09 08:24:08 +00:00
Ivan Grokhotkov a587cd1774 Merge branch 'bugfix/esp32s3_build' into 'master'
esp32s3: sync memprot header from esp32s2, fixing compilation error

See merge request espressif/esp-idf!10753
2020-10-09 15:58:11 +08:00
Angus Gratton d6f8e9dfa8 Merge branch 'bugfix/delete_unneeded_cpu_h' into 'master'
esp32s2, esp32s3: delete unneeded cpu.h

See merge request espressif/esp-idf!10716
2020-10-09 13:54:56 +08:00
Angus Gratton 8aa73aea86 esp32s2/3: Add missing stdlib includes
All three of these headers refer to stdint types, memprot uses stdbool
2020-10-09 15:05:41 +11:00
Island 646599f6f8 Merge branch 'bugfix/nimble_host_rcv_pkt_length_check' into 'master'
NimBLE: host_rcv_pkt event buf size check.

Closes BT-1015

See merge request espressif/esp-idf!10108
2020-10-09 09:16:09 +08:00
Ivan Grokhotkov aa489dba07 esp32s3: sync memprot header from esp32s2, fixing compilation error
Since 497b730e8f, panic_handler.c calls
esp_memprot_get_active_intr_memtype instead of
esp_memprot_is_assoc_intr_any.
2020-10-08 22:20:39 +02:00
Andrei Gramakov 3164116abd Update tinyusb_cdcacm_write_flush to using ticks counting instead of the FreeRTOS timer 2020-10-08 09:42:44 +02:00
Mahavir Jain c1bfaf7334 Merge branch 'bugfix/protocomm_mem_failure' into 'master'
protocomm_console.c: Check if memory is allocated to buf and if not then...

See merge request espressif/esp-idf!10733
2020-10-08 15:30:23 +08:00
Angus Gratton 4289ca3e0e Merge branch 'feature/freertos_timer_task_optional' into 'master'
freertos: save up to 4 kB of RAM if timer functionality is not used by the app

See merge request espressif/esp-idf!10721
2020-10-08 11:26:13 +08:00
Martin Vychodil 497b730e8f * memprot support for RTC_SLOW
* API upgrade
JIRA IDF-1636
2020-10-08 11:19:23 +08:00
Angus Gratton e28cd68839 esp_system: Add test case for using deep sleep wake stub when stack is in RTC memory
This test currently fails on ESP32 & ESP32-S2, fix will be in next commit.
2020-10-08 11:17:27 +11:00
kewal shah 9a16b551ef protocomm_console.c: Check if memory is allocated to buf and if not then return ESP_ERR_NO_MEM error 2020-10-06 10:13:40 +05:30
Angus Gratton 26a0df0423 Merge branch 'bugfix/bootloader_anti_rollback_mmap' into 'master'
bootloader_support: fix issue in memory mapping for getting app descriptor

Closes IDFGH-4038

See merge request espressif/esp-idf!10679
2020-10-06 07:44:37 +08:00
Angus Gratton 4b36da3f33 Merge branch 'feature/parttool_add_options_to_info_cmd' into 'master'
partition_table: Extend the get_partition_info command

See merge request espressif/esp-idf!10537
2020-10-06 07:35:32 +08:00
Chinmay Chhajed 3c0f06adb2 NimBLE: host_rcv_pkt event buf size check.
Check if the size of HCI event buffer is greater than the received HCI
packet. If not then abort with the error message.
2020-10-05 12:14:47 +00:00