Booting from eMMC on custom board

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

Booting from eMMC on custom board

1,359 Views
phillogden
Contributor I

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.

Labels (4)
Tags (3)
0 Kudos
2 Replies

601 Views
ThomasG1z
Contributor III

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.

0 Kudos

601 Views
igorpadykov
NXP Employee
NXP Employee

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

0 Kudos