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.
Solved! Go to Solution.
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.
Hi ozu
for such example one can look at
Best regards
igor
-----------------------------------------------------------------------------------------------------------------------
Note: If this post answers your question, please click the Correct Answer button. Thank you!
-----------------------------------------------------------------------------------------------------------------------
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
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.
Thanks for the reply!
Looking at the hexdump was useful, now it is working :smileyhappy: