Commit Graph
100 Commits
Author SHA1 Message Date
Omar Chebib dc8fdae31b docs(freertos): revert usage of hidden option CONFIG_ESP_SYSTEM_SINGLE_CORE_MODE when :ref: is used 2023-11-30 16:33:28 +08:00
Omar Chebib ca1a0bdc59 Merge branch 'bugfix/esp32p4_fpu_check' into 'master'
fix(riscv): fix a bug in FPU exception handling

See merge request espressif/esp-idf!27045
2023-11-15 17:19:55 +08:00
Omar Chebib e56f5b15cc fix(riscv): fix a bug in FPU exception handling
On the ESP32-P4, it is possible to have an exception because of an FPU instruction
while EXT_ILL CSR is not zero and its FPU bit is not set.
2023-11-14 06:55:08 +00:00
Omar Chebib ff2a492002 Merge branch 'staging/espcoredump_move_strings_flash' into 'master'
change(espcoredump): save RAM space by placing constants in flash

See merge request espressif/esp-idf!26872
2023-11-03 12:20:25 +08:00
Omar Chebib 342535f47c Merge branch 'contrib/github_pr_12105' into 'master'
feat(espcoredump): Support for not overwriting existing core dump in flash (GitHub PR)

Closes IDFGH-10907

See merge request espressif/esp-idf!26865
2023-11-03 10:51:39 +08:00
Omar Chebib 8ac4b48b2f change(espcoredump): save RAM space by placing constants in flash
All the log messages of espcoredump component used to be in DRAM, which would
lower the available RAM space for the user application. Since the cache is always
enabled after an exception, constants can be put in flash.
2023-11-02 19:09:57 +08:00
Omar Chebib 51434a8367 Merge branch 'feature/esp32p4_fpu_support' into 'master'
feat(riscv): implement FPU support for RISC-V targets

Closes IDF-7770

See merge request espressif/esp-idf!25871
2023-10-23 16:50:36 +08:00
Omar Chebib a8b1475fe7 feat(riscv): implement coprocessors save area and FPU support
This commit mainly targets the ESP32-P4. It adds supports for coprocessors on
RISC-V based targets. The coprocessor save area, describing the used coprocessors
is stored at the end of the stack of each task (highest address) whereas each
coprocessor save area is allocated at the beginning of the task (lowest address).
The context of each coprocessor is saved lazily, by the task that want to use it.
2023-10-23 11:10:28 +08:00
Omar Chebib d3afca3020 Merge branch 'fix/esp32p4_supports_interrupts' into 'master'
feat(riscv): Add support to ESP32-P4's CLIC interrupt controller

Closes IDF-7795 and IDF-7793

See merge request espressif/esp-idf!25383
2023-09-01 11:48:39 +08:00
Omar Chebib 8ca191e4c1 fix(esp32p4): Fixed interrupt handling to use the CLIC controller 2023-08-31 12:16:08 +08:00
Omar Chebib 3bf829a157 Merge branch 'feature/esp32c3_opencores_ethernet_support' into 'master'
feat(esp_eth): add opencores ethernet support for ESP32-C3 (QEMU) target

See merge request espressif/esp-idf!25487
2023-08-28 11:16:26 +08:00
Omar Chebib 3e9d2155eb feat(esp_eth): add opencores ethernet support for ESP32-C3 (QEMU) target 2023-08-24 10:32:46 +08:00
Omar Chebib 0368aa5257 Merge branch 'feature/bootloader_ignore_extra_component' into 'master'
bootloader: add the possibility to ignore extra components

Closes IDF-7825

See merge request espressif/esp-idf!24806
2023-08-02 10:28:41 +08:00
Omar Chebib 7b5c0fb96b ci(build_system): add a test case for bootloader override 2023-07-28 15:04:21 +08:00
Omar Chebib c98d1f1619 feat(bootloader): add the possibility to ignore extra components 2023-07-28 15:04:21 +08:00
Omar Chebib d2471b11e7 Merge branch 'bugfix/fpu_registers_overwritten' into 'master'
Xtensa: fix a bug that altered CPU registers in FPU exception handlers

