Commit Graph
100 Commits
Author SHA1 Message Date
Darian Leung cbb43bb4c4 refactor(freertos/idf): Add critical section requirements to function description
This commit adds a note regarding the critical section calling requires of some
internal functions.
2024-05-17 22:43:35 +08:00
Darian Leung 0dc29caf4a fix(freertos/idf): Add missing critical sections to vTaskSuspendAll()
vTaskSuspendAll() requires critical sections when building for SMP. Otherwise,
it is possible for a task to switch cores in between getting the core ID and
before incremented uxSchedulerSuspended.
2024-05-17 22:43:34 +08:00
Darian Leung 027193ca07 fix(freertos): Fix vTaskList() parameter print order
xCoreID was previously printed as the last parameter priority to IDF v5.1, but
was changed to the third paramtere from v5.2 onwards. This commit restores the
correct ordering.

Closes https://github.com/espressif/esp-idf/issues/13675
2024-05-06 16:05:31 +08:00
Darian c8c3d4b28a Merge branch 'refactor/usb_new_phy_hal_api' into 'master'
refactor(hal/usb): Update USB WRAP/USJ P4 LL, add new USB PHY HAL API

See merge request espressif/esp-idf!29853
2024-04-04 14:09:03 +08:00
Darian Leung 778c2e6863 refactor(hal/usb): Add new USB PHY related HAL API
This commit adds/updates the USB PHY related HAL APIs. The following changes
are made:

- Updated 'usb_wrap_hal.h' API
- Added 'usb_serial_jtag_hal.h' API
2024-04-04 02:47:00 +08:00
Darian Leung 023eae4f0b feat(hal/usb): Update USB WRAP and USJ LL, add missing ESP32-P4 LL
This commit updates updates the LLs of USB WRAP and USJ as follows:

- Added missing 'usb_wrap_ll.h' and 'usb_serial_jtag_ll.h' for the ESP32-P4
- Added LL cap macros to distinguish feature differences between the LLs of
  different targets:
    - '..._LL_EXT_PHY_SUPPORTED' indicates whether the USB WRAP/USJ supports
      routing to an external FSLS PHY.
    - '..._LL_SWAP_PHY_SUPPORTED' indicates whether the USB WRAP/USJ supports
      swapping between multiple internal FSLS PHYs.
- Tidied up some RCC LL functions and their callers.
- Added 'usb_wrap_types.h' and 'usb_serial_jtag_types.h' to provide types used
  in LLs.
- Fixed some spelling/naming issues as part of code-spell pre-commit
2024-04-04 02:47:00 +08:00
Darian Leung 84ba2ef2e8 feat(soc/usb): Add USB UTMI PHY struct and LL for the ESP32-P4 2024-04-04 01:47:35 +08:00
Darian f66a23a8fb Merge branch 'refactor/usb_host_usbh_hub_interaction' into 'master'
refactor(usb/host): Refactor USBH interaction with Hub

See merge request espressif/esp-idf!29783
2024-03-29 21:16:14 +08:00
Darian Leung 64f5d7d983 refactor(usb/host): Simplify USBH and Hub interaction
Previously, on a device disconnection, the USBH and Hub would the require the
following 2-way interaction:

- Hub -> usbh_hub_pass_event() -> USBH to indicate a port error
- USBH -> usbh_hub_req_cb_t -> Hub to request port recovery after the device
has been freed.

The 2-way interaction has been simplified:

- USBH now nofities upper layers of devices being freed via the
USBH_EVENT_DEV_FREE event
- Hub now handles port recovery only after a device has been freed
2024-03-22 18:14:50 +08:00
Darian 53e3833f44 Merge branch 'refactor/usb_fsls_phy_hal' into 'master'
refactor(hal/usb): Update USB PHY related HAL/LL API

See merge request espressif/esp-idf!29659
2024-03-20 06:07:29 +08:00
Darian Leung 6d40e191f8 refactor(hal/usb): Refactor usb_wrap_ll.h
This commit rewrite the 'usb_wrap_ll.h' API as follows:

- All APIs renamed from 'usb_fsls_phy_ll_...()' to 'usb_wrap_ll_...()'
- APIs now match their equivalent counter parts in 'usb_serial_jtag_ll.h'
2024-03-18 19:23:44 +08:00
Darian Leung a77e5cc718 refactor(hal/usb): Remove usb_fsls_phy_ll.h
For targets that only contain a USJ peripheral (and not a DWC OTG), their
'usb_fsls_phy_ll.h' headers only contain a single function
('usb_fsls_phy_ll_int_jtag_enable()') whose feature is already covered by
functions in 'usb_serial_jtag_ll.h'. Thus, this header is redundant.

This commit does the following:

- Remove 'usb_fsls_phy_ll.h' for targets that only contain a USJ peripheral
- Rename 'usb_fsls_phy_[hal|ll].[h|c]' to `usb_wrap_[hal|ll].[h|c]` for targets
that contain a DWC OTG peripheral. This better reflects the underlying peripheral
that the LL header accesses.
2024-03-18 19:23:43 +08:00
Darian Leung 5d091a9bb3 refactor(hal/usj): Add USB PHY related functions to USJ LL 2024-03-18 19:23:42 +08:00
Darian eeb71ca1af Merge branch 'feature/freertos_enable_app_task_tag' into 'master'
feat(freertos): Add application task tag support

Closes IDF-6410

See merge request espressif/esp-idf!29514
2024-03-12 22:36:20 +08:00
Darian Leung 1332f2934a feat(freertos): Add application task tag support
This commit enables support for application task tag.

- Added CONFIG_FREERTOS_USE_APPLICATION_TASK_TAG option
- Added basic unit test
2024-03-09 00:57:37 +08:00
Darian dc86c17b38 Merge branch 'feature/freertos_smp_update_to_v11' into 'master'
FreerTOS: Update Amazon SMP FreeRTOS files to V11.0.1

See merge request espressif/esp-idf!28352
2024-03-07 15:03:21 +08:00
Darian 64c1ed24af Merge branch 'refactor/usbh_event_callback_api' into 'master'
refactor(usb): Update USBH event callback arguments

See merge request espressif/esp-idf!29199
2024-03-07 02:55:48 +08:00
Darian Leung 411e5481e7 refactor(usb): Remove USBH control transfer callback
This commit merges the USBH control transfer callback into the USBH event
callback. This simplifies the code as the USBH now uses a single callback.
2024-03-06 23:09:17 +08:00
Darian Leung ec2f08ace6 refactor(usb): Update USBH event callback arguments
This commit does the following:

- Updates the USBH event callback arguments to now pass a usbh_event_data_t
which can contain different data for each event
- Updated event names
2024-03-06 23:09:16 +08:00
Darian b7428bcf7d Merge branch 'bugfix/freertos_tick_hook_build_issue' into 'master'
fix(freertos/idf): Fix build error when CONFIG_FREERTOS_USE_TICK_HOOK is enabled

Closes IDFGH-12247

See merge request espressif/esp-idf!29380
2024-03-05 19:26:58 +08:00
Darian Leung 48a7f053d5 feat(freertos/smp): Update other IDF components to be compatible with FreeRTOS v11.0.1 2024-03-05 15:44:12 +08:00
Darian Leung 83c686c744 feat(freertos/smp): Update ports to support Amazon FreeRTOS v11.0.1
- vTaskPreemptionDisable()/vTaskPreemptionEnable() are no longer available in
single-core builds.
- xTaskIncrementTick() calls must now be wrapped by critical section
- Minimal Idle Task renamed to Passive Idle Task
- Port critical section APIs updated
2024-03-05 15:44:12 +08:00
Darian Leung 888678d102 feat(freertos/smp): Add ESP-IDF specific modifications
- Add ESP-IDF specific modifications to FreeRTOS-Kernel-SMP source code
- Update IDF addition source files to support V11 kernel
2024-03-05 15:44:12 +08:00
Darian Leung 421dab29fa feat(freertos/smp): Update SMP FreeRTOS files to V11.0.1
This commit updates the source files of Amazon SMP FreeRTOS to upstream
V11.0.1 (https://github.com/FreeRTOS/FreeRTOS-Kernel/tree/V11.0.1).

This version contains SMP support.
2024-03-05 15:44:11 +08:00
Darian Leung f9965e3092 change(freertos): Test tick and idle hooks in options test
Add CONFIG_FREERTOS_USE_TICK_HOOK and CONFIG_FREERTOS_USE_IDLE_HOOK to
sdkconfig.ci.freertos_options to ensure those options are tested.
2024-03-04 22:34:13 +08:00
Darian Leung dec3786d30 fix(freertos/idf): Fix build error when CONFIG_FREERTOS_USE_TICK_HOOK is enabled
Closes https://github.com/espressif/esp-idf/issues/13297
2024-03-04 22:34:12 +08:00
Darian 6f3ebe5a68 Merge branch 'change/twai_examples_message_obj_init' into 'master'
change(driver/twai): Update TWAI message object initialization examples

Closes DOC-7309

See merge request espressif/esp-idf!29278
2024-03-01 13:43:37 +08:00
Darian 6817e9f07c Merge branch 'fix/console_none_build_issues' into 'master'
fix(console): Fix build issues when CONFIG_ESP_CONSOLE_NONE is enabled

Closes IDFGH-11900

See merge request espressif/esp-idf!29295
2024-02-29 12:17:21 +08:00
Darian Leung 87e2d842ab change(console): Add build test for no console output
This commit adds a build test to test the scenario where both the primary and
secondary console outputs are disabled by Kconfig.
2024-02-28 20:39:52 +08:00
Darian Leung 4e4278477d fix(console): Fix build issues when CONFIG_ESP_CONSOLE_NONE is enabled
This commit fixes the following build issues when CONFIG_ESP_CONSOLE_NONE is
enabled:

- vfs_console.c will attempt to register a VFS entry for STDIO console even if
CONFIG_ESP_CONSOLE_NONE is enabled. This results in "undeclared `primary_path`"
error.
- esp_console_repl_chpi.c does not use "TAG" when CONFIG_ESP_CONSOLE_NONE is
enabled, leading to a "defined by not used" warning.

Closes https://github.com/espressif/esp-idf/issues/12984
2024-02-28 20:28:27 +08:00
Darian f5b08b29ea Merge branch 'bugfix/usb_host_usbh_callback_misses_action' into 'master'
fix(usb): Fix bug where usbh_process() misses an event

See merge request espressif/esp-idf!29233
2024-02-28 20:16:25 +08:00
Darian Leung 3887441b37 fix(usb): Fix bug where usbh_process() misses an event
This commit fixes a bug where if multiple concurrent USBH API calls trigger
multiple events on the same device, some events will be lost. As a result,
those lost events don't get processed by the subsequent usbh_process() call.
2024-02-27 18:22:48 +08:00
Darian Leung b18a787469 change(driver/twai): Update TWAI message object initialization examples
This commit updates how examples and code snippets initialize the
twai_message_t for transmission. Examples/snippets now explicitly demonstrate
how to initialize every member/bit-field of the object.
2024-02-27 11:52:51 +08:00
Darian a114237378 Merge branch 'refactor/core_component_headers_copyright_ignore' into 'master'
Tools/Core: Tidy up core-team releated copyright ignore list entries

See merge request espressif/esp-idf!28514
2024-01-23 11:39:59 +08:00
Darian Leung 8f15dd1ce0 fix(esp_ble_mesh): Remove separate AliGenie example build rules
The AliGenie example can run on all targets that support esp_ble_mesh (i.e.,
SOC_BLE_MESH_SUPPORTED). Thus, the example does not require a separate build
rule.
2024-01-22 19:57:54 +08:00
Darian Leung f50d83413e refactor(tools): Tidy up core component files copyright ignore
Some files that should have their copyrights checked are still placed on the
copyright ignore list.

- These entries have been tidied up
- Copyrights of those files have been updated.
2024-01-22 18:07:35 +08:00
Darian Leung 06952431a0 refactor(esp_system): Remove intr.c from the esp_system component
This file is empty and not used anywhere, thus can be removed.
2024-01-22 18:01:25 +08:00
Darian c1cc22d245 Merge branch 'refactor/usb_remove_unused_files' into 'master'
USB: Remove unused HAL files and deprecate usb_periph

See merge request espressif/esp-idf!28293
2024-01-18 17:01:06 +08:00
Darian Leung 19c18845b0 refactor(soc): Remove soc/usb_types.h
This header has been removed for the following reasons:

- Header is misplaced. 'xxx_types.h' headers should be placed in the 'hal'
component.
- The 'usb_xxx_endpoint_t' should be placed in the 'xxx_struct.h' header.
2024-01-17 21:28:25 +08:00
Darian Leung 6a43b623dc refactor(soc): Rename usb_otg_periph to usb_dwc_periph
- Renamed usb_otg_periph.h/c to usb_dwc_periph.h/c to match naming convention
of other DWC OTG related files
- Added compatibility header for usb_otg_periph.h
2024-01-17 21:28:25 +08:00
Darian Leung 01a4a1d7f0 refactor(soc): Deprecate usb pin mappings
usb_pins.h and usb_periph.h/c lists mappings of USB DWC signals to GPIOs used
to connect to external FSLS PHYs. However, those signals can be routed to any
GPIOs via the GPIO matrix. Thus, these mapping are meaningless and have been
deprecated.
2024-01-17 21:28:25 +08:00
Darian Leung e63bfb24f5 refactor(hal): Remove usb_hal and usb_ll
This commit removes some legacy USB related HAL and LL files that are no longer
used.
2024-01-17 21:28:25 +08:00
Darian 0c3fdc4b3e Merge branch 'feature/usb_dwc_add_p4_soc_hal' into 'master'
USB Host: Add USB Host struct, config, and linker entries for P4 (1)

See merge request espressif/esp-idf!27931
2024-01-03 00:38:35 +08:00
Darian 64b3f0e337 Merge branch 'feature/freertos_idf_smp_changes_doc' into 'master'
Docs: Update IDF FreeRTOS 10.5.1 docs and add migration notes

Closes IDF-8532

See merge request espressif/esp-idf!27591
2024-01-03 00:35:55 +08:00
Darian Leung 80157e5c5d docs(freertos/idf): Add IDF FreeRTOS upgarde migration notes for v5.2 2024-01-02 22:30:42 +08:00
Darian Leung 31b195d150 docs(freertos/idf): Update IDF FreeRTOS documentation
This commit updates the IDF FreeRTOS documentation as follows:

- Update terminology ("CPU" to "Core", "ESP-IDF FreeRTOS" to "IDF FreeRTOS")
- Fixed some inconsistent formatting
- Rearranged some sub sections
- Updated section regarding single-core mode to be coherent with v10.5.1 update.
2024-01-02 22:30:42 +08:00
Darian bc503f987f Merge branch 'refactor/usb_host_build_dependency_options' into 'master'
USB Host: Remove CONFIG_USB_OTG_SUPPORTED, build dependencies use SOC_USB_OTG_SUPPORTED instead

See merge request espressif/esp-idf!28097
2024-01-02 17:03:29 +08:00
Darian Leung 2bb30e6493 refactor(usb): Deprecate CONFIG_USB_OTG_SUPPORTED, use SOC_USB_OTG_SUPPORTED instead
Previously, USB build dependencies used the CONFIG_USB_OTG_SUPPORTED. However,
they could depend on `soc_caps.h` instead.
2024-01-01 21:37:34 +08:00
Darian Leung f671a6fbda feat(usb): Add USB peripheral addresses for P4 2024-01-01 21:34:02 +08:00
Darian 1da17fce18 Merge branch 'refactor/rename_hal_usb_phy_to_fsls' into 'master'
USB HAL: Change name of usb_phy HAL files to usb_fsls_phy

See merge request espressif/esp-idf!28158
2023-12-29 11:42:11 +08:00
Darian Leung d74b4f6730 refactor(hal/usb): Rename usb_fsls_phy API to match header/source names
Note: Also fixed some formatting issues in usb_wrap_struct.h
2023-12-28 11:48:54 +08:00
Darian Leung b26472af29 refactor(hal/usb): Rename usb_phy files to usb_fsls_phy
This commit renames USB PHY related HAL files from "usb_phy_xxx" to
"usb_fsls_phy_xxx" since they are only designed to support Full-Speed/Low-Speed
Serial USB PHYs. This renmaing is done to accommodate future USB PHYs that use
other PHY interfaces (e.g., UTMI, ULPI etc).
2023-12-28 11:48:34 +08:00
Darian 244bffbc49 Merge branch 'refactor/usb_hal_ll_uses_ip_config' into 'master'
USB Host: Remove usage of old USB OTG IP config macros

See merge request espressif/esp-idf!28066
2023-12-22 19:22:53 +08:00
Darian Leung 2ec0ee944d refactor(hal/usb): Remove usage of old USB OTG config macros 2023-12-21 21:52:46 +08:00
Darian 459422f75f Merge branch 'refactor/usb_dwc_soc_and_hal' into 'master'
USB Host: Fix and Refactor struct headers

See merge request espressif/esp-idf!27850
2023-12-18 18:12:40 +08:00
Darian Leung d00aaf8648 refactor(soc/host): Update USB OTG struct fields
This commit updates the "*_struct.h" files for the USB OTG peripheral:

- Added/removed some missing/non-existing register fields
- Added "reserved" place holders for registers that are missing due to IP
configuration.
- Added "usb_dwc_cfg.h" listing the USB OTG IP configuration for each target.
- Updated LL/HAL according to register field updates. Also tidied up the include
directives in those headers.
2023-12-17 00:36:10 +08:00
Darian Leung 14d81fda18 refactor(hal/usb): Fix USB OTG compilation dependency
Update "hal/CMakeLists.txt" so that USB OTG related HAL files depend on
the "SOC_USB_OTG_SUPPORTED" capability.
2023-12-17 00:36:10 +08:00
Darian dbb687b9e9 Merge branch 'refactor/usb_enable_formatting' into 'master'
USB Host: Enable pre-commit astyle formatting

See merge request espressif/esp-idf!27917
2023-12-15 16:24:21 +08:00
Darian Leung d7b83bfd3b refactor(usb/host): reformat code with astyle_py 2023-12-15 04:44:02 +08:00
Darian 142218c2eb Merge branch 'contrib/github_pr_11575' into 'master'
feat(system): add esp_backtrace_print_all_tasks function (GitHub PR)

Closes IDFGH-10315 and IDFGH-10538

See merge request espressif/esp-idf!24974
2023-12-13 01:07:04 +08:00
Darian 0960080991 Merge branch 'docs/xtensa_header_deprecation_migration_guide' into 'master'
change(xtensa): Add migration guide for depreacted include paths

See merge request espressif/esp-idf!27685
2023-12-06 10:56:38 +08:00
Darian Leung 83e18bd3bd change(xtensa): Add migration guide for depreacted include paths 2023-12-05 19:02:09 +08:00
Darian 105f6dd22c Merge branch 'refactor/soc_caps_multiple_cores' into 'master'
change(docs): Update multicore tags to SOC_CPU_HAS_MULTIPLE_CORES

See merge request espressif/esp-idf!27523
2023-12-05 18:20:21 +08:00
Darian e3191df37a Merge branch 'change/deprecate_legacy_xtensa_include_path' into 'master'
change(xtensa): Deprecate legacy include paths

Closes IDF-7230

See merge request espressif/esp-idf!26725
2023-12-05 15:05:29 +08:00
Darian Leung 024eb7218d change(docs): Update multicore tags to SOC_HP_CPU_HAS_MULTIPLE_CORES
Previously, documentation sections that were only meant for multicore ESP
targets would use tags that depend on CONFIG_FREERTOS_UNICORE or
CONFIG_ESP_SYSTEM_SINGLE_CORE_MODE. This is not ideal as project configuration
can be changed by the user.

This commit updates those tags to use SOC_HP_CPU_HAS_MULTIPLE_CORES which is
always defined in multicore targets regardless of project configuration.
2023-12-05 10:56:48 +08:00
Darian Leung 5697f260fe change(soc): Add SOC_HP_CPU_HAS_MULTIPLE_CORES
This commit adds a the SOC_HP_CPU_HAS_MULTIPLE_CORES convenience macro to
soc_caps.h. This is a convenience boolean cap to represent whether or not the
target has multiple cores, and is intended to be used when writing docs for
multiple targets.
2023-12-05 10:56:22 +08:00
Darian c4819658a2 Merge branch 'change/freertos_remove_xcoreid_for_single_core' into 'master'
change(freertos/idf): Remove xCoreID from TCB in single-core builds

Closes IDF-7894

See merge request espressif/esp-idf!27207
2023-12-04 12:54:54 +08:00
Darian Leung 33b7e40223 fix(freertos/idf): Fix invalid xCoreID arguments in single-core
IDF FreeRTOS v10.5.1 no longer accepts out of range xCoreID arguments in
"PinnedToCore" task creation functions when building for single-core. This
commit fixes those violations through ESP-IDF.
2023-12-02 15:46:07 +08:00
Darian Leung 439c7c4261 change(freertos/idf): Remove xCoreID TCB member for single-core
This commit does the following:

- removes the xCoreID member from the TCB when building for single-core
- xCoreID is no longer hard set to 0 when calling "PinnedToCore" task creation
functions in single-core
- Tidy up or add missing xCoreID asserts for functions that take xCoreID as an
argument:
    - Functions that set/query a variable of a particular core will call
      taskVALID_CORE_ID() to ensure ) 0 <= xCoreID < configNUMBER_OF_CORES
    - Task creation functions that accept xCoreID also call taskVALID_CORE_ID()
      but also allow tskNO_AFFINITY.
- Fix TaskStatus_t
    - Remove xCoreID from TaskStatus_t if configTASKLIST_INCLUDE_COREID is not
      defined.
    - Set xCoreID to 0 when calling vTaskGetInfo() in single-core builds
2023-12-02 15:46:07 +08:00
Darian Leung ae2bd61054 refactor(freertos/idf): Refactor yield and affinity macros
This commit refactors the following macros so that calling them no longer
requires referencing pxTCB->xCoreID.

- taskIS_YIELD_REQUIRED()
- taskIS_YIELD_REQUIRED_USING_PRIORITY()
- taskIS_AFFINITY_COMPATIBLE()
2023-12-02 15:46:07 +08:00
Darian cc34c4fc08 Merge branch 'contrib/github_pr_12481' into 'master'
Many places in the ESP_SYSTEM are using CONFIG_FREERTOS_UNICORE instead of CONFIG_ESP_SYSTEM_SINGLE_CORE_MODE (GitHub PR)

Closes IDFGH-11333

See merge request espressif/esp-idf!27435
2023-12-01 19:33:19 +08:00
Darian Leung 8c2949a97e change(xtensa): Deprecate ".../xtensa_timer.h" include path
This commit deprecates the "freertos/xtensa_timer.h" and "xtensa/xtensa_timer.h"
include paths. Users should use "xtensa_timer.h" instead.

- Replace legacy include paths
- Removed some unnecessary includes of "xtensa_timer.h"
- Add warning to compatibility header
2023-11-30 21:58:52 +08:00
Darian Leung a5d5ee7445 change(xtensa): Deprecate ".../xtensa_context.h" include path
This commit deprecates the "freertos/xtensa_context.h" and "xtensa/xtensa_context.h"
include paths. Users should use "xtensa_context.h" instead.

- Replace legacy include paths
- Removed some unnecessary includes of "xtensa_api.h"
- Add warning to compatibility header
2023-11-30 21:58:52 +08:00
Darian Leung 2204c8e137 change(xtensa): Deprecate ".../xtensa_api.h" include path
This commit deprecates the "freertos/xtensa_api.h" and "xtensa/xtensa_api.h"
include paths. Users should use "xtensa_api.h" instead.

- Replace legacy include paths
- Removed some unnecessary includes of "xtensa_api.h"
- Replaced some calls with "esp_cpu_..." equivalents
- Add warning to compatibility header
2023-11-30 21:58:52 +08:00
Darian e334cda304 Merge branch 'change/usb_host_minor_optimizations' into 'master'
change(usb/host): Remove unecessary features

See merge request espressif/esp-idf!27308
2023-11-27 11:31:14 +08:00
Darian Leung 095b541125 change(usb/host): Remove some handler function event flags
This commit removes internal event flags in the USB Host Library event handling
functions (i.e., usb_host_lib_handle_events() and usb_host_client_handle_events()).

