Howdy,
I'm building a custom iMX6Q board based on the reference design for the Sabre board. Our hardware appears to work, as we can boot from RAM applications downloaded using MFG tool. Our issue arises when trying to boot from our on board eMMC chip.
We have verified that we can talk to and read/write from the chip using a simple application using the SDK, and loading and running from both RAM and Flash. When we program the Flash with a uBoot image, it does not boot, and immediately enters serial download mode.
Is there something we are missing for a first time boot?
We have not blown fuses, and are using the boot config pins.
We ave loaded uBoot into RAM via MFG tool, and it boots from the kernel and root_fs stored in the Flash, so the uBoot file is correct.
Any and all help would be appreciated.
Thanks.
Phill.
First of all you can verify that the config bits are set as you expect by reading out a register (0x20d8004) in u-boot which corresponds to BOOT_CFG[4..1].
Second, where do you write u-boot to on the eMMC? Remember the eMMC has separate boot partitions and a main storage area. If you put u-boot on the boot partitions you'll also need to activate that corresponding partition for boot by writing a command to the eMMC device (e.g. through a linux sysfs interface). the iMX boot loader can also fall back to sd boot if you have the u-boot on the data partition (offset 0x400 as always).
Do a search on eMMC on this forum as this has been discussed before and you'll get the idea.
Hi Phill
after boot fail one can connect jtag and check
SRC_SBMR1,2 registers - it should have correct boot settings.
Table 8-18. SD/MMC IOMUX Pin Configuration IMX6DQRM
shows signals used for boot, one can check them with oscilloscope
and verify that they have correct values (for example CD).
Best regards
igor