iMX6SX QSPI boot

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

iMX6SX QSPI boot

Jump to solution
7,922 Views
mod42
Contributor III

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

Labels (1)
1 Solution
4,271 Views
igorpadykov
NXP Employee
NXP Employee

Hi Matthias

for "sf probe" please look below (part of Linux Guide)

i.MX_Linux_User's_Guide p.22.jpg

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

View solution in original post

9 Replies
4,271 Views
igorpadykov
NXP Employee
NXP Employee

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!

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

0 Kudos
Reply
4,271 Views
mod42
Contributor III

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

4,271 Views
igorpadykov
NXP Employee
NXP Employee

Hi Matthias

suggest to test sf probe 0:0

and read attached Linux Guide sect.4.6.5 QuadSPI flash memory map,

sect.4.7.4 Running the Linux image from QuadSPI

Best regards

igor

0 Kudos
Reply
4,271 Views
mod42
Contributor III

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 :-(

0 Kudos
Reply
4,272 Views
igorpadykov
NXP Employee
NXP Employee

Hi Matthias

for "sf probe" please look below (part of Linux Guide)

i.MX_Linux_User's_Guide p.22.jpg

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

4,271 Views
jrichards
Contributor I

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

0 Kudos
Reply
4,271 Views
igorpadykov
NXP Employee
NXP Employee

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

0 Kudos
Reply
4,271 Views
jrichards
Contributor I

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

0 Kudos
Reply
4,271 Views
mod42
Contributor III

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