Previously, these flags were added to reduce the number of times semaphores
were given. However, these flags were removed as the performance gain is
negligible and made the logic more complicated.

For usb_host_client_handle_events(), the following flags were removed:

- Remove 'events_pending' flag. The semaphore is now always given
- Remove 'blocked' flag. The 'handling_events' flag is already sufficient
- Critical sections are now shortened due to simplication of semaphore usage.

For usb_host_lib_handle_events(), the following flags were removed:

- Remove 'process_pending' flag. The semaphore is now always given
- Renamed 'blocked' flag to 'handling_events'
2023-11-24 22:08:57 +08:00
Darian Leung 16c37f9db1 change(usb/host): Remove data buffer headers from URBs
This commit removes the ability to reserve a header in the data buffer of an
allocated URB. The header was required for a now defunct implementation of a
synchronous USB Host library API. Thus, headers are no longer required in
URB data buffers.
2023-11-24 20:57:03 +08:00
Darian fb8ff0e9fe Merge branch 'feature/freertos_add_valid_core_id_macro' into 'master'
feat(freertos/idf): Add taskVALID_CORE_ID() macro

See merge request espressif/esp-idf!27014
2023-11-15 20:51:55 +08:00
Darian ce6519672f Merge branch 'feature/usb_dwc_otg_caps' into 'master'
change(usb): Add soc caps for DWC_OTG options

