Xtensa Port v3.13 Updates - #31
Merged
Merged
Conversation
- Update NX init logic to check whether a software interrupt is already registered before provisioning it for the scheduler. - Add new xt_get_interrupt_handler() API to enable above fix. - Fix exception dispatch assembly code to correctly provide the exception stack frame to imprecise exception handlers (NX only). - Confirm functionality on windowed/call0 configs with and without FreeRTOS MPU support. Signed-off-by: Ian Thompson <ianst@cadence.com>
- Merge pull request #2 from IPG-TIP-Xtensa/dev-xtensa-smp - Cadence/Xtensa: Add an assertion for SMP init ordering. - Cadence/Xtensa: Require RJ.5 tools - Cadence/Xtensa: SMP fixes to enable multicore Palladium - Cadence/Xtensa: Update coproc handling for SMP - Cadence/Xtensa: Limit outstanding CacheOps coming from L2 - Cadence/Xtensa: Update release notes for 3.10 release - Remove DRAM requirement - Call main() only for core 0 - Replicate/consolidate per-core intr/coproc data - Separate initial stacks per-core - Additional fixes and clean-up - Update release notes for 3.11 release - FreeRTOS/SMP: CP save bug-fix Signed-off-by: Ian Thompson <ianst@cadence.com>
- Extra space required for main() to call printf() without overflowing when argv[0] has a long path Signed-off-by: Ian Thompson <ianst@cadence.com>
- Enables xt_smp example to more accurately profile time taken in single vs. multicore test. Signed-off-by: Ian Thompson <ianst@cadence.com>
- Add per-core xclib reentrancy struct instances - Redefine reentrant pointer to __getreent() function via defining __DYNAMIC_REENT__ in xclib - Improve build infra to properly support overriding CFLAGS in nightly tests - Bump port rev to 3.12 Signed-off-by: Ian Thompson <ianst@cadence.com>
- Clear coproc owner thread when saving callee-saved state - Fix coproc init/release functions - Update readme and release notes Signed-off-by: Ian Thompson <ianst@cadence.com>
- Removes dependency on XTOS locks - Clarify v3.12 release notes Signed-off-by: Ian Thompson <ianst@cadence.com>
- xclib is required for 3.12 Signed-off-by: Ian Thompson <ianst@cadence.com>
- Resolve a couple of errors in <xtensa/xtsubsystem.h> when compiled with RJ.5 Xtensa toolchain and C++17. - Will no longer be necessary with RJ.6. Signed-off-by: Ian Thompson <ianst@cadence.com>
- LCOUNT needs to be cleared during solicited context switch, ISR entry - Prevents incorrect zero-overhead execution - Extra conditional logic required for overlay save/restore Signed-off-by: Ian Thompson <ianst@cadence.com>
Notes for Version 3.13 ---------------------- - FreeRTOS SMP support for newlib (experimental). - FreeRTOS SMP context switching performance improvements. - FreeRTOS SMP config option "XT_USE_L2RAM" moves data into L2RAM for context switching performance improvements. Disabled by default. - FreeRTOS SMP config option "XT_USE_DATARAM" moves per-core data into dataram for performance improvements. Disabled by default. - Based on FreeRTOS-Kernel V11.2.0 release in 3/2025. - Numerous fixes and improvements. Signed-off-by: Ian Thompson <ianst@cadence.com>
- Subsystem patch only required for RJ.5 tool-chain; do not apply for builds with earlier tools. Signed-off-by: Ian Thompson <ianst@cadence.com>
- Single-core multithreaded iDMA support - SMP iDMA support with pinned tasks - Example test and build infrastructure Signed-off-by: Ian Thompson <ianst@cadence.com>
- NX configs were reallocating a channel before it was fully cleaned up Signed-off-by: Ian Thompson <ianst@cadence.com>
- Xtensa port v3.13 tested and working with FreeRTOS-Kernel version 11.3.0. Signed-off-by: Ian Thompson <ianst@cadence.com>
AniruddhaKanhere
approved these changes
Jun 18, 2026
AniruddhaKanhere
left a comment
Member
There was a problem hiding this comment.
Thank you for your contribution @ianstcdns.
The changes look good to me!
AniruddhaKanhere
enabled auto-merge (squash)
June 18, 2026 22:06
patrzhan
approved these changes
Jun 18, 2026
Contributor
Author
Contributor
Author
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Merge Cadence/Xtensa FreeRTOS port up through v3.13
New Features:
Various bug-fixes, notably:
Various optional performance improvements, including:
for context switching performance improvements. Disabled by default.
dataram for performance improvements. Disabled by default.
Developed and Tested with FreeRTOS-Kernel v11.2.0
Tested with FreeRTOS-Kernel v11.3.0
Signed-off-by: Ian Thompson ianst@cadence.com
By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.