Commit Graph

184 Commits

Author SHA1 Message Date
Omar Chebib
b0afae5e60 espcoredump: fix a bug where tracked DRAM data where not dumped
Variables marked as COREDUMP_DRAM_ATTR will now be part of the core dump.

* Closes https://github.com/espressif/esp-idf/issues/8151
2022-01-06 16:53:35 +08:00
Sudeep Mohanty
e22b4007d3 esp_hw_support: Removed deprecated CPU util functions
The following files were deleted:
- components/esp_hw_support/include/soc/cpu.h
- components/soc/esp32s3/include/soc/cpu.h

The following functions are deprecated:
- get_sp()

The following functions declared in soc/cpu.h are now moved to esp_cpu.h:
- esp_cpu_configure_region_protection()

The following functions declared in soc/cpu.h are now moved to components/xtensa/include/esp_cpu_utils.h:
- esp_cpu_process_stack_pc()

All files with soc/cpu.h inclusion are updated to include esp_cpu.h instead.

Signed-off-by: Sudeep Mohanty <sudeep.mohanty@espressif.com>
2021-12-28 16:58:37 +05:30
Roland Dobai
766aa57084 Build & config: Remove leftover files from the unsupported "make" build system 2021-11-11 15:32:36 +01:00
Anton Maklakov
1d3a47e10a coredump: update test data for toolchain 2021r2 2021-10-20 22:00:39 +07:00
Anton Maklakov
c402b82c1a coredump: Add some notes on how to generate test data 2021-10-13 15:06:41 +07:00
Shubham Patil
8ad9daea7d espcoredump: Parse bt for instruction fetch prohibited cause 2021-09-29 23:08:54 +05:30
Ivan Grokhotkov
e21e5aac64 esp_hw_support: update esp32s3 chip ID to the MP version
- Update 7.2.5 chip ID (4) to 7.2.8 chip ID (9).
- Remove TODO in espcoredump regarding this mismatch.
2021-09-13 15:16:45 +02:00
dmitry
5d859f1404 Add Esp32s3 to the coredump component.
Add changed expected_output for esp32, esp32s2 and esp32c3. coredump tag update.
2021-09-13 05:20:34 -04:00
Omar Chebib
92cf321677 freertos: add kconfig options for task snapshot functions
Task snapshots is required by other modules that don't use gdbstub
or core dump. Add a Kconfig option to manage these possibilities.
2021-09-01 15:13:48 +08:00
Omar Chebib
83c9e1b223 freertos: take tasks snapshot out of tasks.c source code 2021-08-16 10:29:36 +08:00
Marius Vikhammer
8b259d15f6 coredump: fix section name parsing in python utility
elf.py assumed every section header name had its own string in
shstrtab, but multiple sections may reuse the same substring with
different offsets.
2021-08-02 13:15:30 +08:00
Shubham Patil
2d2b066c01 espcoredump: Update expected output to fix test failures 2021-07-28 09:41:07 +05:30
Shubham Patil
3e84e5e668 Merge branch 'bugfix/xtensa_extra_info_register_values' into 'master'
espcoredump.py: Parse EPS and EPC register values using register index

See merge request espressif/esp-idf!14448
2021-07-27 10:22:41 +00:00
Fu Hanxi
12f0b55ca9 test(coredump): refactor coredump test and add esp32s2/esp32c3 tests 2021-07-22 10:17:59 +08:00
Shubham Patil
df12f22e37 espcoredump.py: Parse EPS and EPC register values using register index 2021-07-21 20:24:47 +05:30
Omar Chebib
f810d51327 coredump: simplify the implementation of esp_core_dump_image_erase function
Closes https://github.com/espressif/esp-idf/pull/6949
2021-06-21 11:26:09 +08:00
0xFEEDC0DE64
352dc6cf83 Fixed esp_core_dump_image_erase() for flash encryption with 16byte long write buffer 2021-06-21 10:50:47 +08:00
Sachin Parekh
46dc36233a coredump: Parse backtrace info for RISCV
For RISCV, backtrace generation on device is not possible without
including and parsing DWARF sections. We extract the crash task stack
and let the host generate the backtrace
2021-05-17 11:43:25 +05:30
Fu Hanxi
b972631658 feat(coredump): add esp32s2 and esp32c3 support 2021-04-26 20:44:23 +08:00
Fu Hanxi
d94423c1cf fix(coredump): pr_status pid padding should be uint16 2021-04-26 20:44:23 +08:00
Omar Chebib
837629814f coredump: core dump data check can now be parametrized
Core dump integrity check can now be parametrized through menuconfig.
It can be performed on boot or ignored. When core dump is activated
in the menuconfig, the user can still check the core dump at any time
with the function `esp_core_dump_image_check()`.