Closes IDFGH-10439

See merge request espressif/esp-idf!24518
2023-07-05 17:28:53 +08:00
Omar Chebib 2aee63a773 freertos: add a unit test for FPU context switch 2023-07-04 02:45:56 +00:00
Omar Chebib b03c8912c7 Xtensa: fix a bug that altered CPU registers in FPU exception handlers
* Fixes https://github.com/espressif/esp-idf/issues/11690
2023-07-04 02:45:56 +00:00
Omar Chebib eeaa40f71d System: implement libunwind library for RISC-V backtracing
Closes https://github.com/espressif/esp-idf/issues/7866

A minimal x86 implementation has also been added, it is used to perform a host test.
2023-05-15 11:19:03 +08:00
Omar Chebib 74d87aef0c Merge branch 'feature/dedicated_gpios_xtensa' into 'master'
Dedicated GPIO: add software UART implementation for Xtensa targets

See merge request espressif/esp-idf!21918
2023-05-04 12:49:27 +08:00
Omar Chebib 3bc3f87209 Merge branch 'bugfix/i2c_timing_wrong' into 'master'
i2c: fix a bug in sda sample timing

Closes IDFGH-8295

See merge request espressif/esp-idf!23185
2023-04-17 15:00:42 +08:00
Omar Chebib 801f934ac9 Dedicated GPIO: add software UART implementation for Xtensa targets
The software UART example is now compatible with Xtensa targets that have dedicated GPIOs. In other words, this example is now compatible with ESP32-S2 and ESP32-S3.
2023-04-14 15:31:34 +08:00
Omar Chebib a0f8434f93 i2c: fix a bug in sda sample timing
* Closes https://github.com/espressif/esp-idf/issues/9777

This bug prevented SCL line to work properly after a NACK was received in master mode.
2023-04-13 14:37:44 +08:00
Omar Chebib 2f4c32afac Apply 1 suggestion(s) to 1 file(s) 2023-03-13 14:47:09 +08:00
Omar Chebib 0fa63be9d1 Merge branch 'bugfix/fix_psram_kconfig_help' into 'master'
psram: removed deprecated statement about coredump and external BSS

See merge request espressif/esp-idf!22561
2023-03-08 13:31:53 +08:00
Omar Chebib 9852cb49f7 psram: removed deprecated statement about coredump and external BSS 2023-03-07 05:59:08 +00:00
Omar Chebib d55060d184 Merge branch 'staging/rename_twdt_config_examples' into 'master'
TWDT: Use the new TWDT Kconfig options in the examples and tests

See merge request espressif/esp-idf!20363
2023-02-20 10:42:23 +08:00
Omar Chebib 5e5343d429 TWDT: Use the new TWDT Kconfig options in the examples and tests 2023-02-17 11:22:25 +08:00
Omar Chebib 5eb8defb30 Merge branch 'staging/coredump_extram_support' into 'master'
coredump: enable support for stacks in external RAM

Closes IDF-5497 and IDF-2391

See merge request espressif/esp-idf!21067
2022-12-26 17:52:41 +08:00
Omar Chebib 835263e50a Coredump: add a test to check that coredump supports stacks in SPIRAM 2022-12-22 12:47:22 +01:00
Omar Chebib 42b2169542 coredump: add support for stacks in external RAM
Tasks having their stacks in SPIRAM can now be part of the coredump written to flash
2022-12-22 12:47:22 +01:00
Omar Chebib 1ff8a68c21 Merge branch 'bugfix/support_coredump_stack_xtensa' into 'master'
coredump: custom core dump stack is now supported on Xtensa targets

See merge request espressif/esp-idf!21335
2022-12-19 18:02:15 +08:00
Omar Chebib 301cb74890 coredump: custom core dump stack is now supported on Xtensa targets 2022-12-02 12:01:19 +08:00
Omar Chebib 7baa63cbc2 Merge branch 'staging/asm_dedic_gpio_example' into 'master'
Dedicated/Fast GPIO: add examples implementing software I2C, UART and SPI on RISC-V targets

Closes IDF-5936

See merge request espressif/esp-idf!20921
2022-11-23 14:19:01 +08:00
Omar Chebib d965b7fdec Merge branch 'staging/esp_static_assert' into 'master'
C/Cxx: Static assertions are now unified

Closes IDFGH-8479

See merge request espressif/esp-idf!20569
2022-11-22 17:04:02 +08:00
Omar Chebib 623bffaab8 Dedicated GPIO: add examples implementing software I2C, UART and SPI on RISC-V targets.
Use dedicated GPIOs in examples to show how to emulate a UART, I2C and SPI bus.
(Using assembly and C)
2022-11-22 14:17:40 +08:00
Omar Chebib 43c03d95a4 CI: check_public_headers script will detect the use of static asserts in headers
When a public header contains _Static_assert or static_assert, check_public_headers.py script will detect it and report it as an issue.
Indeed, public headers shall now use ESP_STATIC_ASSERT.
2022-11-21 16:18:13 +08:00
Omar Chebib cd21058097 C/Cxx: unify static assertions with the macro ESP_STATIC_ASSERT
Closes https://github.com/espressif/esp-idf/issues/9938
2022-11-21 16:18:08 +08:00
Omar Chebib 54954518b1 Merge branch 'staging/riscv_wrapper_freertos_tasks' into 'master'
RISC-V: Create a wrapper around FreeRTOS Tasks to detect the ones returning

Closes IDF-4662

See merge request espressif/esp-idf!20845
2022-11-21 12:14:34 +08:00
Omar Chebib 6fe563163c RISC-V: fix PC not saved when using backtrace 2022-11-18 15:07:38 +08:00
Omar Chebib d580f6b076 RISC-V: Create a wrapper around FreeRTOS Tasks to detect the ones returning 2022-11-18 15:07:32 +08:00
Omar Chebib 69d80b200c Merge branch 'bugfix/xtensa_freertos_16B_aligned' into 'master'
FreeRTOS: Make the default stack alignment 16 for Xtensa

Closes IDF-3604

See merge request espressif/esp-idf!21040
2022-11-14 10:53:10 +08:00
Omar Chebib bcb8516744 FreeRTOS: Make the default stack alignment 16 for Xtensa 2022-11-11 19:31:20 +08:00
Omar Chebib 65ecbb1b9b Merge branch 'contrib/github_pr_10027' into 'master'
[Panic] also print to secondary USB Serial/JTAG Console (GitHub PR)

Closes IDFGH-8578

See merge request espressif/esp-idf!20827
2022-10-28 12:04:36 +08:00
Omar Chebib 009d15e59d Merge branch 'staging/esp_timer_restart' into 'master'
esp_timer: add a function to restart timers

See merge request espressif/esp-idf!20386
2022-10-26 16:37:33 +08:00
Omar Chebib 8e9b1e8a7a Merge branch 'bugfix/bt_bss_wrong_address' into 'master'
Bluetooth: fix BSS placement in the linker script generated by ldgen

Closes BT-2883

See merge request espressif/esp-idf!20749
2022-10-25 16:34:30 +08:00
Omar Chebib 950981906b Bluetooth: fix BSS placement in the linker script generated by ldgen 2022-10-24 16:37:30 +08:00
Omar Chebib c8614a0dbf esp_timer: add a function to restart timer
Timers, periodic or not, can now be restarted thanks to esp_timer_restart function.
This is done atomically, which can be used to feed a periodic timer, or simply change the period.
2022-10-18 04:42:27 +00:00
Omar Chebib dd7fde8799 Merge branch 'contrib/github_pr_9095' into 'master'
Update uart_events_example_main.c (GitHub PR)

Closes IDFGH-7532

See merge request espressif/esp-idf!18391
2022-09-21 19:51:37 +08:00
Omar Chebib 4f1a9e436e Merge branch 'feature/add_int_task_wdt_esp32c2' into 'master'
WDT: implement interrupt wdt and task wdt for ESP32-C2

Closes IDF-4035, IDF-4205, and IDF-5055

