i.MX8ULP: M33 SPI Boot (Dual Boot Mode)

キャンセル
次の結果を表示 
表示  限定  | 次の代わりに検索 
もしかして: 

i.MX8ULP: M33 SPI Boot (Dual Boot Mode)

871件の閲覧回数
texnikk
Contributor III

We are working on a project with the IMX8ULP in dual-boot mode, using the M33 core and A35 for SPI-based booting (A35 boots from eMMC). Below are some specific questions and observations we’ve encountered:

1. Boot Behavior in XIP Mode:
Using the MCUXpresso IDE and the flash_debug build with the MIMX8UD5xxxxx_cm33_flash.ld linker script, we observed the following:

– When our project fits within the .text section length of 0x0003DCE0 ( RAM text section length) , the M33 boots successfully, and A35 starts U-Boot as expected.
– However, when the project exceeds this .text length ( RAM text section length), the build completes successfully, and the XIP bin file is generated with imx-mkimage. Yet, in this case, the M33 does not boot, and the A35 stops after loading U-Boot SPL (it doesn't transition to the main U-Boot).

2. Startup Code Behavior in XIP Mode: In the startup_MIMX8UD5_cm33.S file, we noticed that the .text section is copied to RAM, regardless of whether XIP or RAM boot mode is used. This is controlled by the following code:

/* Loop to copy data from read only memory to RAM. The ranges
* of copy from/to are specified by following symbols evaluated in
* linker script.
* __etext: End of code section, i.e., begin of data sections to copy from.
* __data_start__/__data_end__: RAM address range that data should be
* copied to. Both must be aligned to 4 bytes boundary. */

ldr r1, =__etext
ldr r2, =__data_start__
ldr r3, =__data_end__


Question: Is this copying behavior expected even in XIP mode? Should we modify the linker script or startup code to avoid this copy in XIP mode?
Question: If our code grows beyond the .text size limitation, should we create a new memory region or move specific sections (e.g., .text_ext) to another memory area? Is there a recommended approach for handling large code in XIP mode on the M33?

3. XIP Boot for Large Code:

Question: Is XIP boot supported for larger code sizes on the M33 core in IMX8ULP? Are there any known limitations or workarounds when the code exceeds the size of the .text section?
Question: Are there any examples or documentation that can help in setting up a multi-region memory model for larger code using XIP?

ラベル(1)
タグ(4)
0 件の賞賛
返信
0 返答(返信)