Fix a bug where `esp_core_dump_image_get()` was not accessible
when core dump was disabled.

Closes https://github.com/espressif/esp-idf/issues/6620
2021-04-19 13:05:32 +08:00
Shubham Patil
78e387c2bc espcoredump: Fix string truncation build failure 2021-04-14 14:42:09 +05:30
Michael (XIAO Xufeng)
8cfcf6da7a Merge branch 'bugfix/enable_gpio18_gpio19_esp32c3' into 'master'
gpio: Disable USB JTAG when setting pins 18 and 19 as GPIOs on ESP32C3

Closes IDF-2964

See merge request espressif/esp-idf!12753
2021-04-12 09:39:55 +00:00
Shubham Patil
356e2bbe6d espcoredump: On device core dump parsing to generate summary 2021-04-09 09:43:40 +05:30
Omar Chebib
cd79f3907d gpio: Disable USB JTAG when setting pins 18 and 19 as GPIOs on ESP32C3
When `DIS_USB_JTAG` eFuse is NOT burned (`False`), it is not possible
to set pins 18 and 19 as GPIOs. This commit solves this by manually
disabling USB JTAG when using pins 18 or 19.
The functions shall use `gpio_hal_iomux_func_sel` instead of
`PIN_FUNC_SELELECT`.
2021-04-08 14:01:18 +08:00
0xFEEDC0DE64
45de6f9c59 espcoredump erase review comments 2021-03-30 08:59:39 +00:00
0xFEEDC0DE64
a72f2e2257 coredump: Implemented esp_core_dump_image_erase() and esp_core_dump_image_get() now returns ESP_ERR_NOT_FOUND when partition is blank
Closes https://github.com/espressif/esp-idf/pull/6631
2021-03-30 08:59:39 +00:00
Omar Chebib
e533431095 espcoredump: Fix bugs related to (fake) stacks
Add support to tasks stacks in RTC DRAM. Before this fix, any stack
in RTC DRAM would have been considered as corrupted, whichi is not
the case.
Fix a bug related to wrong parameters passed to esp_core_dump_get_stack.
Fix a bug reading fake stack memory, triggering a memory violation.

* Closes https://github.com/espressif/esp-idf/issues/6751
* Merges https://github.com/espressif/esp-idf/pull/6750
2021-03-22 11:38:21 +08:00
Angus Gratton
fd164b82b6 Merge branch 'refactor/move_from_xtensa' into 'master'
Movements from xtensa

Closes IDF-2164

See merge request espressif/esp-idf!10556
2021-03-11 00:24:25 +00:00
Renz Bagaporo
10c5226095 ldgen: use uppercase keywords for flags 2021-03-01 14:19:34 +08:00
Renz Bagaporo
dbdc17cced ldgen: rename emit to surround 2021-03-01 14:19:34 +08:00
Renz Bagaporo
115b6ac0ac esp32: transfer coredump linker script blocks to ldgen 2021-03-01 14:19:34 +08:00
Renz Bagaporo
633ead5dcb esp32: move coredump sections and schemes to espcoredump 2021-03-01 14:19:34 +08:00
Renz Bagaporo
0f03f450ff esp_hw_support: create esp_cpu
Create a esp_cpu header that contains CPU-related functions and
utilities.
2021-02-26 13:34:29 +08:00
Anton Maklakov
3a629afb06 Merge branch 'feature/type_checking_python' into 'master'
CI:Type checking of Python scripts

Closes IDF-2413

