IVT and linker file for boot from QSPI (SoloX)

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

IVT and linker file for boot from QSPI (SoloX)

Jump to solution
1,373 Views
ozu
Contributor III

For SoloX SABRE SD:

Can someone post a working example of an image (not having uboot) that boots from QSPI? I am able to boot from QSPI using uboot, which means my qspi config parameters are ok and also my manufacturing tool settings are ok!! Instead of Uboot, when i flash an image with ivt in it, at an offset 0x1000, i dont get any errors while flashing, but the application does not work.

I have read almost all the posts related to QSPI, could not figure out what is wrong with my image. I need an example of IVT and linker file, which when compiled with application, will boot from QSPI. I tried both - using a linker file with QSPI addresses (XIP approach) and using linker file with OCRAM addresses (non XIP), both are not working.

Labels (2)
1 Solution
1,105 Views
igorpadykov
NXP Employee
NXP Employee

For XIP boot the image has to be built for QuadSPI address space,

so change addresses to starting 6000_0000 - QSPI1 Memory or

7000_0000 - QSPI2 Memory.

If Uboot works for you one can hexdump its ivt and compare with this example.

View solution in original post

4 Replies
1,105 Views
igorpadykov
NXP Employee
NXP Employee

Hi ozu

for such example one can look at

MX6 SoloX bare metal startup

Best regards

igor

-----------------------------------------------------------------------------------------------------------------------

Note: If this post answers your question, please click the Correct Answer button. Thank you!

-----------------------------------------------------------------------------------------------------------------------

0 Kudos
1,105 Views
ozu
Contributor III

Thanks for the reply!

The example in the link you provided, flashes and executes the image in RAM.

The same image does not work, when flashed in QSPI. I am flashing image to QSPI the same we flash uboot to QSPI, using manufacturing tool.

The ivt of the example is posted below,

In this ivt, boot_data points to an OCRAM address and rest all are labels. Also, the linker file is meant for OCRAM addresses.

So, I think this program should work even when placed in QSPI (non XIP). But it does not work!

I tried replacing boot_data_ptr and self_ptr by the absolute addresses in QSPI, that also does not work!!

Please help!

ivt_header :                       .long   0x402000D1

app_code_jump_vector :  .long   Reset_Handler

                                          .long   0

dcd_ptr :                            .long   0

boot_data_ptr :                  .long   boot_data

self_ptr :                             .long   ivt_header

                                           .long   0

                                           .long   0

boot_data :                         .long   0x00920000 /* for DQ */

image_len :                        .long   0x18000    /* 96 KB  app size */

plugin    :                            .long   0

0 Kudos
1,106 Views
igorpadykov
NXP Employee
NXP Employee

For XIP boot the image has to be built for QuadSPI address space,

so change addresses to starting 6000_0000 - QSPI1 Memory or

7000_0000 - QSPI2 Memory.

If Uboot works for you one can hexdump its ivt and compare with this example.

1,105 Views
ozu
Contributor III

Thanks for the reply!

Looking at the hexdump was useful, now it is working :smileyhappy: