Hi NXP team,
I tried XIP from QSPI flash in the custom board that has a i.MX6UL and a external QSPI flash.
I set the IVT and Boot Data as shown below.
IVT.entry = 0x60002000; // entry address is within QSPI address range in the CPU memory map.
BootData.start = 0x60000000; // Set the start address of QSPI address range to specify XIP.
BootData.length = 0; // I think that the length is not required for XIP?
But XIP was not achieved. It seemed to not branch to the IVT.entry and stay in the Boot ROM program.
So I changed the length field to non-zero number for example 0x10000 for trial. Then I succeeded XIP with QSPI.
At the result of more trial, I found that the length field in the Boot Data with value of equal or greater than 0x20 is required to achieve XIP on QSPI flash.
Although I read Reference Manual and Errata document of i.MX6UL, I didn't find this limitation notice.
Is it described anywhere?
Is this limitation a new Errata?
Thanks.
Hi,
BootData.length here is the size of boot image, it should be the real size of boot image.
Please keep BootData.length non‑zero and set it to the actual image size.
Best Regards,
Zhiming
Hi,
Yes, your understanding are correct. It's similiar for other SOC, the image should be vaild, then ROM handle it.
Best Regards,
Zhiming
If the boot device are different, ROM may handle them differently. However, the issue you mentioned with the i.MX6Solo does indeed go beyond what the manual can explain.