SabreSD boot from eMMC

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

SabreSD boot from eMMC

947 Views
lhwr
Contributor I

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.

Labels (1)
0 Kudos
3 Replies

581 Views
igorpadykov
NXP Employee
NXP Employee

Hi Leo

please try with Demo Images

http://www.nxp.com/webapp/Download?colCode=L4.1.15_2.0.0_MX6QDLSOLO&appType=license&location=null&Pa... 

and MFG Tools

http://www.nxp.com/webapp/Download?colCode=IMX6_L4-1-15_2-0-0_MFG-TOOL&appType=license&location=null... 

use mfgtool2-yocto-mx-sabresd-emmc.vbs script

Best regards
igor
-----------------------------------------------------------------------------------------------------------------------
Note: If this post answers your question, please click the Correct Answer button. Thank you!
-----------------------------------------------------------------------------------------------------------------------

0 Kudos

581 Views
lhwr
Contributor I

Hi Igor,

thanks for the reply. As mentioned above, I actually did use the mfgtool2 to download the demo image, and it seems to work also as I can see the eMMC contains the image files and rootfs.

Is there anything I can debug further to know whether it is a hardware fault or not?

Thanks.

0 Kudos

581 Views
igorpadykov
NXP Employee
NXP Employee

Hi Leo

one can attach jtag debugger and dump 0x907400 (ROM uses 0x907000 as starting address),
one should see IVT header here if the emmc access is ok. Similar procedure is described on
https://community.freescale.com/thread/307723

Best regards
igor

0 Kudos