AnsweredAssumed Answered

IMX6 eMMC boot

Question asked by Andrew Parlane on Sep 29, 2014
Latest reply on Oct 2, 2014 by Andrew Parlane

Hi all,


So I'm trying to get our custom board with an IMX6 to boot u-boot from eMMC.


Here's what I've done:


1) use boundary devices imx_usb to load u-boot in using the serial downloader mode.

2) boot linux from sdcard on sd3

3) cd cd /sys/bus/mmc/devices/mmc1\:0001/     (sd4, emmc)

4) cat boot_info

1) desired SD clock: 52000000, actual: 49500000

1) desired SD clock: 52000000, actual: 49500000

mmc1: BKOPS_EN bit is not set


  ALT_BOOT_MODE:1 - Supports alternate boot method

  DDR_BOOT_MODE:1 - Supports alternate dual data rate during boot

  HS_BOOTMODE:1 - Supports high speed timing during boot



  BOOT_ACK:1 - Boot acknowledge sent during boot operation

  BOOT_PARTITION-ENABLE: 1 - Boot partition 1 enabled


  BOOT_MODE:0 - Use single data rate + backward compatible timings in boot operation

  RESET_BOOT_BUS_WIDTH:0 - Reset bus width to x1, single data rate and backwardcompatible timings after boot operation

  BOOT_BUS_WIDTH:0 - x1 (sdr) or x4 (ddr) bus width in boot operation mode


5) write u-boot.imx (same one serial downloader used) to emmc using:

dd if=/sdcard/u-boot.imx bs=1k seek=1 conv=fsync of=/dev/mmcblk1

I have 4 mmcblk1 devices:





I assume writting to the mmcblk1 entry is correct?


6) reboot and verify image:

dd if=/dev/mmcblk1 bs=1k skip=1 count=211 of=/tmp/uboot.tmp

diff -s /sdcard/u-boot.imx /tmp/uboot.tmp


7) reboot and set fuses in u-boot:

fuse prog 0 5 00005862

fuse prog 0 6 00000010

That sets: BOOT_CFG1 to 0x62

BOOT_CFG2 to 0x58

and BT_FUSE_SEL to 1


8) set dipswitches so boot_mode gpios = 00


9) power on, nothing happens. try using imx_usb serial downloader app thingy, and it works. So something is failing.

We scoped the clk pin on the eMMC and it appeared to wiggle.



Some final points.

We are using a 16GB eMMC v4.41 chip, with an 8 bit bus. No vselect. On the default pins for SD4. We have a reset pin, on NANDF_ALE.

I have the line: "BOOT_FROM sd" in my u-boot board.cfg file, which I think sets the offset to 0x400.


Have I missed anything?