See merge request espressif/esp-idf!26961
2023-11-15 17:48:49 +08:00
Darian Leung c12da6b77d feat(freertos/idf): Add taskVALID_CORE_ID() macro
This commit adds a taskVALID_CORE_ID() macro, similar to the one offered in
Amazon SMP FreeRTOS.

- Various functions have been updated to use that macro
- Removed some unecessary static asserts of CONFIG_FREERTOS_NO_AFFINITY and
added casting.
- Uncrustify changes
2023-11-15 11:53:26 +08:00
Darian Leung c0de14d0b9 refactor(hal/usb_dwc): Add DWC OTG configuration values
This commit adds a subset of the DWC OTG configuration values to the
'usb_dwc_ll.h' file. Only relevant configuration values have been added.

Some DWC OTG releated constants have also been moved from 'usb_dwc_hal.h'
to 'usb_dwc_ll.h' and renamed.
2023-11-14 20:49:51 +08:00
Darian Leung a51813d9d9 refactor(soc): SOC_USB_PERIPH_NUM option
This commit refactors SOC_USB_PERIPH_NUM as follows:

- Renamed to SOC_USB_OTG_PERIPH_NUM to avoid confusion with USB Serial JTAG
- Updated to unsigned integer "1U"
- Updated some build rules to depend on SOC_USB_OTG_SUPPORTED instead
2023-11-14 18:48:01 +08:00
Darian 159beab9d9 Merge branch 'contrib/github_pr_12551' into 'master'
Minor fix style-guide.rst (GitHub PR)

Closes IDFGH-11413

See merge request espressif/esp-idf!27113
2023-11-14 16:24:51 +08:00
Darian c4eea80c07 Merge branch 'change/freertos_local_crit_section_macro' into 'master'
change(freertos/idf): Refactor thread safety convenience macros

Closes IDF-8161

See merge request espressif/esp-idf!26805
2023-11-08 10:29:22 +08:00
Darian 455cc345f7 Merge branch 'contrib/github_pr_12523' into 'master'
fix: assert failed in example uart_async_rxtxtasks (GitHub PR)

Closes IDFGH-11380

See merge request espressif/esp-idf!26935
2023-11-06 15:24:17 +08:00
Darian Leung 52a929521d refactor(freertos/idf): Update thread safety convenience macros
This commit refactors some of the thread safety convenience macros by removing
some repeated definitions and keeping them all in "freertos_idf_additions_priv.h"
2023-11-03 15:41:46 +08:00
Darian Leung e2c8185f72 fix(freertos/idf): Fix xEventGroupGetBitsFromISR() critical section
Adds missing critical section to xEventGroupGetBitsFromISR() that is required
in dual-core SMP.
2023-11-03 15:41:39 +08:00
Darian 7baebd4ae3 Merge branch 'feature/add_run_time_counter_type_option' into 'master'
feat(freertos/idf): Add configRUN_TIME_COUNTER_TYPE option

Closes IDFGH-10757

See merge request espressif/esp-idf!26704
2023-11-01 17:07:11 +08:00
Darian Leung b878125bae change(freertos): Update real_time_stats example to use configRUN_TIME_COUNTER_TYPE
This commit updates the real_time_stats example to use the configurable
configRUN_TIME_COUNTER_TYPE. The CONFIG_FREERTOS_RUN_TIME_COUNTER_TYPE_U64 is
enabled by the example by default to demonstrate its usage.

Note: Also cleaned up redundant configs in sdkconfig.ci
2023-10-31 15:44:37 +08:00
Darian Leung b301f175c9 feat(freertos/idf): Add configRUN_TIME_COUNTER_TYPE option
This commit adds a Kconfig option for configRUN_TIME_COUNTER_TYPE

