I have an imx6 SABRE SD board with imx6 solo x controller on it. The board also has QSPI interface. I could boot the board from SD card that came along with it.
Now I am trying to use MfgTool to load the uboot image in the qspi2. I think I am able to copy uboot to qspi flash. Please find the attached console messages, which show that the writing U-boot was successful.
When I restart the board after receiveing the Update Complete message, I can not see anything on the console. I expect to see a U-boot prompt, from which I can change partitions or maybe load the kernel. I have also attached my cfg.ini settings for the MfgTool. Why cant I see U-boot on console?
Can I also change ucl2.xml and try burning kernel (zImage) in qspi2 as well? Is it possible to boot entirely from qspi2, without using the SD card at all?
Any help appreciated! Thanks!!
Original Attachment has been moved to: Console-messages.txt.zip
Original Attachment has been moved to: cfg.ini.zip
已解决! 转到解答。
Hi ozu
first one needs to verify what qspi is soldered : spansion-s25fl128 or micron-n25q256,
for cfg.ini settings one can look at mfgtool2-yocto-mx6-sabresd-qspi-nor.vbs
(it is attached), like:
norconfig=qspi-nor-micron-n25q256a-config
sxuboot=sabresd
sxnor=qspi2
sxdtb=sdb-reva
seek=1
hdrseek=4
also for qspi boot one can look at
https://community.freescale.com/thread/340521
https://community.freescale.com/message/523505#523505
Boot dip settings is described on attached Linux Guide sect.4.5.9 Booting from QuadSPI.
Since qspi capacity is not big, one needs to create small linux image, to boot entirely from qspi2,
without using the SD card at all
Best regards
igor
-----------------------------------------------------------------------------------------------------------------------
Note: If this post answers your question, please click the Correct Answer button. Thank you!
-----------------------------------------------------------------------------------------------------------------------
Hi ozu
first one needs to verify what qspi is soldered : spansion-s25fl128 or micron-n25q256,
for cfg.ini settings one can look at mfgtool2-yocto-mx6-sabresd-qspi-nor.vbs
(it is attached), like:
norconfig=qspi-nor-micron-n25q256a-config
sxuboot=sabresd
sxnor=qspi2
sxdtb=sdb-reva
seek=1
hdrseek=4
also for qspi boot one can look at
https://community.freescale.com/thread/340521
https://community.freescale.com/message/523505#523505
Boot dip settings is described on attached Linux Guide sect.4.5.9 Booting from QuadSPI.
Since qspi capacity is not big, one needs to create small linux image, to boot entirely from qspi2,
without using the SD card at all
Best regards
igor
-----------------------------------------------------------------------------------------------------------------------
Note: If this post answers your question, please click the Correct Answer button. Thank you!
-----------------------------------------------------------------------------------------------------------------------
Thanks Igor! igorpadykov
It was helpful. My offset settings were wrong. By changing the seek and hdrseek values, now I am able to flash u-boot at the correct offset and I can see it loading when I restart the board. But the kernel doesn't get fully loaded. I am getting following error:
Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(179,2)
I have attached the detailed log in the file Kernel panic.txt and I have also attached the environment variables setting of U-boot here. Can you help?
The environment variables look a little confusing to me, since 'root' is defined multiple times and also 'mmcroot' does not specify rootfs. But these are 'as is' variables from the uboot binary file given with MfgTool.
Also, MfgTool that I am using (imx-3.14.28_1.0.0_ga-mfg-tools.tar) has two folders
1) mfgtools-with-rootfs.tar
2) mfgtools-without-rootfs.tar
I don't really understand their significance but I am using the one with the name mfgtools-with-rootfs.tar
Regards,
Vasu
Hi Vasu
MFG Tools supports only writing uboot to qspi-nor,
kernel and rootfs should be placed on other media: nand or sd/emmc.
Please check sect. 4.7 Running Linux on the target i.MX_Linux_User's_Guide.pdf
included in L3.14.28_1.0.0_LINUX_DOCS
~igor
Igor,
We have a sabresd board and i program qspi2 with uboot. The board work fine and uboot (on qspi2) allow me to use rootfs on NFS.
I face a problem on our custom board based on sabresd design. The board embed a IMX6SX 17x17 no PCIe and a QuadSPI Flash Micron N25Q128.
The QuadSPI flash is programmed with MfgTool. But when uboot (on Qspi2) don't boot.
I can see that parameters are well programmed and loaded in the CPU: configuration parameters are loaded at 18Mhz and the SPI frequency change to the value set in the QSPI header (checked with oscilloscope). But after 33µs the QSPI clock stop.
Our board use only one Qspi flash connected from 128Mb on QSPI2A. This flash don't support DDR mode.
I changed the "qspi-nor-micron-n25q256a-config" file from MFG tool to fit to Micron N25Q128A13 flash.
- disable ddr mode enable
- change LUT:
ADDR_DDR - 0 - 0x18
CMD - 0 - 0x3D
READ_DDR - 1 - 0x04
DUMMY - 1 - 0x06
JMP_ON_CS - 0 - 0
become now:
ADDR - 0 - 0x18 (disable ddr)
CMD - 0 - 0x3B ( DUAL_OUTPUT_FAST_READ without DDR )
READ - 1 - 0x04 (disable ddr)
DUMMY - 1 - 0x06
JMP_ON_CS - 0 - 0
So 2818 043d 3904 0d06 2400 become 0818 043b 1d04 0d06 2400. This should allow not to use DDR mode.
Is there something else to change?
Thanks
Witout Freescale support i solved my problem.
The problem was in the QSPI configuration parameters.
This is the workaround i found to switch from micron n25q256a to n25q128a:
- sclk_freq=0 (change frequency to 18MHz)
- sflash_type=0 (single mode)
- ddr_mode=0 (disable ddr mode, because this flash don't support DDR mode)
- change LUT:
CMD - 0 - 0x3D
ADDR_DDR - 0 - 0x18
DUMMY - 1 - 0x06
READ_DDR - 1 - 0x04
JMP_ON_CS - 0 - 0
become now:
CMD - 0 - 0x03
ADDR - 0 - 0x18
READ - 0 - 0x08
JMP_ON_CS - 0 - 0
So 2818 043d 3904 0d06 2400 become 0818 0403 2400 1c08
This LUT sequence use the default read sequence used by IMX to read parameters:
This method should works on most of flash, because it is used to read QSPI parameters.
The "problem" is that it is "1 wire -18MHz", so it is slow.
But in my situation, i use QSPI flash for debug, so no problem.
Just to close the topic,
I was using SD card loaded with kernel and rootfs but the reason behind error was that the SD card was corrupt.
When I replaced the SD card, everything worked well.
Thanks!