Darian Leung
434287fc8b
freertos: Xtensa FreeRTOS saves threadptr in solicited stack frame
...
The Xtensa FreeRTOS port does not save the threadptr register when
doing a voluntary yield. This can result in a crash when multiple
tasks used the threadptr register and call "taskYIELD()".
This commit adds the threadptr register to the solicited stack frame.
2022-06-15 20:20:41 +08:00
Armando (Dou Yiwen)
0b80546f8e
Merge branch 'feature/new_esp_psram_component' into 'master'
...
esp_psram: new esp psram component
Closes IDF-4318, IDF-4382, IDF-4841, and IDFGH-7192
See merge request espressif/esp-idf!18050
2022-06-15 19:16:56 +08:00
Zim Kalinowski
e55ca17fb6
Merge branch 'feature/enable_freertos_smp_on_c2_and_h2' into 'master'
...
freertos-smp: enable FreeRTOS SMP for all targets
Closes IDF-5233
See merge request espressif/esp-idf!18506
2022-06-15 18:55:11 +08:00
Darian
e213e66ba3
Merge branch 'refactor/esp_hw_support_cpu' into 'master'
...
esp_hw_support: Add new esp_cpu.h abstraction
Closes IDF-4769
See merge request espressif/esp-idf!17091
2022-06-14 21:11:30 +08:00
Sudeep Mohanty
472729a513
freertos-smp: enable FreeRTOS SMP for all targets
...
This commit enables FreeRTOS SMP for esp32s2, esp32s3, esp32c2 and
esp32h2.
2022-06-14 13:53:30 +02:00
Armando
cdad8a02fe
esp_psram: remove g_spiram_ok
2022-06-14 15:44:27 +08:00
Armando
38e5043ae8
esp_psram: new psram component
2022-06-14 15:44:27 +08:00
Darian Leung
a8a3756b38
hal: Route CPU and Interrupt Controller HAL/LL to esp_cpu calls
...
This commit makes changes to cpu_ll.h, cpu_hal.h, and interrupt_controller_hal.h:
- Moved to esp_hw_support in order to be deprecated in the future
- HAL/LL API now route their calls to esp_cpu.h functions instead
Also updated soc_hal.h as follows:
- Removed __SOC_HAL_..._OTHER_CORES() macros as they dependend on cpu_hal.h
- Made soc_hal.h and soc_ll.h interfaces always inline, and removed soc_hal.c.
This commit also updates the XCHAL_ERRATUM_572 workaround by
- Removing it's HAL function and invoking the workaround it directly the bootloader
- Added missing workaround for the ESP32-S3
2022-06-14 14:40:03 +08:00
Mahavir Jain
4e4d0a5011
Merge branch 'bugfix/psram_startup_crash' into 'master'
...
psram: Fix startup crash when `CONFIG_SPIRAM_MALLOC_ALWAYSINTERNAL=0`
Closes IDFGH-6938
See merge request espressif/esp-idf!17543
2022-06-14 14:36:47 +08:00
Sudeep Mohanty
302c548bb0
Merge branch 'feature/freertos_smp_enable_riscv_port' into 'master'
...
freertos-smp: add support for RISC-V targets on FreeRTOS SMP
See merge request espressif/esp-idf!18128
2022-06-14 04:17:54 +08:00
Laukik Hase
914b0de764
freertos: Indicate completed initialization for APP CPU with idle task hook
...
Co-authored-by: Mahavir Jain <mahavir@espressif.com >
2022-06-13 17:17:42 +05:30
Sudeep Mohanty
12e2312aaa
freertos: FreeRTOS SMP RISC-V port cleanup and enable esp32c3 in KConfig
...
This commit does general cleanup of the risc-v port files and restricts
FreeRTOS SMP config option to only esp32 and esp32c3.
2022-06-13 13:39:16 +02:00
Darian Leung
71eef9a9b0
freertos: Fix SMP RISC-V Port IDF Style critical sections
...
Previously the RV port was routing IDF style critical section API to call FreeRTOS style critical section API.
For example, a call to "portENTER_CRITICAL(mux)" would eventually call `vTaskEnterCritical()" via the following call flow:
- portENTER_CRITICAL(mux)
- vPortEnterCritical()
- portSET_INTERRUPT_MASK_FROM_ISR()
- vTaskEnterCritical()
This commit fixes the IDF style critical section by making sure that they are completely orthogonal to FreeRTOS critical sections
2022-06-13 13:34:21 +02:00
Sudeep Mohanty
8fd953c627
freertos-smp: add support for RISC-V targets oon FreeRTOS SMP
...
TBD: Initial commit. Enables risc-v port.
2022-06-13 13:34:21 +02:00
Sudeep Mohanty
9a53a4abf1
freertos: refactor yield tests for freertos
...
This commit refactors the yield test scenarios for a more deterministic
prediction of the kernel's yielding behavior.
2022-06-13 10:57:55 +02:00
Marius Vikhammer
08c4984773
Merge branch 'bugfix/s3_psram_spinlock' into 'master'
...
spinlock: fixed spinlocks not working on S3 if placed in PSRAM
Closes IDF-5169, IDFGH-7560, and IDF-5007
See merge request espressif/esp-idf!18425
2022-06-09 13:02:18 +08:00
Anton Maklakov
763deaea3c
freertos, tests: increase stack size for a test
2022-06-08 16:45:31 +07:00
Marius Vikhammer
486316f222
spinlock: fixed spinlocks not working on S3 if placed in PSRAM
...
The compare and set instruction (S32C1I) cannot be used when
lock is not in internal memory.
Closes https://github.com/espressif/esp-idf/issues/9120
2022-06-08 14:31:16 +08:00
Darian Leung
3c6185788f
freertos: Fix GCC 11 SMP FreeRTOS build errors
...
This commit fixes the following build errors in SMP FreeRTOS when building with GCC 11:
- "-Wattributes" warning due to conflicting attributes on xPortInterruptedFromISRContext()
- "-Wtype-limits" warning due to taskVALID_CORE_ID() not casting xCoreID
2022-06-07 16:33:22 +08:00
Darian Leung
593fbe0b23
freertos: Disable scheduler suspension tests for SMP FreeRTOS
...
The behavior of vTaskSuspendAll() has changed in SMP FreeRTOS. This commit
disables scheduler suspension related unit tests for SMP FreeRTOS.
The tests will be updated in IDF-5201
2022-06-06 12:15:44 +08:00
morris
aa3ddbc3c6
Merge branch 'test/enable_c2_target_tests' into 'master'
...
ci: enable target tests for ESP32-C2
Closes IDF-4989
See merge request espressif/esp-idf!18182
2022-06-03 16:41:24 +08:00
Darian Leung
d8eb55d83b
freertos: Add newlib dynamic reentrancy support
...
SMP FreeRTOS adds support for dynamic reentrancy in the following commit:
https://github.com/FreeRTOS/FreeRTOS-Kernel/commit/34b8e24d7ccdbe25af8ad96dfd3154aeb302a8d6
This commit does the following:
- Pulls in the upstream changes
- Move __getreent() to "freertos_tasks_c_additions.h"
- Add the required configNEWLIB_REENTRANT_IS_DYNAMIC to SMP FreeRTOS port
2022-06-02 15:42:02 +08:00
Michael (XIAO Xufeng)
6a8aed12ee
ci: partially enable ut tests for esp32c2
...
Disabled test cases are tracked in:
IDF-4465, IDF-5045, IDF-5057, IDF-5058, IDF-5059, IDF-5060, IDF-5061, IDF-5131
- test_fatfs: IDF-5136
- test_pm: IDF-5053
- test_cache_mmu: IDF-5138
- test_partitions: IDF-5137
- test_vfs: IDF-5139
- test_freertos: IDF-5140
- test_wpa_supplicant: IDF-5046
- test_mbedtls: IDF-5141
- test_pthread: IDF-5142
- test_protocomm: IDF-5143
- test_lightsleep: IDF-5053
- test_taskwdt: IDF-5055
- test_tcp_transport: IDF-5144
- test_app_update: IDF-5145
- test_timer: IDF-5052
- test_spi: IDF-5146
- test_rtc_clk: IDF-5060
- test_heap: IDF-5167
ci: fixed issues for tests of libgcc, ets_timer, newlib
test_pm: support on C2
2022-06-02 14:23:35 +08:00
Konstantin Kondrashov
b824f68b35
Merge branch 'feature/move_dport_workaround_to_g0' into 'master'
...
dport_access: Move DPORT workaround to G0
Closes IDF-2177
See merge request espressif/esp-idf!17961
2022-06-01 12:11:12 +08:00
KonstantinKondrashov
ac4c7d99fe
dport: Move DPORT workaround to G0
2022-05-31 13:44:18 +08:00
Sudeep Mohanty
7476e197ad
freertos: fix test_preemtion test
...
Increased the yield count threshold to work for both SMP FreeRTOS and
IDF FreeRTOS.
2022-05-30 13:19:26 +05:30
Darian
1ec59e6982
Merge branch 'bugfix/update_eTaskGetState_unit_test' into 'master'
...
FreeRTOS: Refactor eTaskGetState() test for FreeRTOS SMP
Closes IDF-5073
See merge request espressif/esp-idf!18228
2022-05-30 11:44:51 +08:00
Darian Leung
49256fe5c9
freertos: Refactor TLSP deletion callback test
...
- Add a new test case for SMP FreeRTOS
- Old test case is preserved. To be removed in the future
2022-05-28 21:36:39 +08:00
Darian Leung
64469affcd
freertos: Fix TLSP deletion callback log
...
Currently, portCLEAN_UP_TCB() is called in a critical section. This commit updates
vPortTLSPointersDelCb() to use an EARLY log to prevent a crash.
2022-05-28 21:36:39 +08:00
Darian Leung
ef6afa1324
freertos: Refactor eTaskGetState() unit test
...
This commit refactors the eTaskGetState() unit test to work on FreeRTOS SMP
2022-05-28 21:36:23 +08:00
Marius Vikhammer
15684fb5a0
Freertos SMP: fix wrong no affinity value in kconfig
2022-05-24 09:16:43 +08:00
Darian
4afd048abf
Merge branch 'bugfix/freertos_smp_queue_sets_thread_safety' into 'master'
...
FreeRTOS: Fix queue set tests for SMP FreeRTOS
See merge request espressif/esp-idf!18169
2022-05-21 05:02:19 +08:00
Darian Leung
56d45f9999
freertos: Fix queue set tests for SMP FreeRTOS
...
The "Test Queue sets thread safety" tests relied on IDF FreeRTOS specific
scheduling behavior, thus resulting in the test getting stuck when running
with SMP FreeRTOS.
This commit updates and refactors the tests to work on both IDF and SMP FreeRTOS.
2022-05-19 16:28:10 +08:00
Darian Leung
9b5601b7c7
freertos: Fix SMP FreeRTOS interrupt watchdog feeding
...
This commit fixes how SMP FreeRTOS feeds the INT WDT. Previously, the
port used vApplicationTickHook(). Now, all cores will feed the INT WDT
in xPortSysTickHandler().
2022-05-18 20:12:25 +08:00
Darian Leung
7dc6fd9ff6
esp_system: Make interrupt WDT private API
...
This commit makes the interrupt WDT API private. To use the API,
IDF components should now '#include "esp_private/esp_int_wdt.h"'
2022-05-18 20:12:25 +08:00
Darian Leung
5953bca376
esp_system: Add arbitrary user feature to TWDT
...
This commit moidifies the TWDT as follows:
- Adds a feature to allows subscribing arbitrary users to the TWDT
- Changes esp_task_wdt_init() API to accept configuration structure
- Changes esp_task_wdt_init() and esp_task_wdt_deinit() to subscribe/unsubscribe
idle tasks of various cores.
- Adds support for SMP FreeRTOS idle tasks
- Updates startup code TWDT initialization
- Updates API documentation
2022-05-13 18:01:28 +08:00
Sudeep Mohanty
1f47466664
Merge branch 'test/ignore_freertos_yield_tests' into 'master'
...
freertos: ignore freertos yield test failures
See merge request espressif/esp-idf!18078
2022-05-13 11:45:15 +08:00
Darian
8dae294ab6
Merge branch 'refactor/freertos_kconfig_options' into 'master'
...
Freertos: Refactor Kconfig options
See merge request espressif/esp-idf!18043
2022-05-12 21:47:18 +08:00
Sudeep Mohanty
ffae594e8b
freertos: ignore freertos yield test failures
...
This commit updates the freertos yield tests to be ignored by the CI
during failures.
2022-05-12 13:57:02 +05:30
Marius Vikhammer
c8617fe965
docs: fix all doxygen warnings
...
Doxygen warnings would previously not result in a failed pipeline.
Fixed this as well as all current warnings.
2022-05-12 14:50:03 +08:00
Darian Leung
aa028f018f
freertos: Refactor Kconfig options
...
This commit refactors FreeRTOS Kconfig options as follows:
- Grouped them into Kernel and Port submenus
- Renamed Kernel option promppts to match upstream names
- Simplified some option descriptions
- Added "Todo" markers related to SMP support
2022-05-12 11:53:16 +08:00
Mahavir Jain
dec3db6913
Merge branch 'bugfix/freertos_stack_tcb_alloc_order' into 'master'
...
freertos: fix allocation order for stack and TCB per portSTACK_GROWTH
See merge request espressif/esp-idf!18042
2022-05-11 18:09:49 +08:00
Sudeep Mohanty
f6be878b6c
Merge branch 'feature/freertos_smp_single_core_build' into 'master'
...
freertos: Enable FreeRTOS SMP unicore build
See merge request espressif/esp-idf!18020
2022-05-10 19:52:39 +08:00
Mahavir Jain
318f723042
freertos: extend snapshot test to check return status of vTaskGetSnapshot
2022-05-10 14:19:17 +05:30
Mahavir Jain
5b817038a0
freertos: add return value to API vTaskGetSnapshot
...
`vTaskGetSnapshot` is being used in coredump module to collect diagnostic information.
It is possible that input arguments are invalid and `assert` in this situation is not
correct.
This commit modifies API signature to return pdTRUE in case of success, and pdFALSE
otherwise. Caller can verify return value and then take appropriate decision.
2022-05-10 11:39:50 +05:30
Mahavir Jain
588a65759c
freertos: fix allocation order for stack and TCB per portSTACK_GROWTH
...
This is as per FreeRTOS recommendation and allows to protect task TCB
in case task stack has overflowed.
2022-05-09 15:45:38 +05:30
Sudeep Mohanty
aa60118944
freertos: Enable FreeRTOS SMP unicore build
...
This commit enables unicore build with the FreeRTOS SMP kernel.
2022-05-09 09:44:44 +05:30
Sudeep Mohanty
3ea1c8bf96
freertos: add freertos unit test to verify yielding behavior of the kernel
...
This commit adds a unit test to verify the task yielding behavior of the
FreeRTOS SMP kernel.
2022-05-09 03:48:07 +00:00
Sudeep Mohanty
6fba3fc645
Merge branch 'refactor/refactor-freertos-tls-del-cb' into 'master'
...
freertos-smp: refactor thread local storage pointers deletion callbacks
Closes IDF-3330
See merge request espressif/esp-idf!17972
2022-05-09 11:45:27 +08:00
morris
e7295c3577
gptimer: added enable/disable functions
2022-05-06 18:18:39 +08:00