Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Update Xtensa FreeRTOS support to v11 (#15)
* Cadence/Xtensa: Initial port from v10.4.4-stable - Import from https://github.com/foss-xtensa/amazon-freertos - Various updates to enable build and passing first round of tests * Cadence/Xtensa: kernel builds, demos passing Update Xtensa port to version 3.00 * Incorporate Xtensa fixes from ThirdParty/XCC/Xtensa Warning fixes. (FreeRTOS#356) b5a9229 Enable use of --text-section-literals in Xtensa port (#485) b002503 Added better pointer declaration readability (#567) 24ade42 Added support of 64bit events. (#597) 91c20f5 tree-wide: Unify formatting of __cplusplus ifdefs c1980ce * Copyright and whitespace updates Pulled formatting changes from ThirdParty/XCC/Xtensa No functional changes * Minor fixes to example build Fix incorrect readme path Fix directory separators on windows Command-line test suite passing * Fix build error Remove newlib reent pointer reference * Fix warnings and whitespace issues Incorporate recent fixes from legacy Xtensa repo * Cadence/Xtensa: Fix bug in tickless idle implementation Critical section nesting counter was not being incremented/decremented during vPortSuppressTicksAndSleeep() so the call to vTaskStepTick() might reenable interrupts and cause a spurious timer expiry. * Cadence/Xtensa: fix to handle wider range of timer ISRs - Signed comparison is more flexible for tickless idle / variable frequency support * Cadence/Xtensa: newlib fixes - Provide clib/newlib DEINIT function for reentrancy structure to prevent closing of stdin/stdout/stderr on TLS cleanup in task exit. * Cadence/Xtensa: Update overlay build flags Increase debugging visibility with -Os; enable thread-safe CLIB support * Cadence/Xtensa: Fix overlay race condition - Context switch during overlay use could result in overlay scratch register corruption - Highly recommend RJ-2024.4 tools or later, which also contains a fix to liboverlay.a * Cadence/Xtensa: Makefile update to simplify custom config params - Allow config parameters to be passed through Makefile chain as CFGFLAGS * Cadence/Xtensa: fix incorrect ifdefs - Check for windowed ABI, not whether HW supports windowing * Cadence/Xtensa: Release coprocessor ownership on task deletion - Resolve issue where it is possible for a task to exit while owning one or more coprocessors, and the ownership is not given up properly. * Cadence/Xtensa: Merge NX + MPU support - Add privilege syscall handling for XEA3 - Add MPU region restore for windowed/call0 configs - Separate privileged and user-mode task init for NX - Optimize privilege syscall handler to skip tail-chain and MPU restore Signed-off-by: Ian Thompson <[email protected]> * Cadence/Xtensa: Simplify syscall handling for windowed NX - Save and restore a2 for syscall arg/return - Add an extra 4 bytes to Exception frame struct - Avoid rotw since it may not handle underflow condition - Clean up comments and XT_STK_XTRA_SZ logic - MPU restore logic cannot be easily skipped at this time Signed-off-by: Ian Thompson <[email protected]> * Cadence/Xtensa: Restrict overlay build to windowd ABI configs - Overlay support requires Windowed ABI; won't work with call0 - Update README as well Signed-off-by: Ian Thompson <[email protected]> * Cadence/Xtensa: Remove unused code - _xt_idle is legacy code and is unreferenced. Signed-off-by: Ian Thompson <[email protected]> * Cadence/Xtensa: Limit overlay builds to LX - Generate error earlier for overlay build attempt on NX Signed-off-by: Ian Thompson <[email protected]> * Cadence/Xtensa: Fix timer selection logic - XCHAL_INT_LEVEL() macro requires interrupt number, not timer ID Signed-off-by: Ian Thompson <[email protected]> * Cadence/Xtensa: Prepare for Upstreaming - Relocate example test code according to suggested naming conventions - Modularize build for multiple configs--optionally reroute output - Update port README Signed-off-by: Ian Thompson <[email protected]> * Cadence/Xtensa: Minor cleanup - No functional changes Signed-off-by: Ian Thompson <[email protected]> * Cadence/Xtensa: Add portMEMORY_BARRIER() macro - Cherry picked from FreeRTOS-Kernel commit #190906ae Signed-off-by: Ian Thompson <[email protected]> --------- Signed-off-by: Ian Thompson <[email protected]>
- Loading branch information