See merge request espressif/esp-idf!18918
2022-09-16 10:43:34 +08:00
Omar Chebib 79598b1db7 Flash: fix flash_suspend example to include worst case
flash_suspend example will now test the worst case in order to be able
to detect real regression:
- shorter response time is acceptable, as the tested function may be in the cache already
- response time longer than 120us will be considered a potential regression
2022-09-15 14:37:59 +08:00
Omar Chebib 6798bfc4b0 TWDT: the Kconfig option ESP_TASK_WDT_EN is now used to enable Task Watchdog 2022-09-15 14:37:59 +08:00
Omar Chebib 30d12af191 TWDT: refactor the TWDT to be driver agnostic
This refactoring brings a private API for the TWDT implementation, which
can now use a hardware timer (Timer Group) or a software timer (esp_timer)
2022-09-15 14:37:59 +08:00
Omar Chebib 53c7dd4efc WDT: implement interrupt wdt and task wdt for ESP32-C2
ESP32-C2 has a single group timer, thus it will use it for the interrupt watchdog,
which is more critical than the task watchdog. The latter is implement in
software thanks to the `esp_timer`component.
2022-09-15 14:37:59 +08:00
Omar Chebib 6dfac0dd68 example: add an example to show how to wrap functions in IDF and bootloader
A section in the documentation has also been added to talk about the wrap feature of the linker.
2022-09-09 16:47:16 +08:00
Omar Chebib 3ffa2ad39c Merge branch 'feature/bootloader_date_log' into 'master'
Bootloader: print date and time to the banner on boot

Closes IDFGH-8229

See merge request espressif/esp-idf!20002
2022-09-08 22:39:18 +08:00
Omar Chebib 3a429b8b7a Bootloader: print date and time to the banner on boot
* Closes https://github.com/espressif/esp-idf/issues/9718
2022-09-08 06:08:49 +00:00
Omar Chebib 779d880580 Merge branch 'bugfix/rtc_retain_mem_always_erased' into 'master'
Bootloader: retained memory can now be kept after reboot when custom data enabled

See merge request espressif/esp-idf!19809
2022-09-01 16:42:54 +08:00
Omar Chebib 0b5ab940ae TLSF: fix the patch for tlsf_check function in ROM
tlsf_check in the patch was not called because the the TLSF functions
table in ROM was still pointing to the ROM implementation.
2022-08-31 13:30:10 +08:00
Omar Chebib 26c4550e6d Bootloader: retained memory can now be kept after reboot when custom data enabled
User's custom data are not taken into account during the CRC calculation anymore.
Which means taht the retained mem structure is not systematically erased
on each reboot anymore.
2022-08-31 03:23:30 +00:00
Omar Chebib 239ca6a02c Merge branch 'bugfix/fix_typo_get-started' into 'master'
docs: fix typo in get-started chapter

See merge request espressif/esp-idf!19762
2022-08-29 22:04:44 +08:00
Omar Chebib 2f8c76abf2 Merge branch 'bugfix/rename_configs_not_set' into 'master'
Confgen: KConfig options not set in sdkconfig.defaults files can now be renamed

See merge request espressif/esp-idf!19751
2022-08-26 16:33:27 +08:00
Omar Chebib 0030e46a96 Confgen: KConfig options not set in sdkconfig.defaults files can now be renamed 2022-08-26 03:36:28 +00:00
Omar Chebib 6f3c6dcd86 Merge branch 'bugfix/i2c_port_unsigned' into 'master'
I2C: i2c_port_t type is now an enumeration

Closes IDFGH-7433

See merge request espressif/esp-idf!18230
2022-08-25 17:25:51 +08:00
Omar Chebib f6ac350337 I2C: i2c_port_t type is now an enumeration
* Closes https://github.com/espressif/esp-idf/issues/9009
2022-08-24 10:51:09 +08:00
Omar Chebib 49613ab832 Build: add hints for the breaking changes of esp_system related components 2022-08-11 11:35:04 +08:00
Omar Chebib d622bcfd46 Merge branch 'contrib/github_pr_9517' into 'master'
fix malloc(0) and heap_caps_alloc_failed() (GitHub PR)

Closes IDFGH-8007

