Hi
Is there an example image which can be flashed to the imx6sx sdb so that it boots via QSPI? Especially the QuadSPI Configuration Parameters needed would be interesting. I could go the hard way and figure it out by myself but a working example would be a lot of help.
Thanks
Solved! Go to Solution.
Hi Matthias
for "sf probe" please look below (part of Linux Guide)
Please try attached uboot, flash it on SD card.
I tested on my i.MX6SX SABRESDB rev.A (with qspi-nor-spansion-s25fl128s) and it worked.
QSPI config files for i.MX6SX SABRESDB can be found in
IMX6_L3.14.28_MFG_TOOL : IMX6_L3.14.28_MFG_TOOL
Below another useful link for QSPI boot
IMX6 SoloX: Unable to boot from QSPI NOR FLASH
Best regards
igor
Hi Matthias
run uboot from SD, then (use attached files):
sf probe 0:0
sf erase 0 0x80000
loady
----
use HyperTerminal to download an image through serial.
U-Boot now is ready to receive data. To send a file, click on “Transfer -> Send File ->
Ymodem (under Protocol) -> Send...”, choose the file to download.
---- send by Hyperterminal qspi.bin
sf write 0x80800000 0x400 0x200
---- send by Hyperterminal u-boot.bin
sf write 0x80800000 0x1000 0x60000
Best regards
igor
-----------------------------------------------------------------------------------------------------------------------
Note: If this post answers your question, please click the Correct Answer button. Thank you!
-----------------------------------------------------------------------------------------------------------------------
Hi Igor
I had to change the probe command to sf probe 1:0 as QSPI flash is connected to QSPI2 on imx6sx SDB. I then loaded the files following your instructions to the flash an verified that they are at the right position:
=> sf probe 1:0
SF: Detected N25Q256 with page size 256 Bytes, erase size 4 KiB, total 32 MiB
=> sf read 0x80000000 0x400 0x170
SF: 368 bytes @ 0x400 Read: OK
=> md 0x80000000 0x60
80000000: 00000000 00000000 00000000 00000000 ................
80000010: 00000000 00000000 00000000 02000000 ................
80000020: 00000003 00000003 08000000 00000000 ................
80000030: 08000000 00000000 00000000 00000000 ................
80000040: 00000001 00000000 00000000 00000000 ................
80000050: 00000000 00000000 00000000 00000000 ................
80000060: 00000000 00000000 0818040b 1c040c08 ................
80000070: 00000000 00000000 00000000 00000000 ................
80000080: 00000000 00000000 00000000 00000000 ................
80000090: 00000000 00000000 00000000 00000000 ................
800000a0: 00000000 00000000 00000000 00000000 ................
800000b0: 00000000 00000000 00000000 00000000 ................
800000c0: 00000000 00000000 00000000 00000000 ................
800000d0: 00000000 00000000 00000000 00000000 ................
800000e0: 00000000 00000000 00000000 00000000 ................
800000f0: 00000000 00000000 00000000 00000000 ................
80000100: 00000000 00000000 00000000 00000000 ................
80000110: 00000000 00000000 00000000 00000000 ................
80000120: 00000000 00000000 00000000 00000000 ................
80000130: 00000000 00000000 00000000 00000000 ................
80000140: 00000000 00000000 00000000 00000000 ................
80000150: 00000000 00000000 00000000 00000000 ................
80000160: 00000000 00000000 01000001 00000000 ................
=> sf read 0x80000000 0x1000 0x200
SF: 512 bytes @ 0x1000 Read: OK
=> md 0x80000000 0x80
80000000: 402000d1 87800000 00000000 877ff918 .. @............
80000010: 877ff90c 877ff8ec 00000000 00000000 ................
80000020: 877fe8ec 00057000 00000000 400802d2 .....p.........@
80000030: 040402cc 68400c02 ffffffff 6c400c02 ......@h......@l
80000040: ffffffff 70400c02 ffffffff 74400c02 ......@p......@t
80000050: ffffffff 78400c02 ffffffff 7c400c02 ......@x......@|
80000060: ffffffff 80400c02 ffffffff 84400c02 ......@.......@.
80000070: ffffffff 18060e02 00000c00 fc050e02 ................
80000080: 00000000 2c030e02 30000000 00030e02 .......,...0....
80000090: 20000000 fc020e02 20000000 f4050e02 ... ....... ....
800000a0: 20000000 40030e02 20000000 20030e02 ... ...@... ...
800000b0: 00000000 10030e02 20000000 14030e02 ........... ....
800000c0: 20000000 14060e02 20000000 f8050e02 ... ....... ....
800000d0: 00000200 30030e02 28000000 34030e02 .......0...(...4
800000e0: 28000000 38030e02 28000000 3c030e02 ...(...8...(...<
800000f0: 28000000 08060e02 00000200 0c060e02 ...(............
80000100: 28000000 10060e02 28000000 1c060e02 ...(.......(....
80000110: 28000000 20060e02 28000000 ec020e02 ...(... ...(....
80000120: 28000000 f0020e02 28000000 f4020e02 ...(.......(....
80000130: 28000000 f8020e02 28000000 00081b02 ...(.......(....
80000140: 030039a1 0c081b02 25002900 10081b02 .9.......).%....
80000150: 22002200 3c081b02 44014841 40081b02 ."."...<AH.D...@
80000160: 30013401 48081b02 44423e3c 50081b02 .4.0...H<>BD...P
80000170: 38363634 1c081b02 33333333 20081b02 4668....3333...
80000180: 33333333 24081b02 33333333 28081b02 3333...$3333...(
80000190: 33333333 b8081b02 00080000 04001b02 3333............
800001a0: 2d000200 08001b02 30303300 0c001b02 ...-.....300....
800001b0: f3526b67 10001b02 638b6db6 14001b02 gkR......m.c....
800001c0: db00ff01 18001b02 40170100 1c001b02 ...........@....
800001d0: 00800000 2c001b02 d2260000 30001b02 .......,..&....0
800001e0: 23106b00 40001b02 5f000000 00001b02 .k.#...@..._....
800001f0: 00001984 1c001b02 32800004 1c001b02 ...........2....
After changing the switches to boot from QSPI2 there is no output on the serial console. Do you have any ideas? Can you tell me why there is a size of 0x08000000 (128MByte) specified in your QSPI parameters? The flashes on the board have a capacity of 32MByte only.
Thanks for your help
Regards,
Matthias
Hi Igor
=> sf probe 0:0;
SF: Unsupported flash IDs: manuf 00, jedec 0000, ext_jedec 0000
Failed to initialize SPI flash at 0:0
=> sf probe 1:0;
SF: Detected N25Q256 with page size 256 Bytes, erase size 4 KiB, total 32 MiB
Which is an expected result as the flash is connected to QSPI2 on imx6sx sdb. But it doesn't work when I flash the stuff you provided to the right locations :-(
Hi Matthias
for "sf probe" please look below (part of Linux Guide)
Please try attached uboot, flash it on SD card.
I tested on my i.MX6SX SABRESDB rev.A (with qspi-nor-spansion-s25fl128s) and it worked.
QSPI config files for i.MX6SX SABRESDB can be found in
IMX6_L3.14.28_MFG_TOOL : IMX6_L3.14.28_MFG_TOOL
Below another useful link for QSPI boot
IMX6 SoloX: Unable to boot from QSPI NOR FLASH
Best regards
igor
Hi Igor,
I am a firmware developer and I am evaluating the IMX6SX SABRE-SD eval board to potentially use for an upcoming project. Our company uses VxWorks as our OS, but Wind River (VxWorks' developers) is phasing out their proprietary bootloader in favor of U-Boot. I have been trying to program Uboot into the QSPI2 of the IMX6SX eval board so the eval board can boot without the SD card. We intend on using a boot methodology like this for our actual product.
For now, my goal is to have a Uboot image load from QSPI2 and then display the command prompt. From here I can script a loader for VxWorks development, to load up a VxWorks image and then run it.
I have been trying to configure a U-boot image to work that boots from the QSPI flash. However, I followed all of the instructions on this page (i.e. used the u-boot-imx6sxsabresd_sd.imx SD card U-boot to try and load a the qspi.bin and u-boot.bin images into QSPI2 flash and have the eval board boot from that) and I am still unable to get U-boot to come up after I set the eval board's dip switches to boot from qspi2.
Since that didn't work, I installed Ubuntu Linux 14.04.5 on my laptop. Then I followed the Freescale Yocto Project User's Guide to download all the appropriate Linux packages and tools and the imx-4.1.15-1.0.0_ga git bsp. I followed the instructions in the BSP readme and the User's Guide to create a U-boot image for QSPI2, but the image doesn't seem to load Uboot either.
So to sum, I've followed the instructions you listed in the comments above to load your Uboot image for QSPI2, and I've followed the instructions in the FYPUG to build my own Uboot image for QSPI2, and I still have nothing to show for it.
I feel like I'm really behind the curve with regards to U-boot. There's plenty of documentation regarding U-boot but then I read comments like your followup comment about configuration files and I don't see this in my U-boot build environment. Clearly I am missing something very important.
First, can you help me understand why neither your U-boot image nor my U-boot image boots from QSPI2?
Second, can you provide a reference to a document of how to set up a U-boot build environment so that I can build my own Uboot by myself?
Thanks!
Joel Richards
Hi Joel
one can start with documentation located on
http://www.nxp.com/products/software-and-tools/software-development-tools/i.mx-software-and-tools/i....
use for example Linux 4.1.15_1.0.0 BSP & Multimedia Codecs Documentation -
this should correspond to i.MX Series Manufacturing Toolkit for Linux 4.1.15_1.0.0 Release, e.t.c.
Pay attention to MFG Tools scripts mfgtool2-yocto-mx-sabresd-qspi-nor-mx25l51245g.vbs,
mfgtool2-yocto-mx-sabresd-qspi-nor-n25q256a.vbs (recheck what particular flash is populated on your board),
then click on that vbs script, MFG Tool will start and write image on qspi. Use ucl2.xml
file to understand which commands are used for flashing.
Also may be useful to check
https://community.freescale.com/thread/357869
Best regards
igor
Igor,
Thanks for your prompt response. I have been looking at the material you linked and I believe I will need a couple of days to process the information you’ve provided. When I feel like I’ve gotten a more comfortable understanding of how to build and customize U-boot myself, I will respond to you with more questions if need be. Again, thanks!!!
Joel
Hi Igor
The config file from the manufacturing tool did the trick. I can now boot the board using mainline u-boot and mainline kernel from qspi flash. Thanks for your help