Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add support for Cortex-A/R AArch32 cache management APIs #56178

Merged
merged 5 commits into from
Mar 29, 2023
Merged

Add support for Cortex-A/R AArch32 cache management APIs #56178

merged 5 commits into from
Mar 29, 2023

Conversation

manuargue
Copy link
Member

Add support for Cortex-A/R AArch32 (L1) cache management APIs through CMSIS. Cortex-M cache implementation is moved to its own directory as it's not generic for all Arm architectures.

Also enabled caches on fvp_baser_aemv8r_aarch32 to have a Cortex-R AArch32 FVP board with caches enabled.

@manuargue
Copy link
Member Author

unrelated twister build failures for samples/drivers/counter/alarm and tests/kernel/common, main is broken

carlocaione
carlocaione previously approved these changes Mar 27, 2023
@microbuilder
Copy link
Member

@manuargue Seeing some CI failures, though only one related to Arm.

@manuargue
Copy link
Member Author

@manuargue Seeing some CI failures, though only one related to Arm.

yes, logged this in #56188 and #56189, but both are failing in main. The first is being addressed already, for the second I may have time today to look at it (if not fixed already).

microbuilder
microbuilder previously approved these changes Mar 27, 2023
Current implementation of cache management APIs for ARM only applies to
Cortex-M, so move it to its own directory.

Signed-off-by: Manuel Argüelles <[email protected]>
Implement cache management APIs for Cortex-A/R AArch32 L1 caches.

Signed-off-by: Manuel Argüelles <[email protected]>
When CONFIG_NOCACHE_MEMORY=y, the .nocache section is placed in between
__rodata_region_end and _app_smem_start/__kernel_ram_start. Make sure
this region is covered by the MPU background region so that the static
region for nocache is configured correctly.

Signed-off-by: Manuel Argüelles <[email protected]>
Enable at SoC boot time when enabled through Kconfig. Cache management
API is not used since it could be built without its support enabled.

Signed-off-by: Manuel Argüelles <[email protected]>
Build with cache management enabled by default on this board.

Signed-off-by: Manuel Argüelles <[email protected]>
@manuargue manuargue dismissed stale reviews from microbuilder and carlocaione via a415045 March 28, 2023 16:42
@manuargue
Copy link
Member Author

manuargue commented Mar 28, 2023

rebased to pickup fixes from main, hoping for successful builds 🤞

@carlescufi carlescufi merged commit 657ed5d into zephyrproject-rtos:main Mar 29, 2023
@manuargue manuargue deleted the cortex-r-aarch32-caches branch March 29, 2023 07:53
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
area: ARM ARM (32-bit) Architecture
Projects
None yet
Development

Successfully merging this pull request may close these issues.

6 participants