See merge request espressif/esp-idf!19421
2022-08-09 15:49:27 +08:00
Omar Chebib c6ddf7288c heap: add a unit test for malloc(0) and slightly optimize heap_caps_malloc_prefer 2022-08-09 10:30:36 +08:00
Omar Chebib 790aa40c38 Merge branch 'contrib/github_pr_7144' into 'master'
Update i2c.c to consider two I2C buses for clear bus counter (GitHub PR)

Closes IDFGH-5398

See merge request espressif/esp-idf!19093
2022-08-09 10:26:25 +08:00
Omar Chebib 75ede16b38 I2C: Fix the reset counter 2022-08-08 11:05:11 +08:00
Omar Chebib b2eb0e16d4 Merge branch 'bugfix/TWDT_link_interruptee_stack' into 'master'
Task WDT: Interuptee task stack is now used for backtracing

Closes IDF-4976

See merge request espressif/esp-idf!19026
2022-08-03 18:23:28 +08:00
Omar Chebib 2f7bae7a6e Task WDT: add a panic test case for to test panic on both CPU cores 2022-08-02 12:41:14 +08:00
Omar Chebib e25cda2c40 Task WDT: Interuptee task stack is now used for backtracing, regardless of the CPU core
For RISC-V and Xtensa targets, in case a panic needs to happen when
Task WDT is triggered (ESP_TASK_WDT_PANIC), the interruptee's stack
is now used for printing the backtrace.
Abort after Task Watchdog is triggered can happen on APP CPU (second core).
2022-08-02 12:41:14 +08:00
Omar Chebib fde4afc67a Merge branch 'bugfix/queue_use_vtasksettimeoutstate' into 'master'
FreeRTOS: Modifying a timeout is now protected on multi-core configuration

Closes IDF-3808

See merge request espressif/esp-idf!19259
2022-07-29 15:33:01 +08:00
Omar Chebib 692891e773 FreeRTOS: Modifying a timeout is now protected on multi-core configuration 2022-07-29 11:56:06 +08:00
Omar Chebib 4e7ba0f8bd CI: Fix the test "smallest partition is nearly full"
This test will not fail anymore if the binary size is bigger than 170K.
2022-07-21 15:49:20 +08:00
Omar Chebib e5c83211a7 Merge branch 'bugfix/interrupt_stack_bss' into 'master'
System: move interrupt stack to .bss instead of .data section

Closes IDFGH-7635

See merge request espressif/esp-idf!18697
2022-07-12 13:44:07 +08:00
Omar Chebib bac62cfac8 System: move interrupt stack to .bss instead of .data section
The interrupt stack for Xtensa targets is now declared in C, automatically moving it to .bss section instead of .data section.

* Closes https://github.com/espressif/esp-idf/issues/9188
2022-07-11 17:49:21 +08:00
Omar Chebib f5c3c533bb Merge branch 'bugifx/heap_prefer_call_failed_callback' into 'master'
Heap: heap_caps_*_prefer functions now properly call alloc_failed callback

Closes IDFGH-7521

See merge request espressif/esp-idf!18427
2022-07-11 11:57:05 +08:00
Omar Chebib c017f006cd Merge branch 'contrib/github_pr_9255' into 'master'
Fix datatype conversion compiler error #9254 (GitHub PR)

Closes IDFGH-7713

See merge request espressif/esp-idf!18872
2022-07-06 10:37:30 +08:00
Omar Chebib a0ca353cda Heap: heap_caps_*_prefer functions now properly call alloc_failed callback
heap_caps_*_prefer functions will now only call heaps_caps_alloc_failed
callback if all attempts to allocation memory fail (and not after each attempt
anymore).

* Closes https://github.com/espressif/esp-idf/issues/9086
2022-07-05 05:57:04 +00:00
Omar Chebib fca7be2ddb Merge branch 'bugfix/fix_disassembler_interpreting_padding' into 'master'
(Xtensa) Build: add .xt.prop to the compiled ELF file