Closes https://github.com/espressif/esp-idf/issues/11973
2023-10-31 14:55:12 +08:00
Darian Leung 94b46599c3 change(freertos/idf): Update FreeRTOS documentation build
This commit does the following:

- Update doxygen comments in FreeRTOS headers to remove unsupported doxygen
labels and internal functions
- Fixed existing doxygen warnings in FreeRTOS headers
2023-10-21 04:39:17 +08:00
Darian Leung fdfdfc6d9e change(freertos/idf): Temporarily disable "Test suspend-resume CPU works with xTimer'"
The test is flakey with the v10.5.1 kernel.
2023-10-21 04:39:16 +08:00
Darian Leung 0d846ffe26 fix(freertos/idf): Add missing vPortSetStackWatchpoint() call
This commit restores a missing call to vPortSetStackWatchpoint() in the
V10.5.1 kernel.
2023-10-21 04:39:16 +08:00
Darian Leung 6c6a6ad44a fix(freertos/idf): Add workaround for same priority preemption in xTaskIncrementTick()
This commit temporarily disables a bugfixed introduced by FreeRTOS v10.5.1 that
ensures timed out tasks will only preempt if their priority is higher than the
currently running task.

This bugfix has been temporarily reversed due to some compatibility issues with
some IDF tests.
2023-10-21 04:39:16 +08:00
Darian Leung 4d14717e77 fix(freertos/idf): Add work around vTaskResumeAll() compiler optimization
This commit adds a workaround for a compiler optimization issue in FreeRTOS
v10.5.1 in xTaskResumeAll() where pxTCB is only read once, even if in a loop.

A follow up ticket has been added to properly resolve this issue.
2023-10-21 04:39:16 +08:00
Darian Leung 0c15815c2b fix(freertos/idf): vTaskStepTick assertions in SMP
Fixes vTaskStepTick() assertions in SMP, where SMP uses critical sections
instead of scheduler suspension when handling tickless idling.
2023-10-21 04:39:16 +08:00
Darian Leung ec1ba78b7c fix(freertos/idf): Fix utility function performance
This commit optimizes the following utility functions to achieve higher
overall system performance:

xTaskGetCurrentTaskHandle():
- Made into stand alone function instead of wrapper call to "ForCore" variant
- Replaced critical sections with disabling interrupts. Lack of lock contention
improves performance.

xTaskGetCurrentTaskHandleForCore():
- Removed unecessary critical sections

xTaskGetSchedulerState():
- Replaced critical sections with disabling interrupts. Lack of lock contention
improves performance.
2023-10-21 04:39:16 +08:00
Darian Leung b13b9c1163 fix(freertos/idf/linux): Fix configMAX_PRIORITIES for linux port
Previously the linux port of FreeRTOS set configMAX_PRIORITIES to 7. However,
multiple linux POSIX simulator examples will call API that create tasks with
priortiies >= 7.

This commit fixes the configMAX_PRIORITIES and unifies all ports to have 25
priorities.
2023-10-21 04:39:16 +08:00
Darian Leung a23ba22fb7 fix(freertos/cmock): Fix FreeRTOS CMock builds for v10.5.1 kernel
This commit fixes the FreeRTOS CMock component in the following ways:

- Updated include directories to work with vanilla FreeRTOS v10.5.1
`#include "portmacro.h"` style inclusion.
2023-10-21 04:39:16 +08:00
Darian Leung 13f3a226bb change(examples): Update example configurations for FreeRTOS v10.5.1
This commit updates the sdkconfig for some examples when building with the
v10.5.1 kernel. The updates fixes the following:

Place FreeRTOS functions into flash

- Some examples use nearly 100% of available IRAM, thus any small increase in
IRAM in other components (e.g., FreeRTOS) will lead to a build error. As a
result, 'CONFIG_FREERTOS_PLACE_FUNCTIONS_INTO_FLASH' has been enabled in those
examples to save some IRAM.
- Some examples consume too much flash memory, leading to the 'factory'
parition overflowing. IN those examples,
'CONFIG_PARTITION_TABLE_SINGLE_APP_LARGE' has been enabled to use a larger
'factory' partition.
2023-10-21 04:39:16 +08:00