-
Notifications
You must be signed in to change notification settings - Fork 8.3k
soc: arm: nxp_imx: introduce ROM ramloader feature #61615
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
soc: arm: nxp_imx: introduce ROM ramloader feature #61615
Conversation
|
@galak, This PR is indented as an alternative to #55288. Since this feature would primarily be used to boot from FlexSPI within Zephyr (although the ROM bootloader does support additional boot sources), and the change here is primarily a software option, I enabled the functionality using an SOC specific Kconfig setting. |
The iMX RT bootrom allows the user to load images into RAM regions from flash by providing a correctly configured boot header. In particular, if the boot header contains a load address within RAM, the bootroom will automatically copy the image to the load address before executing it Introduce CONFIG_NXP_IMX_RT_ROM_RAMLOADER to enable this feature. This Kconfig will shift the LMA of a image built to run in a RAM region to reside in the default FlexSPI boot region, which allows the image to be loaded to the FlexSPI region using west. This is intended to simplify development of applications executing from RAM on iMX RT based systems. Signed-off-by: Daniel DeGrasse <daniel.degrasse@nxp.com>
Add SRAM code region definition to RT5xx series SOC. The RT5xx shares SRAM partitions between the code and data bus, but a default allocation is chosen by the SOC level devicetree. The user can modify this allocation by changing the base address and size of the sram_code and sram0 regions in their board devicetree. Signed-off-by: Daniel DeGrasse <daniel.degrasse@nxp.com>
Add SRAM code region definition to RT6xx series SOC. The RT6xx shares SRAM partitions between the code and data bus, but a default allocation is chosen by the SOC level devicetree. The user can modify this allocation by changing the base address and size of the sram_code and sram0 regions in their board devicetree. Signed-off-by: Daniel DeGrasse <daniel.degrasse@nxp.com>
MaureenHelm
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.
DerekSnell
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.
Very helpful! Thank you, @danieldegrasse
The iMX RT bootrom allows the user to transparently load images into
RAM regions from flash at boot time by providing a correctly configured
boot header. In particular, if the boot header contains a load address within
RAM, the bootroom will automatically copy the image to the load address
before executing it.
Introduce CONFIG_NXP_IMX_RT_ROM_RAMLOADER to enable this feature. This
Kconfig will shift the LMA of a image built to run in a RAM region to
reside in the default FlexSPI boot region, which allows the image to be
loaded to the FlexSPI region using west. This is intended to simplify
development of applications executing from RAM on iMX RT based systems.
Signed-off-by: Daniel DeGrasse daniel.degrasse@nxp.com