See merge request espressif/esp-idf!12287
2021-02-26 03:06:37 +00:00
Angus Gratton
b4612a2f14 Merge branch 'feature/coredump_refactor_riscv_support' into 'master'
espcoredump: code refactoring and add support for RISC-V implementation

Closes ESP-1758

See merge request espressif/esp-idf!11850
2021-02-25 22:41:27 +00:00
Tomas Sebestik
a22597a2d6 Add mypy check to pre-commit-config 2021-02-25 07:05:43 +00:00
0xFEEDC0DE64
5a956f8b5e Fixed c++ include usage for esp_core_dump.h 2021-02-20 22:27:45 +01:00
Omar Chebib
e9996ebd4b espcoredump: code refactoring and add support for RISC-V implemetation
This commit includes the refactoring of the core dump feature. Thanks to
this refactoring, it is easier to integrate the support of RISC-V
architecture for this feature.

Fixes ESP-1758
2021-02-07 19:04:19 +08:00
Fu Hanxi
da73dc8195 fix(coredump): parse registers values from stack 2021-01-29 11:12:21 +08:00
Ivan Grokhotkov
88252c98b8 Merge branch 'feature/refactor_espcoredump' into 'master'
Feature: Refactor espcoredump

See merge request espressif/esp-idf!11525
2021-01-21 20:35:31 +08:00
Angus Gratton
3532f52f60 Merge branch 'bugfix/ldgen_ignore_nonexistent_archives_and_obj' into 'master'
ldgen: check mappings

Closes IDF-1624

See merge request espressif/esp-idf!8557
2021-01-21 15:59:35 +08:00
Fu Hanxi
be71f5050d core dump: modify the test according to the refactor 2021-01-21 15:14:59 +08:00
Fu Hanxi
d50f021a8c core dump: rewrite espcoredump.py with corefile package 2021-01-21 15:14:59 +08:00
Fu Hanxi
7109cda149 core dump: Add corefile package for parse/build bin/elf core files
- elf.py: elf related structs

- gdb.py: gdb related functions

- loader.py: extract elf/bin from flash to elf format core file

- xtensa.py: xtensa arch target related structs and functions
2021-01-21 15:14:59 +08:00
Renz Bagaporo
8d52b0b5e1 ci: exempt upstream libmbedtls mapping for sha256 2021-01-19 11:17:18 +08:00
Alexey Gerenkov
3b0fa33c20 coredump: Adds compile time check for target support 2021-01-18 20:51:11 +03:00
Alexey Gerenkov
589a3d9336 coredump: Switches to RTOS snapshots walking API 2021-01-18 20:51:05 +03:00
Omar Chebib
f4ac8433c1 coredump: Core dump is encrypted if the partition itself is encrypted
Core dump can now be written in plain text if the partition itself is encrypted.
So it is important to modify the partition table if the user wants an encrypted
core dump partition as by default, it is not.
Added some functions in core_dump_port.c to abstract the checksum implementation
from core_dump_flash.c file.

Closes IDF-458
2020-12-01 16:58:45 +08:00
Omar Chebib
a56a0921aa espcoredump: fix plain coredump written on an encrypted flash
The coredump is now encrypted when saved on an encrypted flash.
The cache used for saving the file onto the flash is bigger,
making the proccess more efficient.

Relates to IDF-458
Closes https://github.com/espressif/esp-idf/issues/2932
2020-11-26 16:28:32 +08:00
Roland Dobai
2ecf66eba3 tools: Wait and dump the initial messages during gdbmi initialization 2020-11-18 19:08:16 +01:00
Roland Dobai
82ee1d4683 tools: Increase the internal GDB response delay for espcoredump CI tests 2020-11-18 18:56:30 +01:00
Roland Dobai
646f3fb801 tools: Fix non-existing key in espcoredump's GDMI payload 2020-11-18 18:56:30 +01:00
Angus Gratton
420aef1ffe Updates for riscv support
* Target components pull in xtensa component directly
* Use CPU HAL where applicable
* Remove unnecessary xtensa headers
* Compilation changes necessary to support non-xtensa gcc types (ie int32_t/uint32_t is no
  longer signed/unsigned int).

Changes come from internal branch commit a6723fc
2020-11-13 07:49:11 +11:00
Angus Gratton
66fb5a29bb Whitespace: Automated whitespace fixes (large commit)
Apply the pre-commit hook whitespace fixes to all files in the repo.

(Line endings, blank lines at end of file, trailing whitespace)
2020-11-11 07:36:35 +00:00
Ivan Grokhotkov
5eebdd1de2 espcoredump: fix exception when -thread-info fails
GDB "-thread-info N" command (for a specific thread N) may fail if
GDB can not perform a backtrace. At the same time, "-thread-info"
command succeeds in this situation, returning information for all
threads.
Replace repeated calls to "-thread-info N" with a single call to
"-thread-info", also reducing the total execution time.
2020-10-02 16:54:32 +02:00
Mahavir Jain
237087a5ca espcoredump: remove ESP32 prefix from config options
- This component is applicable for ESP32 and ESP32-S2, hence the change
- Backward compatibility is maintained using `sdkconfig.rename` file
2020-09-30 20:22:27 +05:30
Ivan Grokhotkov
767235ba6d Merge branch 'bugfix/coredump_temp_files_del' into 'master'
coredump: temp-files delete fix

See merge request espressif/esp-idf!9511
2020-09-14 16:05:28 +08:00
Jakob Hasse
20c068ef3b cmock: added cmock as component
* changing dependencies from unity->cmock
* added component.mk and Makefile.projbuild
* ignore test dir in gen_esp_err_to_name.py
* added some brief introduction of CMock in IDF
2020-09-02 16:38:37 +08:00
Andrei Gramakov
48c4378a70 coredump: temp-files delete fix 2020-08-04 09:15:30 +02:00
Ivan Grokhotkov
8ac56e904b Merge branch 'bugfix/coredump_esp_panic_reason' into 'master'
Coredump ESP panic reason

See merge request espressif/esp-idf!9072
2020-07-28 23:49:10 +08:00
Alexey Gerenkov
cae41db8b8 coredump: Fixes core dump private header inclusion guard 2020-07-27 21:38:34 +03:00
Alexey Gerenkov
21091c6b0e coredump: Fixes ESP-specific panic reasons handling 2020-07-27 21:38:33 +03:00
morris
2917651478 esp_rom: extract common ets apis into esp_rom_sys.h 2020-07-27 15:27:01 +08:00
Roland Dobai
ee5e3f8b93 CI: Fix timeout in the espcoredump test 2020-07-08 11:10:43 +02:00
morris
a34409cffc esp_rom: extract common CRC apis into esp_rom_crc.h 2020-06-23 16:40:14 +08:00
Ivan Grokhotkov
c140a66d3d Merge branch 'feature/coredump_pygdbmi' into 'master'
espcoredump: use pygdbmi for interaction with GDB

Closes IDF-48

See merge request espressif/esp-idf!8841
2020-06-23 01:44:45 +08:00
Ivan Grokhotkov
3ffacb04b9 Merge branch 'bugfix/espcoredump_fix_error_reported_for_blank_partition' into 'master'
espcoredump: fix error reported for blank partition

Closes IDF-1727

See merge request espressif/esp-idf!8801
2020-06-22 15:54:19 +08:00
Alex Lisitsyn
0d85e0096c espcoredump: fix error reported for blank partition 2020-06-22 15:54:18 +08:00
Ivan Grokhotkov
cbd1a95fd0 espcoredump: simplify handling of temporary files 2020-06-18 19:08:00 +02:00
Ivan Grokhotkov
a63f44cfda espcoredump: use pygdbmi for interaction with GDB
IDF now includes pygdbmi package as a dependency, so we can use it
for core dump parsing.
2020-06-18 19:07:59 +02:00
Krzysztof Budzynski
79a0e892a0 Merge branch 'feature/coredump_allow_variable_dumping' into 'master'
Added coredump user defined variable into coredump

Closes IDF-44

See merge request espressif/esp-idf!8730
2020-06-15 02:35:38 +08:00
Alexey Gerenkov
1deeadf4c5 Added coredump user defined variable into coredump 2020-06-15 02:35:38 +08:00
Ivan Grokhotkov
8526cb577c Merge branch 'bugfix/coredump_workaround_esp32s2_sha256_support' into 'master'
Limit coredump SHA256 support for ESP32 only

See merge request espressif/esp-idf!8817
2020-06-05 22:14:46 +08:00
Sylvio Alves
1fdc7afeb8 coredump: Limit coredump SHA256 support for ESP32 only 2020-05-29 15:25:29 -03:00
Alexey Gerenkov
cfd65df78a coredump: Fixes size of memory region used by espcoredump.py 2020-05-29 20:53:15 +03:00
Alexey Gerenkov
ef1b3330c2 coredump: Fixes coredump data overwriting due to 'TaskSnapshot_t' and 'core_dump_task_header_t' difference 2020-05-06 15:04:58 +03:00
Ivan Grokhotkov
e94288da31 global: use '/usr/bin/env bash' instead of '/usr/bin/bash' in shebangs
Using the method from @cemeyer
(https://github.com/espressif/esp-idf/pull/3166):

find . -name \*.sh -exec sed -i "" -e 's|^#!.*bin/bash|#!/usr/bin/env bash|' {} +

Closes https://github.com/espressif/esp-idf/pull/3166.
2020-04-03 01:10:02 +02:00
Angus Gratton
62426a6c90 Merge branch 'refactor/use_new_component_registration_functions' into 'master'
CMake: Use new component registration function

See merge request espressif/esp-idf!8068
2020-03-25 08:02:42 +08:00
aleks
b3eff24458 espcoredump: update expected test output 2020-03-23 14:40:56 +00:00
Andreas Motl
dde4d2e9eb Make espcoredump more resilient when decoding specific thread stack
Merges https://github.com/espressif/esp-idf/pull/4865
2020-03-23 14:40:56 +00:00
Renz Bagaporo
3d0967a58a test: declare requirements and include dirs private 2020-03-23 10:58:50 +08:00
Ivan Grokhotkov
80f50471bf Merge branch 'bugfix/coredump_no_ext_stacks' into 'master'
core dump: don't allow core dumps to Flash if PSRAM is used for stacks

See merge request espressif/esp-idf!7835
2020-03-07 18:07:10 +08:00
Alex Lisitsyn
3efa8d7a97 core dump: add ESP32-S2 support 2020-03-03 23:37:45 +08:00
Ivan Grokhotkov
4f32a06f87 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-03-02 14:43:05 +01:00
Ivan Grokhotkov
25041ba583 tools/idf_monitor: automatically decode UART core dumps
This adds detection of UART core dumps to IDF monitor. By default,
core dumps are not printed to the console, but are processed by
espcoredump.py using 'info_corefile' command. The result is printed
to stdout.

This feature can be disabled in menuconfig.

In the future this can be extended to allow running espcoredump.py
with 'dbg_corefile' argument, which is similar to the current GDB Stub
behavior.

Related to IDF-52.
2020-02-13 18:46:26 +01:00
morris
e30cd361a8 global: rename esp32s2beta to esp32s2 2020-01-22 12:14:38 +08:00
morris
1c2cc5430e global: bring up esp32s2(not beta) 2020-01-16 17:41:31 +08:00
Ivan Grokhotkov
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
Ivan Grokhotkov
37a8ff9040 core dump: only get EPC/EPS registers up to XCHAL_NUM_INTLEVELS 2019-12-19 16:47:57 +01:00
Alexey Gerenkov
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
Alexey Gerenkov
27ce4d13df coredump: change data format to ELF 2019-11-22 13:25:43 +08:00
Ivan Grokhotkov
9a2af7ae33 global: remove gcc 5.2 support 2019-11-20 11:17:27 +01:00
Angus Gratton
adfc06a530 Merge branch 'master' into feature/esp32s2beta_merge 2019-09-20 10:28:37 +10:00
Angus Gratton
438d513a95 Merge branch 'master' into feature/esp32s2beta_merge 2019-09-16 16:18:48 +10:00
Michael (XIAO Xufeng)
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
Michael (XIAO Xufeng)
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
Michael (XIAO Xufeng)
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
Alex Lisitsyn
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
Angus Gratton
04ae56806c Merge branch 'master' into feature/esp32s2beta_update 2019-08-08 15:26:58 +10:00