-
Notifications
You must be signed in to change notification settings - Fork 39
arm: bsp: add NXP S32K5 platform support #18
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
Conversation
jkloetzke
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks! LGTM in general. Only the RAM_BASE handling might need some attention...
src/kern/arm/bsp/s32k5/Kconfig
Outdated
| config PF_S32K5_AUTO_RAM_BASE | ||
| bool "Automatically choose RAM_BASE" | ||
| default y | ||
| help | ||
| Use default RAM base address, CPE SRAM0. | ||
|
|
||
| config PF_S32K5_MANUAL_RAM_BASE | ||
| hex "Custom RAM_BASE" | ||
| depends on !PF_S32K5_AUTO_RAM_BASE | ||
| default 0x22000000 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
As there is only a single cluster, we could simplify this IMHO:
| config PF_S32K5_AUTO_RAM_BASE | |
| bool "Automatically choose RAM_BASE" | |
| default y | |
| help | |
| Use default RAM base address, CPE SRAM0. | |
| config PF_S32K5_MANUAL_RAM_BASE | |
| hex "Custom RAM_BASE" | |
| depends on !PF_S32K5_AUTO_RAM_BASE | |
| default 0x22000000 | |
| config PF_S32K5_RAM_BASE | |
| hex "Kernel load address" | |
| default 0x22000000 | |
| help | |
| Start address of the kernel image. Defaults to start of CPE SRAM0. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
agreed, no need for two options on this platform
src/kern/arm/bsp/s32k5/Modules
Outdated
| PREPROCESS_PARTS += generic_tickless_idle arm_generic_timer pic_gic | ||
| INTERFACES_KERNEL += generic_timer irq_mgr_multi_chip | ||
|
|
||
| RAM_PHYS_BASE := $(strip $(CONFIG_PF_S32K5_MANUAL_RAM_BASE)) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'm not sure this works if PF_S32K5_AUTO_RAM_BASE is set. Anyway, if we remove PF_S32K5_AUTO_RAM_BASE then we could do the following:
| RAM_PHYS_BASE := $(strip $(CONFIG_PF_S32K5_MANUAL_RAM_BASE)) | |
| RAM_PHYS_BASE := $(CONFIG_PF_S32K5_RAM_BASE) |
Add platform support for NXP S32K5 running on the CPE subsystem. This includes BSP definitions and initialization hooks required for L4Re Microhypervisor bring-up on CPE. The CPE subsystem features a single Cortex-R52 cluster with two cores operating in split-lock mode. Single core and AMP is supported. Unlike other NXP S32 platforms, CPE MRU instances route interrupts as GIC SPIs, so MRU virtualization is not required. Change-Id: Ibfe223e6be7deb36ba86010c7ce9162ff04cd3dd Co-Authored-By: Flavius Vlasa <flavius.vlasa@nxp.com> Signed-off-by: Manuel Argüelles <manuel.arguelles@nxp.com>
86fde59 to
6eee388
Compare
jkloetzke
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks. I'll queue the PR for merging internally...
Add platform support for NXP S32K5 running on the CPE subsystem. This includes BSP definitions and initialization hooks required for L4Re Microhypervisor bring-up on CPE.
The CPE subsystem features a single Cortex-R52 cluster with two cores operating in split-lock mode. Single core and AMP is supported. Unlike other NXP S32 platforms, CPE MRU instances route interrupts as GIC SPIs, so MRU virtualization is not required.