-
Couldn't load subscription status.
- Fork 8.1k
Closed
Labels
EnhancementChanges/Updates/Additions to existing featuresChanges/Updates/Additions to existing featuresIn progressFor PRs: is work in progress and should not be merged yet. For issues: Is being worked onFor PRs: is work in progress and should not be merged yet. For issues: Is being worked onMetaA collection of features, enhancements or bugsA collection of features, enhancements or bugsarea: ARMARM (32-bit) ArchitectureARM (32-bit) Architecturearea: Kernelarea: Memory Protectionarea: Trusted ExecutionTrusted ExecutionTrusted Execution
Milestone
Description
This is an umbrella issue for the ARM stack enhancements, including improvements/enhancements made for ARM SoCs and Boards, beyond 1.14 LTS and towards the 2.0 release.
Several of the items below are related to issues, which have been spotted during the 1.14 feature freeze and tree stabilization, and have, eventually, been moved to the 2.0 Zephyr release.
Items are constantly been added in the list, as issues are been reported and fixed. This will give a quick overview of the implemented fixes/improvements and help with the ARM release notes.
Areas:
- ARM stack
- ARM SoCs, Boards, Drivers
- Kernel interface to arch
- Memory protection related tests
Scope
- Optimizations
- Coverage
- Feature enhancements
- Bug fixes / Workarounds (or workaround removals, if applicable)
- Clean-up, refactoring
Below is a list of tasks:
- [Enh. ARM Boards] Add memory protection features' support in Arduino Due Board (Boards arduino due mpu #14526, soc: arm: sam3x: add MPU capability #13564)
- [Enh. ARM SoC/Boards] Rework system-timer source selection in ARM SoCs/Boards (Soc arm cleanup systick #15212)
- [Enh. ARM ] Reduce the IRQ locking time in thread context-switch (arch: arm: restrict IRQ lock to minimum during pendSV exception #15735)
- [Bug ARM} PrepC does not switch the SP when building with
CONFIG_NO_OPTIMIZATIONS(arch: arm: move stack switching back to ASM code #16099, mps2_an385 crashes if CONFIG_INIT_STACKS=y and CONFIG_COVERAGE=y #15794) - [Bug ARM] System call init code is using the un-provileged stack (ARM: userspace/test_bad_syscall fails on ARMv8-M #17177 )
- [Bug ARM] z_do_kernel_oops too permissive in user mode (ARM: z_arch_except() is too permissive in user mode #17591 )
- [Bug ARM] Support for HW stack protection features together with CONFIG_FP_SHARING (currently broken) (ARM: MPU-based HW thread stack protection not working properly when building with CONFIG_FLOAT #14828)
-
[Enh. ARM] Move thread privileged stack area right above the user stack (remove privileged stack generation mechanism for ARM #14688) - [Enh. ARM] Re-organize arch/include folders into a single one. Move code into c sources. Move internal APIs in /arch, re-organize common arch-calls, remove workarounds (Arch arm mpu move internal api #16136, soc: arm: move z_clearfaults() in kernel_arch_init() #16169, arch: arm: remove redundant definitions of typeof #16199, arch: arm: minor clean-up in interrupt stack size derivation #16355, Arch arm main thread init cleanup #16382, arch: arm: userspace: don't subtract MPU guard from top of stack #16388 ... )
- [Enh. ARM] Print thread names in
fatal.calso for ARM (arch: arm: print thread name in z_NanoFatalErrorHandler() #16253 ) - [Enh, ARM, Tests] Implement a sample/test for
RAMFUNCfeature (tests: kernel: add simple ramfunc test #17091) - [Enh, ARM, Tests] Implement a test for ZERO_LATENCY_IRQS (No test coverage for CONFIG_ZERO_LATENCY_IRQS #16901, tests: kernel: submit a simple test for zero-latency irqs #17045)
- [Enh, ARM, Tests] Implement a test for ARM swap ( Tests arch arm swap #17423)
- [Enh, ARM, Tests] Test privilege stack overflow in tests/fatal and test, also for no-usermode (tests: kernel: fatal: add HW stack check for priv stack #16859, tests: kernel: fatal: add explicit no user-mode test case #16854 )
- [Enh. ARM] Force FP stacking only if FP_SHARING is enabled (ARM: Fix/Enhance Floating Point for ARM Cortex-M architecture #15074)
- [Enh. ARM] Force lazy-stacking preservation feature if FP_SHARING is enabled(ARM: Fix/Enhance Floating Point for ARM Cortex-M architecture #15074 , Enable ARM M4F FPU lazy stacking #2049)
- [Enh. ARM] Implement FLOAT/FP_SHARING properly, i.e without stacking FP context by default (ARM: Fix/Enhance Floating Point for ARM Cortex-M architecture #15074)
- [Enh. ARM] Move core ARM configuration in DTS (Arch arm mpu regions index number in DTS #12173, ...)
-
[Enh. ARM, Kernel] Privilege stack size could be per-thread configurable, depending on what system-calls are executed. We should investigate. - [Bug. ARM, Tests] Memory Protection -related fixes (tests/kernel/mem_protect/protection/: Reached unreachable code #15546 tests/benchmarks/timing_info: wrong value for context switch duration #15728 ,arch: arm: fix start of MPU guard in stack-fail check (no user mode) #16757, tests: benchmarks: timing_info: add user space tag #16858, tests: kernel: userspace: correct address of thread priv stack start #16828, scripts: gen_priv_stacks: remove unused variable #16780, arch: common: nocache: fix linker section definition #16923, ARM: alignment problems in libc/newlib #16894, Arch arm userspace syscalls stack fix #17146 ...)
- [Enh. ARM] Update CMSIS_5 to latest version (ARM: Update ARM CMSIS to latest version #15827, ext: hal: cmsis: Update ARM CMSIS headers to version 5.5.1 #16525 )
- [Bug ARM] Assembly compilation for ARMv8-M Baseline (Cortex m23 asm fix sdk-ng#77)
- [Enh. ARMv8-M] QEMU for ARMv8-M (add QEMU target for armv8-M with MPU support #15305)
- [Enh. ARMv8-M] Non-Secure Callable improvements (Non-Secure Callable improvements #16055 )
- [Bug ARM NXP MPU] Fix configuration of default regions (soc: k64f MPU configured to always allow USB #17834 , soc: k64f MPU configured to always allow ENET #17603 )
- [Clean-up ARM] Remove unused functions in cpu idle (arch: arm: cpu_idle: Remove unused functions #18099)
Metadata
Metadata
Assignees
Labels
EnhancementChanges/Updates/Additions to existing featuresChanges/Updates/Additions to existing featuresIn progressFor PRs: is work in progress and should not be merged yet. For issues: Is being worked onFor PRs: is work in progress and should not be merged yet. For issues: Is being worked onMetaA collection of features, enhancements or bugsA collection of features, enhancements or bugsarea: ARMARM (32-bit) ArchitectureARM (32-bit) Architecturearea: Kernelarea: Memory Protectionarea: Trusted ExecutionTrusted ExecutionTrusted Execution