See merge request espressif/esp-idf!17268
2022-07-05 13:48:42 +08:00
Omar Chebib 3c9856bdd1 (Xtensa) Build: add .xt.prop and .xt.lit to the compiled ELF file
Adding prop and lit sections to the ELF will let the debugger and the disassembler
have more info about data bytes present in the middle of the Xtensa
instructions, usually used for padding.
2022-07-05 04:39:29 +00:00
Omar Chebib cfeaa50b53 Merge branch 'bugfix/esp32c2_missing_eh_frame_sections' into 'master'
espsystem: add missing eh_frame sections on esp32c2

See merge request espressif/esp-idf!18629
2022-07-04 17:13:40 +08:00
Omar Chebib 7e42038c86 Merge branch 'refactor/move_regi2c_headers' into 'master'
Refactor: move regi2c_*.h header files from esp_hw_support to soc component

See merge request espressif/esp-idf!18676
2022-07-04 11:32:30 +08:00
Omar Chebib cd48baf979 Refactor: move regi2c_*.h header files from esp_hw_support to soc component
When creating G0 layer, some regi2c_*.h headers were moved out from
esp_hw_support (G1) to soc (G0). In order to be consistent with that change,
move all the remaining regi2c_*.h headers to soc too.
2022-06-30 09:40:44 +00:00
Omar Chebib 3c1b8cd75a ci: add a test for .eh_frame(_hdr) section for RISC-V targets 2022-06-30 02:51:37 +00:00
Omar Chebib fa9856c815 espsystem: add missing eh_frame sections on esp32c2 2022-06-30 02:51:37 +00:00
Omar Chebib 8fae0f0753 G0: Support Xtensa targets for G0-only compilation
G0-only example now supports Xtensa targets. This means that G0 layer
does not depend on G1+ layers anymore
2022-06-20 11:34:20 +00:00
Omar Chebib 741b62d618 Build: Xtensa assembly files are now assembled with -mlongcalls option 2022-06-20 13:56:49 +08:00
Omar Chebib 752026a174 Merge branch 'refactor/remove_g0_dep_on_g1_riscv' into 'master'
G0: RISC-V targets have now an independent G0 layer

See merge request espressif/esp-idf!17926
2022-06-16 11:53:39 +08:00
Omar Chebib 6783f52045 CI: examples generating an ELF file only can now pass CI 2022-06-14 15:00:53 +08:00
Omar Chebib 2fd784c97a G0 RISC-V: Remove "private_include/regi2c_brownout.h" header as it has been moved and simplify "regi2c_ctrl.h" 2022-06-14 15:00:53 +08:00
Omar Chebib 33ac70a3ed G0: add a build example to check G0 dependencies 2022-06-14 15:00:53 +08:00
Omar Chebib 5bcd9b2db8 G0: RISC-V targets have now an independent G0 layer
G0 doesn't depend on any G1+ layer for RISC-V based targets
2022-06-14 15:00:53 +08:00
Omar Chebib 2d84985baa Merge branch 'bugfix/i2c_notify_task_in_ISR' into 'master'
I2C: Fix a bug making the I2C task wait too long on an event

Closes IDFGH-7169

See merge request espressif/esp-idf!18027
2022-05-23 12:29:22 +08:00
Omar Chebib 872a4311f2 I2C: Fix a bug making the I2C task wait too long on an event
The I2C ISR will now notify the task waiting on an event. Thus, the task can stop waiting on the event queue as soon as possible.
2022-05-23 02:02:00 +00:00
Omar Chebib 68ddce7c0b Merge branch 'bugfix/esp32_i2c_incorrect_speed' into 'master'
I2C: Fix SCL period timings on ESP targets

See merge request espressif/esp-idf!17999
2022-05-20 13:33:03 +08:00
Omar Chebib 477bc9e64c I2C: Fix SCL period timings on ESP targets
The output frequency is now more accurate as the SCL period timings have been fixed.
This fix applies for ESP32, ESP32S3, ESP32C3, ESP32C2 and ESP32H2
2022-05-18 05:36:08 +00:00
Omar Chebib 36e7adabac Merge branch 'bugfix/i2c_too_short_panics_master' into 'master'
I2C: Read transactions, without a STOP, won't panic anymore

Closes IDFGH-6928

See merge request espressif/esp-idf!17455
2022-04-27 12:40:57 +08:00