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

NXP S32Z: add support to execute code from code RAM #81112

Merged
merged 4 commits into from
Nov 26, 2024

Conversation

Dat-NguyenDuy
Copy link
Contributor

This PR adds support to execute code from code RAM through AXIF (a read-only bus interface)
This addresses #60217

Use Zephyr cache API to initialize cache as done for
various platforms. Enabling CACHE_MANAGEMENT by default

Signed-off-by: Dat Nguyen Duy <[email protected]>
soc/nxp/s32/s32ze/soc.c Outdated Show resolved Hide resolved
arch/arm/core/cortex_a_r/reset.S Outdated Show resolved Hide resolved
arch/arm/core/cortex_a_r/Kconfig Outdated Show resolved Hide resolved
On Arm Cortex R52, cache segregation policy controls the
number of L1 I/D cache ways that are allocated to Flash
and AXIM interface. Adding Kconfig options for configuring
it.

Writing to IMP_CSCTRL is only permitted before the caches
have been enabled, following a system reset.

Signed-off-by: Dat Nguyen Duy <[email protected]>
Add devicetree node for code RAM, code RAM can be accessed
over AIXM bus or AXIF bus. Code access via AXIF interface
provides the best optimal performance

Signed-off-by: Dat Nguyen Duy <[email protected]>
- Trace32 runner: no need to configure TE bit in CFG_CORE
register in the cmm start-up script, it can be configured
at Zephyr start-up code when required (via SCTRL register)

- MPU static regions also needs to be updated for XIP and
non-XIP

Signed-off-by: Dat Nguyen Duy <[email protected]>
@manuargue manuargue dismissed their stale review November 8, 2024 10:15

SoC changes LGTM, I'll let others review the Arm changes and approve after

@@ -13,9 +13,8 @@
compatible = "nxp,s32z270";

chosen {
zephyr,sram = &sram1;
zephyr,console = &uart0;
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is dropping the console here intended ?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

if the change is unrelated to this pr then consider doing it in a separate pr

Copy link
Collaborator

@ithinuel ithinuel left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Changes to the arch/arm parts look good to me.
The rest seems fine too.

@nashif nashif merged commit e4539aa into zephyrproject-rtos:main Nov 26, 2024
36 checks passed
@manuargue manuargue deleted the s32ze-code-ram branch November 27, 2024 04:15
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
area: Architectures area: ARM ARM (32-bit) Architecture area: DMA Direct Memory Access platform: NXP S32 NXP Semiconductors, S32
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants