AnsweredAssumed Answered

SabreSD boot from eMMC

Question asked by Leo Hendrawan on Jul 7, 2017
Latest reply on Jul 10, 2017 by igorpadykov

Hi,

I am having issue on booting my MCIMX6Q-SDB/SabreSD board from the on-board eMMC (uSDHC4). I have used the MfgTool to flash u-boot, linux kernel, dtb, and rootfs into the eMMC, and it seems to work without error. However setting the SW6 to 010xxx11 (msb->lsb), I can't see the board booting at all. I can see u-boot working when using SD Card attached to SD3(J507)/SD2(J500) on the board by setting SW6 to 010xxx01/010xxx10 and even boot the linux kernel from SD card attached SD2.

 

After the system boots from SD2, I tried to examine the attached devices, I can see that the eMMC is listed under /dev and event mounted by the system:

 

root@imx6qdlsolo:~# ls -l /dev/mmcblk*
brw-rw----    1 root     disk      179,   0 Apr  5 00:15 /dev/mmcblk0
brw-rw----    1 root     disk      179,   1 Apr  5 00:15 /dev/mmcblk0p1
brw-rw----    1 root     disk      179,   2 Apr  5 00:15 /dev/mmcblk0p2
brw-rw----    1 root     disk      179,   8 Apr  5 00:15 /dev/mmcblk1
brw-rw----    1 root     disk      179,  16 Apr  5 00:15 /dev/mmcblk1boot0
brw-rw----    1 root     disk      179,  24 Apr  5 00:15 /dev/mmcblk1boot1
brw-rw----    1 root     disk      179,   9 Apr  5 00:15 /dev/mmcblk1p1
brw-rw----    1 root     disk      179,  10 Apr  5 00:15 /dev/mmcblk1p2
brw-rw----    1 root     disk      179,  32 Apr  5 00:15 /dev/mmcblk1rpmb
root@imx6qdlsolo:~# mount
rootfs on / type rootfs (rw)
/dev/root on / type ext3 (rw,relatime,errors=continue,user_xattr,acl,barrier=1,data=ordered)
devtmpfs on /dev type devtmpfs (rw,relatime,size=348840k,nr_inodes=87210,mode=755)
proc on /proc type proc (rw,relatime)
tmpfs on /mnt/.psplash type tmpfs (rw,relatime,size=40k)
sysfs on /sys type sysfs (rw,relatime)
debugfs on /sys/kernel/debug type debugfs (rw,relatime)
tmpfs on /run type tmpfs (rw,nosuid,nodev,mode=755)
tmpfs on /var/volatile type tmpfs (rw,relatime)
devpts on /dev/pts type devpts (rw,relatime,gid=5,mode=620)
/dev/mmcblk1p2 on /media/mmcblk1p2 type ext4 (rw,relatime,data=ordered)
/dev/mmcblk1p1 on /media/mmcblk1p1 type vfat (rw,relatime,gid=6,fmask=0007,dmask=0007,allow_utime=0020,codepage=437,iocharset=iso8859-1,shortname=mixed,errors=remount-ro)
/dev/mmcblk0p1 on /media/mmcblk0p1 type vfat (rw,relatime,gid=6,fmask=0007,dmask=0007,allow_utime=0020,codepage=437,iocharset=iso8859-1,shortname=mixed,errors=remount-ro)

 

its partitions even seems to contain correct files (FAT first partition containing kernel image and DTB, ext4 second partition containing rootfs):

 

root@imx6qdlsolo:~# ls -l /media/mmcblk1p1
-rwxrwx---    1 root     disk         47179 Jan  1  1980 imx6dl-sabresd.dtb
-rwxrwx---    1 root     disk         47179 Jan  1  1980 imx6q-sabresd.dtb
-rwxrwx---    1 root     disk       5260936 Jan  1  1980 uImage
root@imx6qdlsolo:~# ls -l /media/mmcblk1p2
drwxr-xr-x    2 root     root          4096 Jan  1  1970 bin
drwxr-xr-x    2 root     root          4096 Jan  1  1970 boot
drwxr-xr-x    2 root     root          4096 Jan  1  1970 dev
drwxr-xr-x   44 root     root          4096 Jan  1  1970 etc
drwxr-sr-x    4 root     root          4096 Jan  1  1970 home
drwxr-xr-x    7 root     root          4096 Jan  1  1970 lib
drwx------    2 root     root         16384 Jan  1  1970 lost+found
drwxr-xr-x    2 root     root          4096 Apr  4 22:42 media
drwxr-xr-x    3 root     root          4096 Jan  1  1970 mnt
drwxr-xr-x    6 root     root          4096 Jan  1  1970 opt
drwxr-xr-x    2 root     root          4096 Apr  4 22:42 proc
drwxr-xr-x    2 root     root          4096 Apr  4 22:42 run
drwxr-xr-x    2 root     root          4096 Jan  1  1970 sbin
drwxr-xr-x    2 root     root          4096 Apr  4 22:42 sys
drwxrwxrwt    2 root     root          4096 Apr  4 22:42 tmp
drwxr-xr-x    2 root     root          4096 Jan  1  1970 unit_tests
drwxr-xr-x   11 root     root          4096 Jan  1  1970 usr
drwxr-xr-x    8 root     root          4096 Jan  1  1970 var

 

 

I event checked whether the IVT is correctly installed:

 

root@imx6qdlsolo:~# hexdump -C -n 32 -s 1024 /dev/mmcblk1
00000400  d1 00 20 40 00 00 80 17  00 00 00 00 2c b0 7f 17  |.. @........,...|
00000410  20 b0 7f 17 00 b0 7f 17  00 00 00 00 00 00 00 00  | ...............|

 

Everything seems to look fine. So the question is what can I do to debug why booting from the eMMC is not working.

 

Thanks.

Outcomes