This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

DRA725: SPL: failed to boot from all boot devices (actually from SD card)

Part Number: DRA725
Other Parts Discussed in Thread: TEST2

Hi TI team,

We are using DRA725 with booting from SD card mode(class 4) and it's bootable.

Now we change the a new SD card class10 32G and we get the following error while MLO loading u-boot.img.

After flashing the SD card to eMMC and boot from eMMC, it's bootable. Hence it seems like it's an issue while MLO reading u-boot.img from SD card.

U-Boot SPL 2016.05 (Nov 11 2022 - 10:35:56)
DRA722-GP ES2.1
MMC Device 1 not found
*** Warning - No MMC card found, using default environment

Trying to boot from MMC1
MMC Device 1 not found
*** Warning - No MMC card found, using default environment

reading u-boot.img
Error reading cluster
spl_load_image_fat: error reading image u-boot.img, err - -1
MMC Device 1 not found
*** Warning - No MMC card found, using default environment

** Can't read partition table on 0:0 **
spl: no partition table found
SPL: failed to boot from all boot devices
### ERROR ### Please RESET the board ###


For your reference, attached is debug log with adding "#define DEBUG" in include/common.h and "#define CONFIG_MMC_TRACE" in drivers/mmc/mmc.c .

U-Boot SPL 2016.05 (Nov 11 2022 - 10:18:50)
DRA722-GP ES2.1
CMD_SEND:0
                ARG                      0x00000000
                MMC_RSP_NONE
CMD_SEND:8
                ARG                      0x000001AA
                MMC_RSP_R1,5,6,7         0x000001AA
CMD_SEND:55
                ARG                      0x00000000
                MMC_RSP_R1,5,6,7         0x00000120
CMD_SEND:41
                ARG                      0x40300000
                MMC_RSP_R3,4             0x00FF8000
CMD_SEND:55
                ARG                      0x00000000
                MMC_RSP_R1,5,6,7         0x00000120
CMD_SEND:41
                ARG                      0x40300000
                MMC_RSP_R3,4             0xC0FF8000
CMD_SEND:2
                ARG                      0x00000000
                MMC_RSP_R2               0x87494F33
                                         0x54453420
                                         0x10090B50
                                         0x0101695B

                                        DUMPING DATA
                                        000 - 87 49 4F 33
                                        004 - 54 45 34 20
                                        008 - 10 09 0B 50
                                        012 - 01 01 69 5B
CMD_SEND:3
                ARG                      0x00000000
                MMC_RSP_R1,5,6,7         0x59B40520
CMD_SEND:9
                ARG                      0x59B40000
                MMC_RSP_R2               0x400E0032
                                         0x5B590000
                                         0xE8FF7F80
                                         0x0A4000AF

                                        DUMPING DATA
                                        000 - 40 0E 00 32
                                        004 - 5B 59 00 00
                                        008 - E8 FF 7F 80
                                        012 - 0A 40 00 AF
CMD_SEND:13
                ARG                      0x59B40000
                MMC_RSP_R1,5,6,7         0x00000700
CURR STATE:3
CMD_SEND:7
                ARG                      0x59B40000
                MMC_RSP_R1,5,6,7         0x00000700
CMD_SEND:55
                ARG                      0x59B40000
                MMC_RSP_R1,5,6,7         0x00000920
CMD_SEND:51
                ARG                      0x00000000
                MMC_RSP_R1,5,6,7         0x00000920
CMD_SEND:6
                ARG                      0x00FFFFF1
                MMC_RSP_R1,5,6,7         0x00000900
CMD_SEND:6
                ARG                      0x80FFFFF1
                MMC_RSP_R1,5,6,7         0x00000900
CMD_SEND:55
                ARG                      0x59B40000
                MMC_RSP_R1,5,6,7         0x00000920
CMD_SEND:6
                ARG                      0x00000002
                MMC_RSP_R1,5,6,7         0x00000920
CMD_SEND:16
                ARG                      0x00000200
                MMC_RSP_R1,5,6,7         0x00000900
CMD_SEND:17
                ARG                      0x00000000
                MMC_RSP_R1,5,6,7         0x00000900
part_init: try 'EFI': ret=-1
CMD_SEND:16
                ARG                      0x00000200
                MMC_RSP_R1,5,6,7         0x00000900
CMD_SEND:17
                ARG                      0x00000000
                MMC_RSP_R1,5,6,7         0x00000900
part_init: try 'DOS': ret=-1
CMD_SEND:16
                ARG                      0x00000200
                MMC_RSP_R1,5,6,7         0x00000900
CMD_SEND:18
                ARG                      0x00000040
                MMC_RSP_R1,5,6,7         0x00000900
CMD_SEND:12
                ARG                      0x00000000
                MMC_RSP_R1b              0x00000900
** First descriptor is NOT a primary desc on 0:1 **
part_init: try 'ISO': ret=-1
mmc_init: 0, time 262
MMC Device 1 not found
*** Warning - No MMC card found, using default environment

Destroy Hash Table: 4031cea0 table = 00000000
Create Hash Table: N=512
INSERT: table 4031cea0, filled 1/521 rv 80a83ea4 ==> name="bootargs" value="androidboot.serialno=${serial#} console=ttyS0,115200 androidboot.console=ttyS0 androidboot.hardware=jacinto6evmboard"
INSERT: table 4031cea0, filled 2/521 rv 80a82734 ==> name="bootcmd" value="switch_dtb;run mmcboot;"
INSERT: table 4031cea0, filled 3/521 rv 80a82f90 ==> name="bootdelay" value="2"
INSERT: table 4031cea0, filled 4/521 rv 80a82310 ==> name="baudrate" value="115200"
INSERT: table 4031cea0, filled 5/521 rv 80a81b2c ==> name="arch" value="arm"
INSERT: table 4031cea0, filled 6/521 rv 80a83328 ==> name="cpu" value="armv7"
INSERT: table 4031cea0, filled 7/521 rv 80a82ae0 ==> name="board" value="dra7xx"
INSERT: table 4031cea0, filled 8/521 rv 80a81de8 ==> name="board_name" value="dra7xx"
INSERT: table 4031cea0, filled 9/521 rv 80a833b4 ==> name="vendor" value="ti"
INSERT: table 4031cea0, filled 10/521 rv 80a8397c ==> name="soc" value="omap5"
INSERT: table 4031cea0, filled 11/521 rv 80a82e14 ==> name="loadaddr" value="0x82000000"
INSERT: table 4031cea0, filled 12/521 rv 80a82798 ==> name="kernel_addr_r" value="0x82000000"
INSERT: table 4031cea0, filled 13/521 rv 80a83134 ==> name="fdtaddr" value="0x88000000"
INSERT: table 4031cea0, filled 14/521 rv 80a820f4 ==> name="fdt_addr_r" value="0x88000000"
INSERT: table 4031cea0, filled 15/521 rv 80a82f7c ==> name="rdaddr" value="0x88080000"
INSERT: table 4031cea0, filled 16/521 rv 80a834b8 ==> name="ramdisk_addr_r" value="0x88080000"
INSERT: table 4031cea0, filled 17/521 rv 80a81f8c ==> name="scriptaddr" value="0x80000000"
INSERT: table 4031cea0, filled 18/521 rv 80a81dfc ==> name="pxefile_addr_r" value="0x80100000"
INSERT: table 4031cea0, filled 19/521 rv 80a8176c ==> name="bootm_size" value="0x10000000"
INSERT: table 4031cea0, filled 20/521 rv 80a82298 ==> name="boot_fdt" value="try"
INSERT: table 4031cea0, filled 21/521 rv 80a81c30 ==> name="mmcdev" value="0"
INSERT: table 4031cea0, filled 22/521 rv 80a8293c ==> name="mmcrootfstype" value="ext4 rootwait"
INSERT: table 4031cea0, filled 23/521 rv 80a821a8 ==> name="finduuid" value="part uuid mmc ${bootpart} uuid"
INSERT: table 4031cea0, filled 24/521 rv 80a83f1c ==> name="args_mmc" value="run finduuid;setenv bootargs console=${console} ${optargs} root=PARTUUID=${uuid} rw rootfstype=${mmcrootfstype} consoleblank=0 omapdrm.num_crtc=2 drm.debug=0xff"
INSERT: table 4031cea0, filled 25/521 rv 80a81910 ==> name="loadbootscript" value="load mmc ${mmcdev} ${loadaddr} boot.scr"
INSERT: table 4031cea0, filled 26/521 rv 80a82270 ==> name="bootscript" value="echo Running bootscript from mmc${mmcdev} ...; source ${loadaddr}"
INSERT: table 4031cea0, filled 27/521 rv 80a82b44 ==> name="bootenvfile" value="uEnv.txt"
INSERT: table 4031cea0, filled 28/521 rv 80a81f64 ==> name="importbootenv" value="echo Importing environment from mmc${mmcdev} ...; env import -t ${loadaddr} ${filesize}"
INSERT: table 4031cea0, filled 29/521 rv 80a83c74 ==> name="loadbootenv" value="fatload mmc ${mmcdev} ${loadaddr} ${bootenvfile}"
INSERT: table 4031cea0, filled 30/521 rv 80a830bc ==> name="loadimage" value="load ${devtype} ${bootpart} ${loadaddr} ${bootdir}/${bootfile}"
INSERT: table 4031cea0, filled 31/521 rv 80a83454 ==> name="loadfdt" value="load ${devtype} ${bootpart} ${fdtaddr} ${bootdir}/${fdtfile}"
INSERT: table 4031cea0, filled 32/521 rv 80a81fa0 ==> name="envboot" value="mmc dev ${mmcdev}; if mmc rescan; then echo SD/MMC found on device ${mmcdev};if run loadbootscript; then run bootscript;else if run loadbootenv; then echo Loaded env from ${bootenvfile};run importbootenv;fi;if test -n $uenvcmd; then echo Running uenvcmd ...;run uenvcmd;fi;fi;fi;"
INSERT: table 4031cea0, filled 33/521 rv 80a83e04 ==> name="mmcloados" value="run args_mmc; if test ${boot_fdt} = yes || test ${boot_fdt} = try; then if run loadfdt; then bootz ${loadaddr} - ${fdtaddr}; else if test ${boot_fdt} = try; then bootz; else echo WARN: Cannot load the DT; fi; fi; else bootz; fi;"
INSERT: table 4031cea0, filled 34/521 rv 80a83a08 ==> name="mmcboot" value="mmc dev ${mmcdev}; setenv devnum ${mmcdev}; setenv devtype mmc; if mmc rescan; then echo SD/MMC found on device ${mmcdev};if run loadimage; then if test ${boot_fit} -eq 1; then run loadfit; else run mmcloados;fi;fi;fi;"
INSERT: table 4031cea0, filled 35/521 rv 80a81870 ==> name="boot_fit" value="0"
INSERT: table 4031cea0, filled 36/521 rv 80a82a18 ==> name="fit_loadaddr" value="0x88000000"
INSERT: table 4031cea0, filled 37/521 rv 80a83ae4 ==> name="fit_bootfile" value="fitImage.itb"
INSERT: table 4031cea0, filled 38/521 rv 80a83634 ==> name="update_to_fit" value="setenv loadaddr ${fit_loadaddr}; setenv bootfile ${fit_bootfile}"
INSERT: table 4031cea0, filled 39/521 rv 80a8248c ==> name="args_fit" value="setenv bootargs console=${console} "
INSERT: table 4031cea0, filled 40/521 rv 80a838c8 ==> name="loadfit" value="run args_fit; bootm ${loadaddr}#${fdtfile};"
INSERT: table 4031cea0, filled 41/521 rv 80a83940 ==> name="console" value="ttyO2,115200n8"
INSERT: table 4031cea0, filled 42/521 rv 80a82c34 ==> name="fdtfile" value="undefined"
INSERT: table 4031cea0, filled 43/521 rv 80a83b84 ==> name="reboot_image" value="boot"
INSERT: table 4031cea0, filled 44/521 rv 80a83508 ==> name="boot_os" value="0"
INSERT: table 4031cea0, filled 45/521 rv 80a83b20 ==> name="bootpart" value="0:2"
INSERT: table 4031cea0, filled 46/521 rv 80a81708 ==> name="bootdir" value="/boot"
INSERT: table 4031cea0, filled 47/521 rv 80a82a54 ==> name="bootfile" value="zImage"
INSERT: table 4031cea0, filled 48/521 rv 80a82428 ==> name="usbtty" value="cdc_acm"
INSERT: table 4031cea0, filled 49/521 rv 80a82b6c ==> name="vram" value="16M"
DELETE CANDIDATE: "partitions"
hdelete: DELETE key "partitions"
DELETE ERROR ##############################
DELETE CANDIDATE: "optargs"
hdelete: DELETE key "optargs"
DELETE ERROR ##############################
INSERT: table 4031cea0, filled 50/521 rv 80a819c4 ==> name="dofastboot" value="0"
INSERT: table 4031cea0, filled 50/521 rv 80a81910 ==> name="loadbootscript" value="fatload mmc ${mmcdev} ${loadaddr} boot.scr"
INSERT: table 4031cea0, filled 50/521 rv 80a82270 ==> name="bootscript" value="echo Running bootscript from mmc${mmcdev} ...; source ${loadaddr}"
INSERT: table 4031cea0, filled 50/521 rv 80a830bc ==> name="loadimage" value="load mmc ${bootpart} ${loadaddr} ${bootdir}/${bootfile}"
INSERT: table 4031cea0, filled 50/521 rv 80a83a08 ==> name="mmcboot" value="if mmc dev ${mmcdev}; then setenv devtype mmc; if mmc rescan; then echo SD/MMC found on device ${mmcdev};if run loadimage; then run loadfdt; echo Booting from mmc${mmcdev} ...; run args_mmc; bootz ${loadaddr} - ${fdtaddr}; fi; fi; fi;"
INSERT: table 4031cea0, filled 51/521 rv 80a81690 ==> name="emmc_android_boot" value="setenv eval_bootargs setenv bootargs $bootargs; run eval_bootargs; setenv mmcdev 1; setenv fdt_part 3; setenv boot_part 9; if test $reboot_image = recovery; then setenv boot_part 8; setenv reboot_image boot; saveenv; fi;setenv machid fe6; mmc dev $mmcdev; mmc rescan; part start mmc ${mmcdev} ${fdt_part} fdt_start; part size mmc ${mmcdev} ${fdt_part} fdt_size; part start mmc ${mmcdev} ${boot_part} boot_start; part size mmc ${mmcdev} ${boot_part} boot_size; mmc read ${fdtaddr} ${fdt_start} ${fdt_size}; mmc read ${loadaddr} ${boot_start} ${boot_size}; echo Booting from eMMC ...; bootm $loadaddr $loadaddr $fdtaddr;"
INSERT: table 4031cea0, filled 52/521 rv 80a83c24 ==> name="findfdt" value="if test $board_name = omap5_uevm; then setenv fdtfile omap5-uevm.dtb; fi; if test $board_name = dra7xx; then setenv fdtfile dra7-evm.dtb; fi;if test $board_name = dra72x-revc; then setenv fdtfile dra72-evm-revc.dtb; fi;if test $board_name = dra72x; then setenv fdtfile dra72-evm.dtb; fi;if test $board_name = dra71x; then setenv fdtfile dra71-evm.dtb; fi;if test $board_name = beagle_x15; then setenv fdtfile am57xx-beagle-x15.dtb; fi;if test $board_name = beagle_x15_revb1; then setenv fdtfile am57xx-beagle-x15-revb1.dtb; fi;if test $board_name = am57xx_evm; then setenv fdtfile am57xx-evm.dtb; fi;if test $board_name = am57xx_evm_reva3; then setenv fdtfile am57xx-evm-reva3.dtb; fi;if test $board_name = am572x_idk && test $idk_lcd = no; then setenv fdtfile am572x-idk.dtb; fi;if test $board_name = am572x_idk && test $idk_lcd = osd101t2045; then setenv fdtfile am572x-idk-lcd-osd.dtb; fi;if test $board_name = am572x_idk && test $idk_lcd = osd101t2587; then setenINSERT: table 4031cea0, filled 53/521 rv 80a83a80 ==> name="static_ip" value="${ipaddr}:${serverip}:${gatewayip}:${netmask}:${hostname}::off"
INSERT: table 4031cea0, filled 54/521 rv 80a831e8 ==> name="nfsopts" value="nolock"
INSERT: table 4031cea0, filled 55/521 rv 80a8306c ==> name="rootpath" value="/export/rootfs"
INSERT: table 4031cea0, filled 56/521 rv 80a81a64 ==> name="netloadimage" value="tftp ${loadaddr} ${bootfile}"
INSERT: table 4031cea0, filled 57/521 rv 80a82a7c ==> name="netloadfdt" value="tftp ${fdtaddr} ${fdtfile}"
INSERT: table 4031cea0, filled 58/521 rv 80a82d60 ==> name="netargs" value="setenv bootargs console=${console} ${optargs} root=/dev/nfs nfsroot=${serverip}:${rootpath},${nfsopts} rw ip=dhcp"
INSERT: table 4031cea0, filled 59/521 rv 80a83e7c ==> name="netboot" value="echo Booting from network ...; setenv autoload no; dhcp; run netloadimage; run netloadfdt; run netargs; bootz ${loadaddr} - ${fdtaddr}"
INSERT: free(data = 80a801a8)
INSERT: done
Initial value for argc=3
Final value for argc=3
Trying to boot from MMC1
spl: mmc boot mode: fs
MMC Device 1 not found
*** Warning - No MMC card found, using default environment

Destroy Hash Table: 4031cea0 table = 80a81678
Create Hash Table: N=512
INSERT: table 4031cea0, filled 1/521 rv 80a829d4 ==> name="bootargs" value="androidboot.serialno=${serial#} console=ttyS0,115200 androidboot.console=ttyS0 androidboot.hardware=jacinto6evmboard"
INSERT: table 4031cea0, filled 2/521 rv 80a81264 ==> name="bootcmd" value="switch_dtb;run mmcboot;"
INSERT: table 4031cea0, filled 3/521 rv 80a81ac0 ==> name="bootdelay" value="2"
INSERT: table 4031cea0, filled 4/521 rv 80a80e40 ==> name="baudrate" value="115200"
INSERT: table 4031cea0, filled 5/521 rv 80a8065c ==> name="arch" value="arm"
INSERT: table 4031cea0, filled 6/521 rv 80a81e58 ==> name="cpu" value="armv7"
INSERT: table 4031cea0, filled 7/521 rv 80a81610 ==> name="board" value="dra7xx"
INSERT: table 4031cea0, filled 8/521 rv 80a80918 ==> name="board_name" value="dra7xx"
INSERT: table 4031cea0, filled 9/521 rv 80a81ee4 ==> name="vendor" value="ti"
INSERT: table 4031cea0, filled 10/521 rv 80a824ac ==> name="soc" value="omap5"
INSERT: table 4031cea0, filled 11/521 rv 80a81944 ==> name="loadaddr" value="0x82000000"
INSERT: table 4031cea0, filled 12/521 rv 80a812c8 ==> name="kernel_addr_r" value="0x82000000"
INSERT: table 4031cea0, filled 13/521 rv 80a81c64 ==> name="fdtaddr" value="0x88000000"
INSERT: table 4031cea0, filled 14/521 rv 80a80c24 ==> name="fdt_addr_r" value="0x88000000"
INSERT: table 4031cea0, filled 15/521 rv 80a81aac ==> name="rdaddr" value="0x88080000"
INSERT: table 4031cea0, filled 16/521 rv 80a81fe8 ==> name="ramdisk_addr_r" value="0x88080000"
INSERT: table 4031cea0, filled 17/521 rv 80a80abc ==> name="scriptaddr" value="0x80000000"
INSERT: table 4031cea0, filled 18/521 rv 80a8092c ==> name="pxefile_addr_r" value="0x80100000"
INSERT: table 4031cea0, filled 19/521 rv 80a8029c ==> name="bootm_size" value="0x10000000"
INSERT: table 4031cea0, filled 20/521 rv 80a80dc8 ==> name="boot_fdt" value="try"
INSERT: table 4031cea0, filled 21/521 rv 80a80760 ==> name="mmcdev" value="0"
INSERT: table 4031cea0, filled 22/521 rv 80a8146c ==> name="mmcrootfstype" value="ext4 rootwait"
INSERT: table 4031cea0, filled 23/521 rv 80a80cd8 ==> name="finduuid" value="part uuid mmc ${bootpart} uuid"
INSERT: table 4031cea0, filled 24/521 rv 80a82a4c ==> name="args_mmc" value="run finduuid;setenv bootargs console=${console} ${optargs} root=PARTUUID=${uuid} rw rootfstype=${mmcrootfstype} consoleblank=0 omapdrm.num_crtc=2 drm.debug=0xff"
INSERT: table 4031cea0, filled 25/521 rv 80a80440 ==> name="loadbootscript" value="load mmc ${mmcdev} ${loadaddr} boot.scr"
INSERT: table 4031cea0, filled 26/521 rv 80a80da0 ==> name="bootscript" value="echo Running bootscript from mmc${mmcdev} ...; source ${loadaddr}"
INSERT: table 4031cea0, filled 27/521 rv 80a81674 ==> name="bootenvfile" value="uEnv.txt"
INSERT: table 4031cea0, filled 28/521 rv 80a80a94 ==> name="importbootenv" value="echo Importing environment from mmc${mmcdev} ...; env import -t ${loadaddr} ${filesize}"
INSERT: table 4031cea0, filled 29/521 rv 80a827a4 ==> name="loadbootenv" value="fatload mmc ${mmcdev} ${loadaddr} ${bootenvfile}"
INSERT: table 4031cea0, filled 30/521 rv 80a81bec ==> name="loadimage" value="load ${devtype} ${bootpart} ${loadaddr} ${bootdir}/${bootfile}"
INSERT: table 4031cea0, filled 31/521 rv 80a81f84 ==> name="loadfdt" value="load ${devtype} ${bootpart} ${fdtaddr} ${bootdir}/${fdtfile}"
INSERT: table 4031cea0, filled 32/521 rv 80a80ad0 ==> name="envboot" value="mmc dev ${mmcdev}; if mmc rescan; then echo SD/MMC found on device ${mmcdev};if run loadbootscript; then run bootscript;else if run loadbootenv; then echo Loaded env from ${bootenvfile};run importbootenv;fi;if test -n $uenvcmd; then echo Running uenvcmd ...;run uenvcmd;fi;fi;fi;"
INSERT: table 4031cea0, filled 33/521 rv 80a82934 ==> name="mmcloados" value="run args_mmc; if test ${boot_fdt} = yes || test ${boot_fdt} = try; then if run loadfdt; then bootz ${loadaddr} - ${fdtaddr}; else if test ${boot_fdt} = try; then bootz; else echo WARN: Cannot load the DT; fi; fi; else bootz; fi;"
INSERT: table 4031cea0, filled 34/521 rv 80a82538 ==> name="mmcboot" value="mmc dev ${mmcdev}; setenv devnum ${mmcdev}; setenv devtype mmc; if mmc rescan; then echo SD/MMC found on device ${mmcdev};if run loadimage; then if test ${boot_fit} -eq 1; then run loadfit; else run mmcloados;fi;fi;fi;"
INSERT: table 4031cea0, filled 35/521 rv 80a803a0 ==> name="boot_fit" value="0"
INSERT: table 4031cea0, filled 36/521 rv 80a81548 ==> name="fit_loadaddr" value="0x88000000"
INSERT: table 4031cea0, filled 37/521 rv 80a82614 ==> name="fit_bootfile" value="fitImage.itb"
INSERT: table 4031cea0, filled 38/521 rv 80a82164 ==> name="update_to_fit" value="setenv loadaddr ${fit_loadaddr}; setenv bootfile ${fit_bootfile}"
INSERT: table 4031cea0, filled 39/521 rv 80a80fbc ==> name="args_fit" value="setenv bootargs console=${console} "
INSERT: table 4031cea0, filled 40/521 rv 80a823f8 ==> name="loadfit" value="run args_fit; bootm ${loadaddr}#${fdtfile};"
INSERT: table 4031cea0, filled 41/521 rv 80a82470 ==> name="console" value="ttyO2,115200n8"
INSERT: table 4031cea0, filled 42/521 rv 80a81764 ==> name="fdtfile" value="undefined"
INSERT: table 4031cea0, filled 43/521 rv 80a826b4 ==> name="reboot_image" value="boot"
INSERT: table 4031cea0, filled 44/521 rv 80a82038 ==> name="boot_os" value="0"
INSERT: table 4031cea0, filled 45/521 rv 80a82650 ==> name="bootpart" value="0:2"
INSERT: table 4031cea0, filled 46/521 rv 80a80238 ==> name="bootdir" value="/boot"
INSERT: table 4031cea0, filled 47/521 rv 80a81584 ==> name="bootfile" value="zImage"
INSERT: table 4031cea0, filled 48/521 rv 80a80f58 ==> name="usbtty" value="cdc_acm"
INSERT: table 4031cea0, filled 49/521 rv 80a8169c ==> name="vram" value="16M"
DELETE CANDIDATE: "partitions"
hdelete: DELETE key "partitions"
DELETE ERROR ##############################
DELETE CANDIDATE: "optargs"
hdelete: DELETE key "optargs"
DELETE ERROR ##############################
INSERT: table 4031cea0, filled 50/521 rv 80a804f4 ==> name="dofastboot" value="0"
INSERT: table 4031cea0, filled 50/521 rv 80a80440 ==> name="loadbootscript" value="fatload mmc ${mmcdev} ${loadaddr} boot.scr"
INSERT: table 4031cea0, filled 50/521 rv 80a80da0 ==> name="bootscript" value="echo Running bootscript from mmc${mmcdev} ...; source ${loadaddr}"
INSERT: table 4031cea0, filled 50/521 rv 80a81bec ==> name="loadimage" value="load mmc ${bootpart} ${loadaddr} ${bootdir}/${bootfile}"
INSERT: table 4031cea0, filled 50/521 rv 80a82538 ==> name="mmcboot" value="if mmc dev ${mmcdev}; then setenv devtype mmc; if mmc rescan; then echo SD/MMC found on device ${mmcdev};if run loadimage; then run loadfdt; echo Booting from mmc${mmcdev} ...; run args_mmc; bootz ${loadaddr} - ${fdtaddr}; fi; fi; fi;"
INSERT: table 4031cea0, filled 51/521 rv 80a801c0 ==> name="emmc_android_boot" value="setenv eval_bootargs setenv bootargs $bootargs; run eval_bootargs; setenv mmcdev 1; setenv fdt_part 3; setenv boot_part 9; if test $reboot_image = recovery; then setenv boot_part 8; setenv reboot_image boot; saveenv; fi;setenv machid fe6; mmc dev $mmcdev; mmc rescan; part start mmc ${mmcdev} ${fdt_part} fdt_start; part size mmc ${mmcdev} ${fdt_part} fdt_size; part start mmc ${mmcdev} ${boot_part} boot_start; part size mmc ${mmcdev} ${boot_part} boot_size; mmc read ${fdtaddr} ${fdt_start} ${fdt_size}; mmc read ${loadaddr} ${boot_start} ${boot_size}; echo Booting from eMMC ...; bootm $loadaddr $loadaddr $fdtaddr;"
INSERT: table 4031cea0, filled 52/521 rv 80a82754 ==> name="findfdt" value="if test $board_name = omap5_uevm; then setenv fdtfile omap5-uevm.dtb; fi; if test $board_name = dra7xx; then setenv fdtfile dra7-evm.dtb; fi;if test $board_name = dra72x-revc; then setenv fdtfile dra72-evm-revc.dtb; fi;if test $board_name = dra72x; then setenv fdtfile dra72-evm.dtb; fi;if test $board_name = dra71x; then setenv fdtfile dra71-evm.dtb; fi;if test $board_name = beagle_x15; then setenv fdtfile am57xx-beagle-x15.dtb; fi;if test $board_name = beagle_x15_revb1; then setenv fdtfile am57xx-beagle-x15-revb1.dtb; fi;if test $board_name = am57xx_evm; then setenv fdtfile am57xx-evm.dtb; fi;if test $board_name = am57xx_evm_reva3; then setenv fdtfile am57xx-evm-reva3.dtb; fi;if test $board_name = am572x_idk && test $idk_lcd = no; then setenv fdtfile am572x-idk.dtb; fi;if test $board_name = am572x_idk && test $idk_lcd = osd101t2045; then setenv fdtfile am572x-idk-lcd-osd.dtb; fi;if test $board_name = am572x_idk && test $idk_lcd = osd101t2587; then setenINSERT: table 4031cea0, filled 53/521 rv 80a825b0 ==> name="static_ip" value="${ipaddr}:${serverip}:${gatewayip}:${netmask}:${hostname}::off"
INSERT: table 4031cea0, filled 54/521 rv 80a81d18 ==> name="nfsopts" value="nolock"
INSERT: table 4031cea0, filled 55/521 rv 80a81b9c ==> name="rootpath" value="/export/rootfs"
INSERT: table 4031cea0, filled 56/521 rv 80a80594 ==> name="netloadimage" value="tftp ${loadaddr} ${bootfile}"
INSERT: table 4031cea0, filled 57/521 rv 80a815ac ==> name="netloadfdt" value="tftp ${fdtaddr} ${fdtfile}"
INSERT: table 4031cea0, filled 58/521 rv 80a81890 ==> name="netargs" value="setenv bootargs console=${console} ${optargs} root=/dev/nfs nfsroot=${serverip}:${rootpath},${nfsopts} rw ip=dhcp"
INSERT: table 4031cea0, filled 59/521 rv 80a829ac ==> name="netboot" value="echo Booting from network ...; setenv autoload no; dhcp; run netloadimage; run netloadfdt; run netargs; bootz ${loadaddr} - ${fdtaddr}"
INSERT: free(data = 80a85610)
INSERT: done
## Unknown partition table type 0
** Partition 1 not valid on device 0 **
spl_register_fat_device: fat register err - -1
spl_load_image_fat: error reading image u-boot.img, err - -1
MMC Device 1 not found
*** Warning - No MMC card found, using default environment

Destroy Hash Table: 4031cea0 table = 80a801a8
Create Hash Table: N=512
INSERT: table 4031cea0, filled 1/521 rv 80a829d4 ==> name="bootargs" value="androidboot.serialno=${serial#} console=ttyS0,115200 androidboot.console=ttyS0 androidboot.hardware=jacinto6evmboard"
INSERT: table 4031cea0, filled 2/521 rv 80a81264 ==> name="bootcmd" value="switch_dtb;run mmcboot;"
INSERT: table 4031cea0, filled 3/521 rv 80a81ac0 ==> name="bootdelay" value="2"
INSERT: table 4031cea0, filled 4/521 rv 80a80e40 ==> name="baudrate" value="115200"
INSERT: table 4031cea0, filled 5/521 rv 80a8065c ==> name="arch" value="arm"
INSERT: table 4031cea0, filled 6/521 rv 80a81e58 ==> name="cpu" value="armv7"
INSERT: table 4031cea0, filled 7/521 rv 80a81610 ==> name="board" value="dra7xx"
INSERT: table 4031cea0, filled 8/521 rv 80a80918 ==> name="board_name" value="dra7xx"
INSERT: table 4031cea0, filled 9/521 rv 80a81ee4 ==> name="vendor" value="ti"
INSERT: table 4031cea0, filled 10/521 rv 80a824ac ==> name="soc" value="omap5"
INSERT: table 4031cea0, filled 11/521 rv 80a81944 ==> name="loadaddr" value="0x82000000"
INSERT: table 4031cea0, filled 12/521 rv 80a812c8 ==> name="kernel_addr_r" value="0x82000000"
INSERT: table 4031cea0, filled 13/521 rv 80a81c64 ==> name="fdtaddr" value="0x88000000"
INSERT: table 4031cea0, filled 14/521 rv 80a80c24 ==> name="fdt_addr_r" value="0x88000000"
INSERT: table 4031cea0, filled 15/521 rv 80a81aac ==> name="rdaddr" value="0x88080000"
INSERT: table 4031cea0, filled 16/521 rv 80a81fe8 ==> name="ramdisk_addr_r" value="0x88080000"
INSERT: table 4031cea0, filled 17/521 rv 80a80abc ==> name="scriptaddr" value="0x80000000"
INSERT: table 4031cea0, filled 18/521 rv 80a8092c ==> name="pxefile_addr_r" value="0x80100000"
INSERT: table 4031cea0, filled 19/521 rv 80a8029c ==> name="bootm_size" value="0x10000000"
INSERT: table 4031cea0, filled 20/521 rv 80a80dc8 ==> name="boot_fdt" value="try"
INSERT: table 4031cea0, filled 21/521 rv 80a80760 ==> name="mmcdev" value="0"
INSERT: table 4031cea0, filled 22/521 rv 80a8146c ==> name="mmcrootfstype" value="ext4 rootwait"
INSERT: table 4031cea0, filled 23/521 rv 80a80cd8 ==> name="finduuid" value="part uuid mmc ${bootpart} uuid"
INSERT: table 4031cea0, filled 24/521 rv 80a82a4c ==> name="args_mmc" value="run finduuid;setenv bootargs console=${console} ${optargs} root=PARTUUID=${uuid} rw rootfstype=${mmcrootfstype} consoleblank=0 omapdrm.num_crtc=2 drm.debug=0xff"
INSERT: table 4031cea0, filled 25/521 rv 80a80440 ==> name="loadbootscript" value="load mmc ${mmcdev} ${loadaddr} boot.scr"
INSERT: table 4031cea0, filled 26/521 rv 80a80da0 ==> name="bootscript" value="echo Running bootscript from mmc${mmcdev} ...; source ${loadaddr}"
INSERT: table 4031cea0, filled 27/521 rv 80a81674 ==> name="bootenvfile" value="uEnv.txt"
INSERT: table 4031cea0, filled 28/521 rv 80a80a94 ==> name="importbootenv" value="echo Importing environment from mmc${mmcdev} ...; env import -t ${loadaddr} ${filesize}"
INSERT: table 4031cea0, filled 29/521 rv 80a827a4 ==> name="loadbootenv" value="fatload mmc ${mmcdev} ${loadaddr} ${bootenvfile}"
INSERT: table 4031cea0, filled 30/521 rv 80a81bec ==> name="loadimage" value="load ${devtype} ${bootpart} ${loadaddr} ${bootdir}/${bootfile}"
INSERT: table 4031cea0, filled 31/521 rv 80a81f84 ==> name="loadfdt" value="load ${devtype} ${bootpart} ${fdtaddr} ${bootdir}/${fdtfile}"
INSERT: table 4031cea0, filled 32/521 rv 80a80ad0 ==> name="envboot" value="mmc dev ${mmcdev}; if mmc rescan; then echo SD/MMC found on device ${mmcdev};if run loadbootscript; then run bootscript;else if run loadbootenv; then echo Loaded env from ${bootenvfile};run importbootenv;fi;if test -n $uenvcmd; then echo Running uenvcmd ...;run uenvcmd;fi;fi;fi;"
INSERT: table 4031cea0, filled 33/521 rv 80a82934 ==> name="mmcloados" value="run args_mmc; if test ${boot_fdt} = yes || test ${boot_fdt} = try; then if run loadfdt; then bootz ${loadaddr} - ${fdtaddr}; else if test ${boot_fdt} = try; then bootz; else echo WARN: Cannot load the DT; fi; fi; else bootz; fi;"
INSERT: table 4031cea0, filled 34/521 rv 80a82538 ==> name="mmcboot" value="mmc dev ${mmcdev}; setenv devnum ${mmcdev}; setenv devtype mmc; if mmc rescan; then echo SD/MMC found on device ${mmcdev};if run loadimage; then if test ${boot_fit} -eq 1; then run loadfit; else run mmcloados;fi;fi;fi;"
INSERT: table 4031cea0, filled 35/521 rv 80a803a0 ==> name="boot_fit" value="0"
INSERT: table 4031cea0, filled 36/521 rv 80a81548 ==> name="fit_loadaddr" value="0x88000000"
INSERT: table 4031cea0, filled 37/521 rv 80a82614 ==> name="fit_bootfile" value="fitImage.itb"
INSERT: table 4031cea0, filled 38/521 rv 80a82164 ==> name="update_to_fit" value="setenv loadaddr ${fit_loadaddr}; setenv bootfile ${fit_bootfile}"
INSERT: table 4031cea0, filled 39/521 rv 80a80fbc ==> name="args_fit" value="setenv bootargs console=${console} "
INSERT: table 4031cea0, filled 40/521 rv 80a823f8 ==> name="loadfit" value="run args_fit; bootm ${loadaddr}#${fdtfile};"
INSERT: table 4031cea0, filled 41/521 rv 80a82470 ==> name="console" value="ttyO2,115200n8"
INSERT: table 4031cea0, filled 42/521 rv 80a81764 ==> name="fdtfile" value="undefined"
INSERT: table 4031cea0, filled 43/521 rv 80a826b4 ==> name="reboot_image" value="boot"
INSERT: table 4031cea0, filled 44/521 rv 80a82038 ==> name="boot_os" value="0"
INSERT: table 4031cea0, filled 45/521 rv 80a82650 ==> name="bootpart" value="0:2"
INSERT: table 4031cea0, filled 46/521 rv 80a80238 ==> name="bootdir" value="/boot"
INSERT: table 4031cea0, filled 47/521 rv 80a81584 ==> name="bootfile" value="zImage"
INSERT: table 4031cea0, filled 48/521 rv 80a80f58 ==> name="usbtty" value="cdc_acm"
INSERT: table 4031cea0, filled 49/521 rv 80a8169c ==> name="vram" value="16M"
DELETE CANDIDATE: "partitions"
hdelete: DELETE key "partitions"
DELETE ERROR ##############################
DELETE CANDIDATE: "optargs"
hdelete: DELETE key "optargs"
DELETE ERROR ##############################
INSERT: table 4031cea0, filled 50/521 rv 80a804f4 ==> name="dofastboot" value="0"
INSERT: table 4031cea0, filled 50/521 rv 80a80440 ==> name="loadbootscript" value="fatload mmc ${mmcdev} ${loadaddr} boot.scr"
INSERT: table 4031cea0, filled 50/521 rv 80a80da0 ==> name="bootscript" value="echo Running bootscript from mmc${mmcdev} ...; source ${loadaddr}"
INSERT: table 4031cea0, filled 50/521 rv 80a81bec ==> name="loadimage" value="load mmc ${bootpart} ${loadaddr} ${bootdir}/${bootfile}"
INSERT: table 4031cea0, filled 50/521 rv 80a82538 ==> name="mmcboot" value="if mmc dev ${mmcdev}; then setenv devtype mmc; if mmc rescan; then echo SD/MMC found on device ${mmcdev};if run loadimage; then run loadfdt; echo Booting from mmc${mmcdev} ...; run args_mmc; bootz ${loadaddr} - ${fdtaddr}; fi; fi; fi;"
INSERT: table 4031cea0, filled 51/521 rv 80a801c0 ==> name="emmc_android_boot" value="setenv eval_bootargs setenv bootargs $bootargs; run eval_bootargs; setenv mmcdev 1; setenv fdt_part 3; setenv boot_part 9; if test $reboot_image = recovery; then setenv boot_part 8; setenv reboot_image boot; saveenv; fi;setenv machid fe6; mmc dev $mmcdev; mmc rescan; part start mmc ${mmcdev} ${fdt_part} fdt_start; part size mmc ${mmcdev} ${fdt_part} fdt_size; part start mmc ${mmcdev} ${boot_part} boot_start; part size mmc ${mmcdev} ${boot_part} boot_size; mmc read ${fdtaddr} ${fdt_start} ${fdt_size}; mmc read ${loadaddr} ${boot_start} ${boot_size}; echo Booting from eMMC ...; bootm $loadaddr $loadaddr $fdtaddr;"
INSERT: table 4031cea0, filled 52/521 rv 80a82754 ==> name="findfdt" value="if test $board_name = omap5_uevm; then setenv fdtfile omap5-uevm.dtb; fi; if test $board_name = dra7xx; then setenv fdtfile dra7-evm.dtb; fi;if test $board_name = dra72x-revc; then setenv fdtfile dra72-evm-revc.dtb; fi;if test $board_name = dra72x; then setenv fdtfile dra72-evm.dtb; fi;if test $board_name = dra71x; then setenv fdtfile dra71-evm.dtb; fi;if test $board_name = beagle_x15; then setenv fdtfile am57xx-beagle-x15.dtb; fi;if test $board_name = beagle_x15_revb1; then setenv fdtfile am57xx-beagle-x15-revb1.dtb; fi;if test $board_name = am57xx_evm; then setenv fdtfile am57xx-evm.dtb; fi;if test $board_name = am57xx_evm_reva3; then setenv fdtfile am57xx-evm-reva3.dtb; fi;if test $board_name = am572x_idk && test $idk_lcd = no; then setenv fdtfile am572x-idk.dtb; fi;if test $board_name = am572x_idk && test $idk_lcd = osd101t2045; then setenv fdtfile am572x-idk-lcd-osd.dtb; fi;if test $board_name = am572x_idk && test $idk_lcd = osd101t2587; then setenINSERT: table 4031cea0, filled 53/521 rv 80a825b0 ==> name="static_ip" value="${ipaddr}:${serverip}:${gatewayip}:${netmask}:${hostname}::off"
INSERT: table 4031cea0, filled 54/521 rv 80a81d18 ==> name="nfsopts" value="nolock"
INSERT: table 4031cea0, filled 55/521 rv 80a81b9c ==> name="rootpath" value="/export/rootfs"
INSERT: table 4031cea0, filled 56/521 rv 80a80594 ==> name="netloadimage" value="tftp ${loadaddr} ${bootfile}"
INSERT: table 4031cea0, filled 57/521 rv 80a815ac ==> name="netloadfdt" value="tftp ${fdtaddr} ${fdtfile}"
INSERT: table 4031cea0, filled 58/521 rv 80a81890 ==> name="netargs" value="setenv bootargs console=${console} ${optargs} root=/dev/nfs nfsroot=${serverip}:${rootpath},${nfsopts} rw ip=dhcp"
INSERT: table 4031cea0, filled 59/521 rv 80a829ac ==> name="netboot" value="echo Booting from network ...; setenv autoload no; dhcp; run netloadimage; run netloadfdt; run netargs; bootz ${loadaddr} - ${fdtaddr}"
INSERT: free(data = 80a84220)
INSERT: done
## Unknown partition table type 0
spl: no partition table found
SPL: failed to boot from all boot devices
### ERROR ### Please RESET the board ###

  • BTW, I also check this post, https://e2e.ti.com/support/processors-group/processors/f/processors-forum/799637/linux-am5718-spl-failed-to-boot-from-all-boot-devices and it doesn't works for me. The "SPL / TPL  ---> [ ]   Only use malloc_simple functions" was disabled in our .config.

  • Kevin,

    My opinion, please check these items first

    1. Does EVB has the same issue on class10 SDCARD?

    2. Class 10 SD Card (Ultra High Speed )may works in high speed mode, please check 1.8V UHS voltage system.

    https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1167723/tda4vm-q1-can-we-skip-gpio_usd_pwr_en-and-always-feed-3-3v-to-sd-card

    Gibbs

  • Gibbs, this issue may be crystal changing from 19.2MHz to 20MHz related. We could boot from class10 SDCARD with crystal 19.2MHz, but it failed after changing to 20.0MHz crystal.

    1. We don't have EVM.

    2. I do the following changes, it is still not bootable.

    diff --git a/board-support/u-boot/arch/arm/dts/dra72-evm-common.dtsi b/board-support/u-boot/arch/arm/dts/dra72-evm-common.dtsi
    index c59edf9..ab1baa1 100644
    --- a/board-support/u-boot/arch/arm/dts/dra72-evm-common.dtsi
    +++ b/board-support/u-boot/arch/arm/dts/dra72-evm-common.dtsi
    @@ -37,6 +37,15 @@
                    enable-active-high;
                    gpio = <&pcf_gpio_21 5 GPIO_ACTIVE_HIGH>;
            };
    +       evm_1v8: fixedregulator-1v8 {
    +               compatible = "regulator-fixed";
    +               regulator-name = "evm_1v8";
    +               //vin-supply = <&evm_3v3_sd>;
    +               regulator-min-microvolt = <1800000>;
    +               regulator-max-microvolt = <1800000>;
    +               regulator-always-on;
    +               regulator-boot-on;
    +       };
    
            extcon_usb1: extcon_usb1 {
                    compatible = "linux,extcon-usb-gpio";
    @@ -565,23 +574,18 @@
            status = "okay";
            pinctrl-names = "default";
            pinctrl-0 = <&mmc1_pins_default>;
    -       vmmc-supply = <&evm_3v3_sd>;
    -       vmmc_aux-supply = <&ldo1_reg>;
    +       vmmc-supply = <&evm_1v8>;
    +       //vmmc_aux-supply = <&ldo1_reg>;
            bus-width = <4>;
            /*
             * SDCD signal is not being used here - using the fact that GPIO mode
             * is a viable alternative
             */
            cd-gpios = <&gpio6 27 GPIO_ACTIVE_LOW>;
    -       max-frequency = <192000000>;
    -       pinctrl-names = "default", "hs", "sdr12", "sdr25", "sdr50", "ddr50", "sdr104";
    +       max-frequency = <200000000>;
    +       pinctrl-names = "default", "hs";
            pinctrl-0 = <&mmc1_pins_default>;
            pinctrl-1 = <&mmc1_pins_hs>;
    -       pinctrl-2 = <&mmc1_pins_sdr12>;
    -       pinctrl-3 = <&mmc1_pins_sdr25>;
    -       pinctrl-4 = <&mmc1_pins_sdr50>;
    -       pinctrl-5 = <&mmc1_pins_ddr50>;
    -       pinctrl-6 = <&mmc1_pins_sdr104 &mmc1_iodelay_sdr104_conf>;
     };
    
    diff --git a/board-support/u-boot/configs/dra7xx_evm_nodt_defconfig b/board-support/u-boot/configs/dra7xx_evm_nodt_defconfig
    index 9c13366..f4161fc 100644
    --- a/board-support/u-boot/configs/dra7xx_evm_nodt_defconfig
    +++ b/board-support/u-boot/configs/dra7xx_evm_nodt_defconfig
    @@ -46,3 +46,6 @@ CONFIG_OF_BOARD_SETUP=y
     CONFIG_DRA7_DSPEVE_OPP_HIGH=y
     CONFIG_DRA7_IVA_OPP_HIGH=y
     CONFIG_DRA7_GPU_OPP_HIGH=y
    +CONFIG_OF_CONTROL=y
    +CONFIG_OF_EMBED=y
    +CONFIG_DEFAULT_DEVICE_TREE="dra72-evm"
    

    Do you have any idea, thanks!

  • Hi Gibbs  , could you help on this, thanks!

  • Hi, Kevin

    I'm a little bit confuse your question, follow this thread which you post before, I try to clarify your issue to check relationship again

    https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1168532/dra725-how-to-change-crystal-clock-frequency-from-19-2-mhz-to-20-0mhz/4403261#4403261

    The story should be like this.

    Step1. If crystal (OSC0 crystal) = 19.2Mhz, SD Class 10 & Class 4 BOOT well? (y/n)

    Step2. And then, You modify crystal (OSC0 crystal) from 19.2MHz to 20MHz on you "customized board" 

    Step3. After rework crystal (OSC0 crystal) = 20.0Mhz,  you found SD class 10 boot fail, how about class 4 SD?

    Step4 if you copy the boot file to on board eMMC, and then switch to eMMC boot, boot is fine even (OSC0 crystal) = 20.0Mhz)? (y/n)

    My opinion, SD boot fail just appearance, How to modify software code to match (OSC0 crystal) = 20.0Mhz is root cause problem.(y/n)

    max-frequency = <192000000>, "max-frequency" should be max "fop(clk)", not OSC0 crystal frequency, please check sheet p.306, SDR1041,

    UHS SD should be work fine. but for MMC1, The max frequency should be keep 192MHz 

    pinctrl-names should be keep :

    pinctrl-names = "default", "hs", "sdr12", "sdr25", "sdr50", "ddr50", "sdr104";

    Hi, 

    May you also join this discussion to help me solve this problem.

    Many Thanks

    Slight smile

    Gibbs

  • Hi Gibbs,

    Sorry for making you confused. 

    Step1. If crystal (OSC0 crystal) = 19.2Mhz, SD Class 10 & Class 4 BOOT well? 

    [Kevin] yes.

    Step3. After rework crystal (OSC0 crystal) = 20.0Mhz,  you found SD class 10 boot fail, how about class 4 SD? 

    [Kevin] class 4 SD boot fine.

    Step4 if you copy the boot file to on board eMMC, and then switch to eMMC boot, boot is fine even (OSC0 crystal) = 20.0Mhz)?

    [Kevin] yes, the SOC with OSC0 crystal(20MHz) boot fine from eMMC.

    My opinion, SD boot fail just appearance, How to modify software code to match (OSC0 crystal) = 20.0Mhz is root cause problem.

    [Kevin] I'm not pretty sure, because let's compare test1 with test2 and it seems like OSC(19.2MHz -> 20MHz) doesn't matter. But let's compare test3 with test4 and it seems like OSC does matter.I make a test matrix with the same uboot(w/o compiled with dts).

    DRA725 with 19.2MHz DRA725 with 20MHz
    class 4 SD boot fine(test1) boot fine(test2)
    class 10 SD boot fine(test3) boot NG(test4)

    Gibbs, I have questions for you

    1. what version of dra72x datasheet are you watching, I'm watching the version https://www.ti.com/lit/ug/spruic2d/spruic2d.pdf ?

    2. our original uboot compiled is without "CONFIG_OF_CONTROL=y" in .config, is it meaning the compiled uboot without dts? I'm not familiar with uboot, could you tell me what the difference is between compiling uboot with dts and w/o dts?

    3. even I build uboot with original dts, the mmc speed is still HS(MMC_TIMING_SD_HS), is it correct?

    I add debug log in mmc_startup and enable CONFIG_OF_CONTROL as follows:

    diff --git a/board-support/u-boot/configs/dra7xx_evm_nodt_defconfig b/board-support/u-boot/configs/dra7xx_evm_nodt_defconfig
    index 9c13366..f4161fc 100644
    --- a/board-support/u-boot/configs/dra7xx_evm_nodt_defconfig
    +++ b/board-support/u-boot/configs/dra7xx_evm_nodt_defconfig
    @@ -46,3 +46,6 @@ CONFIG_OF_BOARD_SETUP=y
     CONFIG_DRA7_DSPEVE_OPP_HIGH=y
     CONFIG_DRA7_IVA_OPP_HIGH=y
     CONFIG_DRA7_GPU_OPP_HIGH=y
    +CONFIG_OF_CONTROL=y
    +CONFIG_OF_EMBED=y
    +CONFIG_DEFAULT_DEVICE_TREE="dra72-evm"
    diff --git a/board-support/u-boot/drivers/mmc/mmc.c b/board-support/u-boot/drivers/mmc/mmc.c
    index 0670b16..b8c60f8 100644
    --- a/board-support/u-boot/drivers/mmc/mmc.c
    +++ b/board-support/u-boot/drivers/mmc/mmc.c
    @@ -1934,6 +1934,7 @@ static int mmc_startup(struct mmc *mmc)
     #if !defined(CONFIG_SPL_BUILD) || defined(CONFIG_SPL_LIBDISK_SUPPORT)
            part_init(&mmc->block_dev);
     #endif
    +       printf("%s %d, kevin timing %u\n",__func__,__LINE__,mmc->timing);
    
            return 0;
     }
    

    U-Boot SPL 2016.05 (Nov 15 2022 - 23:47:28)
    DRA722-GP ES2.1
    ** First descriptor is NOT a primary desc on 0:1 **
    mmc_startup 1937, kevin timing 2
    MMC Device 1 not found
    *** Warning - No MMC card found, using default environment
    
    Trying to boot from MMC1
    MMC Device 1 not found
    *** Warning - No MMC card found, using default environment
    
    ** Partition 1 not valid on device 0 **
    spl_register_fat_device: fat register err - -1
    spl_load_image_fat: error reading image u-boot.img, err - -1
    MMC Device 1 not found
    *** Warning - No MMC card found, using default environment
    
    spl: no partition table found
    SPL: failed to boot from all boot devices
    ### ERROR ### Please RESET the board ###

  • Hi Gibbs,

    We do another compare old DRA725(CTRL_WKUP_ID_CODE 0x0B9BC02F, read from register 0x4AE0C204) with new DRA725(CTRL_WKUP_ID_CODE 0x2B9BC02F), it's wired that old DRA725 boot fine with class 10 SD, but not new DRA725. Do you have any clue with this test?

    DRA725 ES1.0 (

    (CTRL_WKUP_ID_CODE 0x0B9BC02F)

    DRA725 ES2.1

    (CTRL_WKUP_ID_CODE 0x2B9BC02F)

    class 10 SD boot fine boot NG
  • Hi, TI expert

    Base on previously discussion with KC, I write some conclusion (note) as below :

    (1) Customer Root Problems :

    SD Class 10 boot fail on DRA725 ES2.1, crystal (OSC0 crystal) has changed to 20.0Mhz.

    I check device marking is DRA725BMGABCQ1 is correct, This chip should be ES2.1 version.

    (2) Customer Software (SDK) version :

    u-boot: U-Boot SPL 2016.05 + Linux kernel: 4.4.45

    (3) Test Condition :

    a. DRA725 ES1.0 with OSC0 crystal = 19.2 MHz,  Class 4 & Class 10 SD boot fine. 

    b. DRA725 ES1.0 with OSC0 crystal = 20.0 MHz,  Class 4 & Class 10 SD boot fine. 

    c. DRA725 ES2.1 with OSC0 crystal = 19.2 MHz,  Class 4 & Class 10 SD boot fine.

    c. DRA725 ES2.1 with OSC0 crystal = 20.0 MHz,  Class 4 SD boots fine, but Class 10 SD boot failure.

    (4) Error message as below.

    U-Boot SPL 2016.05 (Nov 11 2022 - 10:18:50)
    DRA722-GP ES2.1
    CMD_SEND:0
                    ARG                      0x00000000
                    MMC_RSP_NONE
    CMD_SEND:8
                    ARG                      0x000001AA
                    MMC_RSP_R1,5,6,7         0x000001AA
    CMD_SEND:55
                    ARG                      0x00000000
                    MMC_RSP_R1,5,6,7         0x00000120
    CMD_SEND:41
                    ARG                      0x40300000
                    MMC_RSP_R3,4             0x00FF8000
    CMD_SEND:55
                    ARG                      0x00000000
                    MMC_RSP_R1,5,6,7         0x00000120
    CMD_SEND:41
                    ARG                      0x40300000
                    MMC_RSP_R3,4             0xC0FF8000
    CMD_SEND:2
                    ARG                      0x00000000
                    MMC_RSP_R2               0x87494F33
                                             0x54453420
                                             0x10090B50
                                             0x0101695B
    
                                            DUMPING DATA
                                            000 - 87 49 4F 33
                                            004 - 54 45 34 20
                                            008 - 10 09 0B 50
                                            012 - 01 01 69 5B
    CMD_SEND:3
                    ARG                      0x00000000
                    MMC_RSP_R1,5,6,7         0x59B40520
    CMD_SEND:9
                    ARG                      0x59B40000
                    MMC_RSP_R2               0x400E0032
                                             0x5B590000
                                             0xE8FF7F80
                                             0x0A4000AF
    
                                            DUMPING DATA
                                            000 - 40 0E 00 32
                                            004 - 5B 59 00 00
                                            008 - E8 FF 7F 80
                                            012 - 0A 40 00 AF
    CMD_SEND:13
                    ARG                      0x59B40000
                    MMC_RSP_R1,5,6,7         0x00000700
    CURR STATE:3
    CMD_SEND:7
                    ARG                      0x59B40000
                    MMC_RSP_R1,5,6,7         0x00000700
    CMD_SEND:55
                    ARG                      0x59B40000
                    MMC_RSP_R1,5,6,7         0x00000920
    CMD_SEND:51
                    ARG                      0x00000000
                    MMC_RSP_R1,5,6,7         0x00000920
    CMD_SEND:6
                    ARG                      0x00FFFFF1
                    MMC_RSP_R1,5,6,7         0x00000900
    CMD_SEND:6
                    ARG                      0x80FFFFF1
                    MMC_RSP_R1,5,6,7         0x00000900
    CMD_SEND:55
                    ARG                      0x59B40000
                    MMC_RSP_R1,5,6,7         0x00000920
    CMD_SEND:6
                    ARG                      0x00000002
                    MMC_RSP_R1,5,6,7         0x00000920
    CMD_SEND:16
                    ARG                      0x00000200
                    MMC_RSP_R1,5,6,7         0x00000900
    CMD_SEND:17
                    ARG                      0x00000000
                    MMC_RSP_R1,5,6,7         0x00000900
    part_init: try 'EFI': ret=-1
    CMD_SEND:16
                    ARG                      0x00000200
                    MMC_RSP_R1,5,6,7         0x00000900
    CMD_SEND:17
                    ARG                      0x00000000
                    MMC_RSP_R1,5,6,7         0x00000900
    part_init: try 'DOS': ret=-1
    CMD_SEND:16
                    ARG                      0x00000200
                    MMC_RSP_R1,5,6,7         0x00000900
    CMD_SEND:18
                    ARG                      0x00000040
                    MMC_RSP_R1,5,6,7         0x00000900
    CMD_SEND:12
                    ARG                      0x00000000
                    MMC_RSP_R1b              0x00000900
    ** First descriptor is NOT a primary desc on 0:1 **
    part_init: try 'ISO': ret=-1
    mmc_init: 0, time 262
    MMC Device 1 not found
    *** Warning - No MMC card found, using default environment
    
    Destroy Hash Table: 4031cea0 table = 00000000
    Create Hash Table: N=512
    INSERT: table 4031cea0, filled 1/521 rv 80a83ea4 ==> name="bootargs" value="androidboot.serialno=${serial#} console=ttyS0,115200 androidboot.console=ttyS0 androidboot.hardware=jacinto6evmboard"
    INSERT: table 4031cea0, filled 2/521 rv 80a82734 ==> name="bootcmd" value="switch_dtb;run mmcboot;"
    INSERT: table 4031cea0, filled 3/521 rv 80a82f90 ==> name="bootdelay" value="2"
    INSERT: table 4031cea0, filled 4/521 rv 80a82310 ==> name="baudrate" value="115200"
    INSERT: table 4031cea0, filled 5/521 rv 80a81b2c ==> name="arch" value="arm"
    INSERT: table 4031cea0, filled 6/521 rv 80a83328 ==> name="cpu" value="armv7"
    INSERT: table 4031cea0, filled 7/521 rv 80a82ae0 ==> name="board" value="dra7xx"
    INSERT: table 4031cea0, filled 8/521 rv 80a81de8 ==> name="board_name" value="dra7xx"
    INSERT: table 4031cea0, filled 9/521 rv 80a833b4 ==> name="vendor" value="ti"
    INSERT: table 4031cea0, filled 10/521 rv 80a8397c ==> name="soc" value="omap5"
    INSERT: table 4031cea0, filled 11/521 rv 80a82e14 ==> name="loadaddr" value="0x82000000"
    INSERT: table 4031cea0, filled 12/521 rv 80a82798 ==> name="kernel_addr_r" value="0x82000000"
    INSERT: table 4031cea0, filled 13/521 rv 80a83134 ==> name="fdtaddr" value="0x88000000"
    INSERT: table 4031cea0, filled 14/521 rv 80a820f4 ==> name="fdt_addr_r" value="0x88000000"
    INSERT: table 4031cea0, filled 15/521 rv 80a82f7c ==> name="rdaddr" value="0x88080000"
    INSERT: table 4031cea0, filled 16/521 rv 80a834b8 ==> name="ramdisk_addr_r" value="0x88080000"
    INSERT: table 4031cea0, filled 17/521 rv 80a81f8c ==> name="scriptaddr" value="0x80000000"
    INSERT: table 4031cea0, filled 18/521 rv 80a81dfc ==> name="pxefile_addr_r" value="0x80100000"
    INSERT: table 4031cea0, filled 19/521 rv 80a8176c ==> name="bootm_size" value="0x10000000"
    INSERT: table 4031cea0, filled 20/521 rv 80a82298 ==> name="boot_fdt" value="try"
    INSERT: table 4031cea0, filled 21/521 rv 80a81c30 ==> name="mmcdev" value="0"
    INSERT: table 4031cea0, filled 22/521 rv 80a8293c ==> name="mmcrootfstype" value="ext4 rootwait"
    INSERT: table 4031cea0, filled 23/521 rv 80a821a8 ==> name="finduuid" value="part uuid mmc ${bootpart} uuid"
    INSERT: table 4031cea0, filled 24/521 rv 80a83f1c ==> name="args_mmc" value="run finduuid;setenv bootargs console=${console} ${optargs} root=PARTUUID=${uuid} rw rootfstype=${mmcrootfstype} consoleblank=0 omapdrm.num_crtc=2 drm.debug=0xff"
    INSERT: table 4031cea0, filled 25/521 rv 80a81910 ==> name="loadbootscript" value="load mmc ${mmcdev} ${loadaddr} boot.scr"
    INSERT: table 4031cea0, filled 26/521 rv 80a82270 ==> name="bootscript" value="echo Running bootscript from mmc${mmcdev} ...; source ${loadaddr}"
    INSERT: table 4031cea0, filled 27/521 rv 80a82b44 ==> name="bootenvfile" value="uEnv.txt"
    INSERT: table 4031cea0, filled 28/521 rv 80a81f64 ==> name="importbootenv" value="echo Importing environment from mmc${mmcdev} ...; env import -t ${loadaddr} ${filesize}"
    INSERT: table 4031cea0, filled 29/521 rv 80a83c74 ==> name="loadbootenv" value="fatload mmc ${mmcdev} ${loadaddr} ${bootenvfile}"
    INSERT: table 4031cea0, filled 30/521 rv 80a830bc ==> name="loadimage" value="load ${devtype} ${bootpart} ${loadaddr} ${bootdir}/${bootfile}"
    INSERT: table 4031cea0, filled 31/521 rv 80a83454 ==> name="loadfdt" value="load ${devtype} ${bootpart} ${fdtaddr} ${bootdir}/${fdtfile}"
    INSERT: table 4031cea0, filled 32/521 rv 80a81fa0 ==> name="envboot" value="mmc dev ${mmcdev}; if mmc rescan; then echo SD/MMC found on device ${mmcdev};if run loadbootscript; then run bootscript;else if run loadbootenv; then echo Loaded env from ${bootenvfile};run importbootenv;fi;if test -n $uenvcmd; then echo Running uenvcmd ...;run uenvcmd;fi;fi;fi;"
    INSERT: table 4031cea0, filled 33/521 rv 80a83e04 ==> name="mmcloados" value="run args_mmc; if test ${boot_fdt} = yes || test ${boot_fdt} = try; then if run loadfdt; then bootz ${loadaddr} - ${fdtaddr}; else if test ${boot_fdt} = try; then bootz; else echo WARN: Cannot load the DT; fi; fi; else bootz; fi;"
    INSERT: table 4031cea0, filled 34/521 rv 80a83a08 ==> name="mmcboot" value="mmc dev ${mmcdev}; setenv devnum ${mmcdev}; setenv devtype mmc; if mmc rescan; then echo SD/MMC found on device ${mmcdev};if run loadimage; then if test ${boot_fit} -eq 1; then run loadfit; else run mmcloados;fi;fi;fi;"
    INSERT: table 4031cea0, filled 35/521 rv 80a81870 ==> name="boot_fit" value="0"
    INSERT: table 4031cea0, filled 36/521 rv 80a82a18 ==> name="fit_loadaddr" value="0x88000000"
    INSERT: table 4031cea0, filled 37/521 rv 80a83ae4 ==> name="fit_bootfile" value="fitImage.itb"
    INSERT: table 4031cea0, filled 38/521 rv 80a83634 ==> name="update_to_fit" value="setenv loadaddr ${fit_loadaddr}; setenv bootfile ${fit_bootfile}"
    INSERT: table 4031cea0, filled 39/521 rv 80a8248c ==> name="args_fit" value="setenv bootargs console=${console} "
    INSERT: table 4031cea0, filled 40/521 rv 80a838c8 ==> name="loadfit" value="run args_fit; bootm ${loadaddr}#${fdtfile};"
    INSERT: table 4031cea0, filled 41/521 rv 80a83940 ==> name="console" value="ttyO2,115200n8"
    INSERT: table 4031cea0, filled 42/521 rv 80a82c34 ==> name="fdtfile" value="undefined"
    INSERT: table 4031cea0, filled 43/521 rv 80a83b84 ==> name="reboot_image" value="boot"
    INSERT: table 4031cea0, filled 44/521 rv 80a83508 ==> name="boot_os" value="0"
    INSERT: table 4031cea0, filled 45/521 rv 80a83b20 ==> name="bootpart" value="0:2"
    INSERT: table 4031cea0, filled 46/521 rv 80a81708 ==> name="bootdir" value="/boot"
    INSERT: table 4031cea0, filled 47/521 rv 80a82a54 ==> name="bootfile" value="zImage"
    INSERT: table 4031cea0, filled 48/521 rv 80a82428 ==> name="usbtty" value="cdc_acm"
    INSERT: table 4031cea0, filled 49/521 rv 80a82b6c ==> name="vram" value="16M"
    DELETE CANDIDATE: "partitions"
    hdelete: DELETE key "partitions"
    DELETE ERROR ##############################
    DELETE CANDIDATE: "optargs"
    hdelete: DELETE key "optargs"
    DELETE ERROR ##############################
    INSERT: table 4031cea0, filled 50/521 rv 80a819c4 ==> name="dofastboot" value="0"
    INSERT: table 4031cea0, filled 50/521 rv 80a81910 ==> name="loadbootscript" value="fatload mmc ${mmcdev} ${loadaddr} boot.scr"
    INSERT: table 4031cea0, filled 50/521 rv 80a82270 ==> name="bootscript" value="echo Running bootscript from mmc${mmcdev} ...; source ${loadaddr}"
    INSERT: table 4031cea0, filled 50/521 rv 80a830bc ==> name="loadimage" value="load mmc ${bootpart} ${loadaddr} ${bootdir}/${bootfile}"
    INSERT: table 4031cea0, filled 50/521 rv 80a83a08 ==> name="mmcboot" value="if mmc dev ${mmcdev}; then setenv devtype mmc; if mmc rescan; then echo SD/MMC found on device ${mmcdev};if run loadimage; then run loadfdt; echo Booting from mmc${mmcdev} ...; run args_mmc; bootz ${loadaddr} - ${fdtaddr}; fi; fi; fi;"
    INSERT: table 4031cea0, filled 51/521 rv 80a81690 ==> name="emmc_android_boot" value="setenv eval_bootargs setenv bootargs $bootargs; run eval_bootargs; setenv mmcdev 1; setenv fdt_part 3; setenv boot_part 9; if test $reboot_image = recovery; then setenv boot_part 8; setenv reboot_image boot; saveenv; fi;setenv machid fe6; mmc dev $mmcdev; mmc rescan; part start mmc ${mmcdev} ${fdt_part} fdt_start; part size mmc ${mmcdev} ${fdt_part} fdt_size; part start mmc ${mmcdev} ${boot_part} boot_start; part size mmc ${mmcdev} ${boot_part} boot_size; mmc read ${fdtaddr} ${fdt_start} ${fdt_size}; mmc read ${loadaddr} ${boot_start} ${boot_size}; echo Booting from eMMC ...; bootm $loadaddr $loadaddr $fdtaddr;"
    INSERT: table 4031cea0, filled 52/521 rv 80a83c24 ==> name="findfdt" value="if test $board_name = omap5_uevm; then setenv fdtfile omap5-uevm.dtb; fi; if test $board_name = dra7xx; then setenv fdtfile dra7-evm.dtb; fi;if test $board_name = dra72x-revc; then setenv fdtfile dra72-evm-revc.dtb; fi;if test $board_name = dra72x; then setenv fdtfile dra72-evm.dtb; fi;if test $board_name = dra71x; then setenv fdtfile dra71-evm.dtb; fi;if test $board_name = beagle_x15; then setenv fdtfile am57xx-beagle-x15.dtb; fi;if test $board_name = beagle_x15_revb1; then setenv fdtfile am57xx-beagle-x15-revb1.dtb; fi;if test $board_name = am57xx_evm; then setenv fdtfile am57xx-evm.dtb; fi;if test $board_name = am57xx_evm_reva3; then setenv fdtfile am57xx-evm-reva3.dtb; fi;if test $board_name = am572x_idk && test $idk_lcd = no; then setenv fdtfile am572x-idk.dtb; fi;if test $board_name = am572x_idk && test $idk_lcd = osd101t2045; then setenv fdtfile am572x-idk-lcd-osd.dtb; fi;if test $board_name = am572x_idk && test $idk_lcd = osd101t2587; then setenINSERT: table 4031cea0, filled 53/521 rv 80a83a80 ==> name="static_ip" value="${ipaddr}:${serverip}:${gatewayip}:${netmask}:${hostname}::off"
    INSERT: table 4031cea0, filled 54/521 rv 80a831e8 ==> name="nfsopts" value="nolock"
    INSERT: table 4031cea0, filled 55/521 rv 80a8306c ==> name="rootpath" value="/export/rootfs"
    INSERT: table 4031cea0, filled 56/521 rv 80a81a64 ==> name="netloadimage" value="tftp ${loadaddr} ${bootfile}"
    INSERT: table 4031cea0, filled 57/521 rv 80a82a7c ==> name="netloadfdt" value="tftp ${fdtaddr} ${fdtfile}"
    INSERT: table 4031cea0, filled 58/521 rv 80a82d60 ==> name="netargs" value="setenv bootargs console=${console} ${optargs} root=/dev/nfs nfsroot=${serverip}:${rootpath},${nfsopts} rw ip=dhcp"
    INSERT: table 4031cea0, filled 59/521 rv 80a83e7c ==> name="netboot" value="echo Booting from network ...; setenv autoload no; dhcp; run netloadimage; run netloadfdt; run netargs; bootz ${loadaddr} - ${fdtaddr}"
    INSERT: free(data = 80a801a8)
    INSERT: done
    Initial value for argc=3
    Final value for argc=3
    Trying to boot from MMC1
    spl: mmc boot mode: fs
    MMC Device 1 not found
    *** Warning - No MMC card found, using default environment
    
    Destroy Hash Table: 4031cea0 table = 80a81678
    Create Hash Table: N=512
    INSERT: table 4031cea0, filled 1/521 rv 80a829d4 ==> name="bootargs" value="androidboot.serialno=${serial#} console=ttyS0,115200 androidboot.console=ttyS0 androidboot.hardware=jacinto6evmboard"
    INSERT: table 4031cea0, filled 2/521 rv 80a81264 ==> name="bootcmd" value="switch_dtb;run mmcboot;"
    INSERT: table 4031cea0, filled 3/521 rv 80a81ac0 ==> name="bootdelay" value="2"
    INSERT: table 4031cea0, filled 4/521 rv 80a80e40 ==> name="baudrate" value="115200"
    INSERT: table 4031cea0, filled 5/521 rv 80a8065c ==> name="arch" value="arm"
    INSERT: table 4031cea0, filled 6/521 rv 80a81e58 ==> name="cpu" value="armv7"
    INSERT: table 4031cea0, filled 7/521 rv 80a81610 ==> name="board" value="dra7xx"
    INSERT: table 4031cea0, filled 8/521 rv 80a80918 ==> name="board_name" value="dra7xx"
    INSERT: table 4031cea0, filled 9/521 rv 80a81ee4 ==> name="vendor" value="ti"
    INSERT: table 4031cea0, filled 10/521 rv 80a824ac ==> name="soc" value="omap5"
    INSERT: table 4031cea0, filled 11/521 rv 80a81944 ==> name="loadaddr" value="0x82000000"
    INSERT: table 4031cea0, filled 12/521 rv 80a812c8 ==> name="kernel_addr_r" value="0x82000000"
    INSERT: table 4031cea0, filled 13/521 rv 80a81c64 ==> name="fdtaddr" value="0x88000000"
    INSERT: table 4031cea0, filled 14/521 rv 80a80c24 ==> name="fdt_addr_r" value="0x88000000"
    INSERT: table 4031cea0, filled 15/521 rv 80a81aac ==> name="rdaddr" value="0x88080000"
    INSERT: table 4031cea0, filled 16/521 rv 80a81fe8 ==> name="ramdisk_addr_r" value="0x88080000"
    INSERT: table 4031cea0, filled 17/521 rv 80a80abc ==> name="scriptaddr" value="0x80000000"
    INSERT: table 4031cea0, filled 18/521 rv 80a8092c ==> name="pxefile_addr_r" value="0x80100000"
    INSERT: table 4031cea0, filled 19/521 rv 80a8029c ==> name="bootm_size" value="0x10000000"
    INSERT: table 4031cea0, filled 20/521 rv 80a80dc8 ==> name="boot_fdt" value="try"
    INSERT: table 4031cea0, filled 21/521 rv 80a80760 ==> name="mmcdev" value="0"
    INSERT: table 4031cea0, filled 22/521 rv 80a8146c ==> name="mmcrootfstype" value="ext4 rootwait"
    INSERT: table 4031cea0, filled 23/521 rv 80a80cd8 ==> name="finduuid" value="part uuid mmc ${bootpart} uuid"
    INSERT: table 4031cea0, filled 24/521 rv 80a82a4c ==> name="args_mmc" value="run finduuid;setenv bootargs console=${console} ${optargs} root=PARTUUID=${uuid} rw rootfstype=${mmcrootfstype} consoleblank=0 omapdrm.num_crtc=2 drm.debug=0xff"
    INSERT: table 4031cea0, filled 25/521 rv 80a80440 ==> name="loadbootscript" value="load mmc ${mmcdev} ${loadaddr} boot.scr"
    INSERT: table 4031cea0, filled 26/521 rv 80a80da0 ==> name="bootscript" value="echo Running bootscript from mmc${mmcdev} ...; source ${loadaddr}"
    INSERT: table 4031cea0, filled 27/521 rv 80a81674 ==> name="bootenvfile" value="uEnv.txt"
    INSERT: table 4031cea0, filled 28/521 rv 80a80a94 ==> name="importbootenv" value="echo Importing environment from mmc${mmcdev} ...; env import -t ${loadaddr} ${filesize}"
    INSERT: table 4031cea0, filled 29/521 rv 80a827a4 ==> name="loadbootenv" value="fatload mmc ${mmcdev} ${loadaddr} ${bootenvfile}"
    INSERT: table 4031cea0, filled 30/521 rv 80a81bec ==> name="loadimage" value="load ${devtype} ${bootpart} ${loadaddr} ${bootdir}/${bootfile}"
    INSERT: table 4031cea0, filled 31/521 rv 80a81f84 ==> name="loadfdt" value="load ${devtype} ${bootpart} ${fdtaddr} ${bootdir}/${fdtfile}"
    INSERT: table 4031cea0, filled 32/521 rv 80a80ad0 ==> name="envboot" value="mmc dev ${mmcdev}; if mmc rescan; then echo SD/MMC found on device ${mmcdev};if run loadbootscript; then run bootscript;else if run loadbootenv; then echo Loaded env from ${bootenvfile};run importbootenv;fi;if test -n $uenvcmd; then echo Running uenvcmd ...;run uenvcmd;fi;fi;fi;"
    INSERT: table 4031cea0, filled 33/521 rv 80a82934 ==> name="mmcloados" value="run args_mmc; if test ${boot_fdt} = yes || test ${boot_fdt} = try; then if run loadfdt; then bootz ${loadaddr} - ${fdtaddr}; else if test ${boot_fdt} = try; then bootz; else echo WARN: Cannot load the DT; fi; fi; else bootz; fi;"
    INSERT: table 4031cea0, filled 34/521 rv 80a82538 ==> name="mmcboot" value="mmc dev ${mmcdev}; setenv devnum ${mmcdev}; setenv devtype mmc; if mmc rescan; then echo SD/MMC found on device ${mmcdev};if run loadimage; then if test ${boot_fit} -eq 1; then run loadfit; else run mmcloados;fi;fi;fi;"
    INSERT: table 4031cea0, filled 35/521 rv 80a803a0 ==> name="boot_fit" value="0"
    INSERT: table 4031cea0, filled 36/521 rv 80a81548 ==> name="fit_loadaddr" value="0x88000000"
    INSERT: table 4031cea0, filled 37/521 rv 80a82614 ==> name="fit_bootfile" value="fitImage.itb"
    INSERT: table 4031cea0, filled 38/521 rv 80a82164 ==> name="update_to_fit" value="setenv loadaddr ${fit_loadaddr}; setenv bootfile ${fit_bootfile}"
    INSERT: table 4031cea0, filled 39/521 rv 80a80fbc ==> name="args_fit" value="setenv bootargs console=${console} "
    INSERT: table 4031cea0, filled 40/521 rv 80a823f8 ==> name="loadfit" value="run args_fit; bootm ${loadaddr}#${fdtfile};"
    INSERT: table 4031cea0, filled 41/521 rv 80a82470 ==> name="console" value="ttyO2,115200n8"
    INSERT: table 4031cea0, filled 42/521 rv 80a81764 ==> name="fdtfile" value="undefined"
    INSERT: table 4031cea0, filled 43/521 rv 80a826b4 ==> name="reboot_image" value="boot"
    INSERT: table 4031cea0, filled 44/521 rv 80a82038 ==> name="boot_os" value="0"
    INSERT: table 4031cea0, filled 45/521 rv 80a82650 ==> name="bootpart" value="0:2"
    INSERT: table 4031cea0, filled 46/521 rv 80a80238 ==> name="bootdir" value="/boot"
    INSERT: table 4031cea0, filled 47/521 rv 80a81584 ==> name="bootfile" value="zImage"
    INSERT: table 4031cea0, filled 48/521 rv 80a80f58 ==> name="usbtty" value="cdc_acm"
    INSERT: table 4031cea0, filled 49/521 rv 80a8169c ==> name="vram" value="16M"
    DELETE CANDIDATE: "partitions"
    hdelete: DELETE key "partitions"
    DELETE ERROR ##############################
    DELETE CANDIDATE: "optargs"
    hdelete: DELETE key "optargs"
    DELETE ERROR ##############################
    INSERT: table 4031cea0, filled 50/521 rv 80a804f4 ==> name="dofastboot" value="0"
    INSERT: table 4031cea0, filled 50/521 rv 80a80440 ==> name="loadbootscript" value="fatload mmc ${mmcdev} ${loadaddr} boot.scr"
    INSERT: table 4031cea0, filled 50/521 rv 80a80da0 ==> name="bootscript" value="echo Running bootscript from mmc${mmcdev} ...; source ${loadaddr}"
    INSERT: table 4031cea0, filled 50/521 rv 80a81bec ==> name="loadimage" value="load mmc ${bootpart} ${loadaddr} ${bootdir}/${bootfile}"
    INSERT: table 4031cea0, filled 50/521 rv 80a82538 ==> name="mmcboot" value="if mmc dev ${mmcdev}; then setenv devtype mmc; if mmc rescan; then echo SD/MMC found on device ${mmcdev};if run loadimage; then run loadfdt; echo Booting from mmc${mmcdev} ...; run args_mmc; bootz ${loadaddr} - ${fdtaddr}; fi; fi; fi;"
    INSERT: table 4031cea0, filled 51/521 rv 80a801c0 ==> name="emmc_android_boot" value="setenv eval_bootargs setenv bootargs $bootargs; run eval_bootargs; setenv mmcdev 1; setenv fdt_part 3; setenv boot_part 9; if test $reboot_image = recovery; then setenv boot_part 8; setenv reboot_image boot; saveenv; fi;setenv machid fe6; mmc dev $mmcdev; mmc rescan; part start mmc ${mmcdev} ${fdt_part} fdt_start; part size mmc ${mmcdev} ${fdt_part} fdt_size; part start mmc ${mmcdev} ${boot_part} boot_start; part size mmc ${mmcdev} ${boot_part} boot_size; mmc read ${fdtaddr} ${fdt_start} ${fdt_size}; mmc read ${loadaddr} ${boot_start} ${boot_size}; echo Booting from eMMC ...; bootm $loadaddr $loadaddr $fdtaddr;"
    INSERT: table 4031cea0, filled 52/521 rv 80a82754 ==> name="findfdt" value="if test $board_name = omap5_uevm; then setenv fdtfile omap5-uevm.dtb; fi; if test $board_name = dra7xx; then setenv fdtfile dra7-evm.dtb; fi;if test $board_name = dra72x-revc; then setenv fdtfile dra72-evm-revc.dtb; fi;if test $board_name = dra72x; then setenv fdtfile dra72-evm.dtb; fi;if test $board_name = dra71x; then setenv fdtfile dra71-evm.dtb; fi;if test $board_name = beagle_x15; then setenv fdtfile am57xx-beagle-x15.dtb; fi;if test $board_name = beagle_x15_revb1; then setenv fdtfile am57xx-beagle-x15-revb1.dtb; fi;if test $board_name = am57xx_evm; then setenv fdtfile am57xx-evm.dtb; fi;if test $board_name = am57xx_evm_reva3; then setenv fdtfile am57xx-evm-reva3.dtb; fi;if test $board_name = am572x_idk && test $idk_lcd = no; then setenv fdtfile am572x-idk.dtb; fi;if test $board_name = am572x_idk && test $idk_lcd = osd101t2045; then setenv fdtfile am572x-idk-lcd-osd.dtb; fi;if test $board_name = am572x_idk && test $idk_lcd = osd101t2587; then setenINSERT: table 4031cea0, filled 53/521 rv 80a825b0 ==> name="static_ip" value="${ipaddr}:${serverip}:${gatewayip}:${netmask}:${hostname}::off"
    INSERT: table 4031cea0, filled 54/521 rv 80a81d18 ==> name="nfsopts" value="nolock"
    INSERT: table 4031cea0, filled 55/521 rv 80a81b9c ==> name="rootpath" value="/export/rootfs"
    INSERT: table 4031cea0, filled 56/521 rv 80a80594 ==> name="netloadimage" value="tftp ${loadaddr} ${bootfile}"
    INSERT: table 4031cea0, filled 57/521 rv 80a815ac ==> name="netloadfdt" value="tftp ${fdtaddr} ${fdtfile}"
    INSERT: table 4031cea0, filled 58/521 rv 80a81890 ==> name="netargs" value="setenv bootargs console=${console} ${optargs} root=/dev/nfs nfsroot=${serverip}:${rootpath},${nfsopts} rw ip=dhcp"
    INSERT: table 4031cea0, filled 59/521 rv 80a829ac ==> name="netboot" value="echo Booting from network ...; setenv autoload no; dhcp; run netloadimage; run netloadfdt; run netargs; bootz ${loadaddr} - ${fdtaddr}"
    INSERT: free(data = 80a85610)
    INSERT: done
    ## Unknown partition table type 0
    ** Partition 1 not valid on device 0 **
    spl_register_fat_device: fat register err - -1
    spl_load_image_fat: error reading image u-boot.img, err - -1
    MMC Device 1 not found
    *** Warning - No MMC card found, using default environment
    
    Destroy Hash Table: 4031cea0 table = 80a801a8
    Create Hash Table: N=512
    INSERT: table 4031cea0, filled 1/521 rv 80a829d4 ==> name="bootargs" value="androidboot.serialno=${serial#} console=ttyS0,115200 androidboot.console=ttyS0 androidboot.hardware=jacinto6evmboard"
    INSERT: table 4031cea0, filled 2/521 rv 80a81264 ==> name="bootcmd" value="switch_dtb;run mmcboot;"
    INSERT: table 4031cea0, filled 3/521 rv 80a81ac0 ==> name="bootdelay" value="2"
    INSERT: table 4031cea0, filled 4/521 rv 80a80e40 ==> name="baudrate" value="115200"
    INSERT: table 4031cea0, filled 5/521 rv 80a8065c ==> name="arch" value="arm"
    INSERT: table 4031cea0, filled 6/521 rv 80a81e58 ==> name="cpu" value="armv7"
    INSERT: table 4031cea0, filled 7/521 rv 80a81610 ==> name="board" value="dra7xx"
    INSERT: table 4031cea0, filled 8/521 rv 80a80918 ==> name="board_name" value="dra7xx"
    INSERT: table 4031cea0, filled 9/521 rv 80a81ee4 ==> name="vendor" value="ti"
    INSERT: table 4031cea0, filled 10/521 rv 80a824ac ==> name="soc" value="omap5"
    INSERT: table 4031cea0, filled 11/521 rv 80a81944 ==> name="loadaddr" value="0x82000000"
    INSERT: table 4031cea0, filled 12/521 rv 80a812c8 ==> name="kernel_addr_r" value="0x82000000"
    INSERT: table 4031cea0, filled 13/521 rv 80a81c64 ==> name="fdtaddr" value="0x88000000"
    INSERT: table 4031cea0, filled 14/521 rv 80a80c24 ==> name="fdt_addr_r" value="0x88000000"
    INSERT: table 4031cea0, filled 15/521 rv 80a81aac ==> name="rdaddr" value="0x88080000"
    INSERT: table 4031cea0, filled 16/521 rv 80a81fe8 ==> name="ramdisk_addr_r" value="0x88080000"
    INSERT: table 4031cea0, filled 17/521 rv 80a80abc ==> name="scriptaddr" value="0x80000000"
    INSERT: table 4031cea0, filled 18/521 rv 80a8092c ==> name="pxefile_addr_r" value="0x80100000"
    INSERT: table 4031cea0, filled 19/521 rv 80a8029c ==> name="bootm_size" value="0x10000000"
    INSERT: table 4031cea0, filled 20/521 rv 80a80dc8 ==> name="boot_fdt" value="try"
    INSERT: table 4031cea0, filled 21/521 rv 80a80760 ==> name="mmcdev" value="0"
    INSERT: table 4031cea0, filled 22/521 rv 80a8146c ==> name="mmcrootfstype" value="ext4 rootwait"
    INSERT: table 4031cea0, filled 23/521 rv 80a80cd8 ==> name="finduuid" value="part uuid mmc ${bootpart} uuid"
    INSERT: table 4031cea0, filled 24/521 rv 80a82a4c ==> name="args_mmc" value="run finduuid;setenv bootargs console=${console} ${optargs} root=PARTUUID=${uuid} rw rootfstype=${mmcrootfstype} consoleblank=0 omapdrm.num_crtc=2 drm.debug=0xff"
    INSERT: table 4031cea0, filled 25/521 rv 80a80440 ==> name="loadbootscript" value="load mmc ${mmcdev} ${loadaddr} boot.scr"
    INSERT: table 4031cea0, filled 26/521 rv 80a80da0 ==> name="bootscript" value="echo Running bootscript from mmc${mmcdev} ...; source ${loadaddr}"
    INSERT: table 4031cea0, filled 27/521 rv 80a81674 ==> name="bootenvfile" value="uEnv.txt"
    INSERT: table 4031cea0, filled 28/521 rv 80a80a94 ==> name="importbootenv" value="echo Importing environment from mmc${mmcdev} ...; env import -t ${loadaddr} ${filesize}"
    INSERT: table 4031cea0, filled 29/521 rv 80a827a4 ==> name="loadbootenv" value="fatload mmc ${mmcdev} ${loadaddr} ${bootenvfile}"
    INSERT: table 4031cea0, filled 30/521 rv 80a81bec ==> name="loadimage" value="load ${devtype} ${bootpart} ${loadaddr} ${bootdir}/${bootfile}"
    INSERT: table 4031cea0, filled 31/521 rv 80a81f84 ==> name="loadfdt" value="load ${devtype} ${bootpart} ${fdtaddr} ${bootdir}/${fdtfile}"
    INSERT: table 4031cea0, filled 32/521 rv 80a80ad0 ==> name="envboot" value="mmc dev ${mmcdev}; if mmc rescan; then echo SD/MMC found on device ${mmcdev};if run loadbootscript; then run bootscript;else if run loadbootenv; then echo Loaded env from ${bootenvfile};run importbootenv;fi;if test -n $uenvcmd; then echo Running uenvcmd ...;run uenvcmd;fi;fi;fi;"
    INSERT: table 4031cea0, filled 33/521 rv 80a82934 ==> name="mmcloados" value="run args_mmc; if test ${boot_fdt} = yes || test ${boot_fdt} = try; then if run loadfdt; then bootz ${loadaddr} - ${fdtaddr}; else if test ${boot_fdt} = try; then bootz; else echo WARN: Cannot load the DT; fi; fi; else bootz; fi;"
    INSERT: table 4031cea0, filled 34/521 rv 80a82538 ==> name="mmcboot" value="mmc dev ${mmcdev}; setenv devnum ${mmcdev}; setenv devtype mmc; if mmc rescan; then echo SD/MMC found on device ${mmcdev};if run loadimage; then if test ${boot_fit} -eq 1; then run loadfit; else run mmcloados;fi;fi;fi;"
    INSERT: table 4031cea0, filled 35/521 rv 80a803a0 ==> name="boot_fit" value="0"
    INSERT: table 4031cea0, filled 36/521 rv 80a81548 ==> name="fit_loadaddr" value="0x88000000"
    INSERT: table 4031cea0, filled 37/521 rv 80a82614 ==> name="fit_bootfile" value="fitImage.itb"
    INSERT: table 4031cea0, filled 38/521 rv 80a82164 ==> name="update_to_fit" value="setenv loadaddr ${fit_loadaddr}; setenv bootfile ${fit_bootfile}"
    INSERT: table 4031cea0, filled 39/521 rv 80a80fbc ==> name="args_fit" value="setenv bootargs console=${console} "
    INSERT: table 4031cea0, filled 40/521 rv 80a823f8 ==> name="loadfit" value="run args_fit; bootm ${loadaddr}#${fdtfile};"
    INSERT: table 4031cea0, filled 41/521 rv 80a82470 ==> name="console" value="ttyO2,115200n8"
    INSERT: table 4031cea0, filled 42/521 rv 80a81764 ==> name="fdtfile" value="undefined"
    INSERT: table 4031cea0, filled 43/521 rv 80a826b4 ==> name="reboot_image" value="boot"
    INSERT: table 4031cea0, filled 44/521 rv 80a82038 ==> name="boot_os" value="0"
    INSERT: table 4031cea0, filled 45/521 rv 80a82650 ==> name="bootpart" value="0:2"
    INSERT: table 4031cea0, filled 46/521 rv 80a80238 ==> name="bootdir" value="/boot"
    INSERT: table 4031cea0, filled 47/521 rv 80a81584 ==> name="bootfile" value="zImage"
    INSERT: table 4031cea0, filled 48/521 rv 80a80f58 ==> name="usbtty" value="cdc_acm"
    INSERT: table 4031cea0, filled 49/521 rv 80a8169c ==> name="vram" value="16M"
    DELETE CANDIDATE: "partitions"
    hdelete: DELETE key "partitions"
    DELETE ERROR ##############################
    DELETE CANDIDATE: "optargs"
    hdelete: DELETE key "optargs"
    DELETE ERROR ##############################
    INSERT: table 4031cea0, filled 50/521 rv 80a804f4 ==> name="dofastboot" value="0"
    INSERT: table 4031cea0, filled 50/521 rv 80a80440 ==> name="loadbootscript" value="fatload mmc ${mmcdev} ${loadaddr} boot.scr"
    INSERT: table 4031cea0, filled 50/521 rv 80a80da0 ==> name="bootscript" value="echo Running bootscript from mmc${mmcdev} ...; source ${loadaddr}"
    INSERT: table 4031cea0, filled 50/521 rv 80a81bec ==> name="loadimage" value="load mmc ${bootpart} ${loadaddr} ${bootdir}/${bootfile}"
    INSERT: table 4031cea0, filled 50/521 rv 80a82538 ==> name="mmcboot" value="if mmc dev ${mmcdev}; then setenv devtype mmc; if mmc rescan; then echo SD/MMC found on device ${mmcdev};if run loadimage; then run loadfdt; echo Booting from mmc${mmcdev} ...; run args_mmc; bootz ${loadaddr} - ${fdtaddr}; fi; fi; fi;"
    INSERT: table 4031cea0, filled 51/521 rv 80a801c0 ==> name="emmc_android_boot" value="setenv eval_bootargs setenv bootargs $bootargs; run eval_bootargs; setenv mmcdev 1; setenv fdt_part 3; setenv boot_part 9; if test $reboot_image = recovery; then setenv boot_part 8; setenv reboot_image boot; saveenv; fi;setenv machid fe6; mmc dev $mmcdev; mmc rescan; part start mmc ${mmcdev} ${fdt_part} fdt_start; part size mmc ${mmcdev} ${fdt_part} fdt_size; part start mmc ${mmcdev} ${boot_part} boot_start; part size mmc ${mmcdev} ${boot_part} boot_size; mmc read ${fdtaddr} ${fdt_start} ${fdt_size}; mmc read ${loadaddr} ${boot_start} ${boot_size}; echo Booting from eMMC ...; bootm $loadaddr $loadaddr $fdtaddr;"
    INSERT: table 4031cea0, filled 52/521 rv 80a82754 ==> name="findfdt" value="if test $board_name = omap5_uevm; then setenv fdtfile omap5-uevm.dtb; fi; if test $board_name = dra7xx; then setenv fdtfile dra7-evm.dtb; fi;if test $board_name = dra72x-revc; then setenv fdtfile dra72-evm-revc.dtb; fi;if test $board_name = dra72x; then setenv fdtfile dra72-evm.dtb; fi;if test $board_name = dra71x; then setenv fdtfile dra71-evm.dtb; fi;if test $board_name = beagle_x15; then setenv fdtfile am57xx-beagle-x15.dtb; fi;if test $board_name = beagle_x15_revb1; then setenv fdtfile am57xx-beagle-x15-revb1.dtb; fi;if test $board_name = am57xx_evm; then setenv fdtfile am57xx-evm.dtb; fi;if test $board_name = am57xx_evm_reva3; then setenv fdtfile am57xx-evm-reva3.dtb; fi;if test $board_name = am572x_idk && test $idk_lcd = no; then setenv fdtfile am572x-idk.dtb; fi;if test $board_name = am572x_idk && test $idk_lcd = osd101t2045; then setenv fdtfile am572x-idk-lcd-osd.dtb; fi;if test $board_name = am572x_idk && test $idk_lcd = osd101t2587; then setenINSERT: table 4031cea0, filled 53/521 rv 80a825b0 ==> name="static_ip" value="${ipaddr}:${serverip}:${gatewayip}:${netmask}:${hostname}::off"
    INSERT: table 4031cea0, filled 54/521 rv 80a81d18 ==> name="nfsopts" value="nolock"
    INSERT: table 4031cea0, filled 55/521 rv 80a81b9c ==> name="rootpath" value="/export/rootfs"
    INSERT: table 4031cea0, filled 56/521 rv 80a80594 ==> name="netloadimage" value="tftp ${loadaddr} ${bootfile}"
    INSERT: table 4031cea0, filled 57/521 rv 80a815ac ==> name="netloadfdt" value="tftp ${fdtaddr} ${fdtfile}"
    INSERT: table 4031cea0, filled 58/521 rv 80a81890 ==> name="netargs" value="setenv bootargs console=${console} ${optargs} root=/dev/nfs nfsroot=${serverip}:${rootpath},${nfsopts} rw ip=dhcp"
    INSERT: table 4031cea0, filled 59/521 rv 80a829ac ==> name="netboot" value="echo Booting from network ...; setenv autoload no; dhcp; run netloadimage; run netloadfdt; run netargs; bootz ${loadaddr} - ${fdtaddr}"
    INSERT: free(data = 80a84220)
    INSERT: done
    ## Unknown partition table type 0
    spl: no partition table found
    SPL: failed to boot from all boot devices
    ### ERROR ### Please RESET the board ###

    We check ID Core value (CTRL_WKUP_ID_CODE) for DRA725BMGABCQ1, it returns wrong value "0x2B9BC02F", this value should be "DRA71x SR2.1"

    Our question is :

    1.  Does it matter for this wrong ID Core? 

    2.  Do we need to change SDK version  when device from ES1.0 to ES2.1?

    3.  May you give us some debug suggestion for ES2.1 Class 10 SD boot fail problems?

    4.  Do we need to do some SW modify in u-boot or linux device tree for OSC0 crystal setting? If yes, How?

    Many Thanks

    Gibbs  

  • Kevin,

    May you also check  "CTRL_CORE_BOOTSTRAP" register, bit 9:8 ?

    Many Thanks]

    Gibbs

  • Gibbs,

    I read "CTRL_CORE_BOOTSTRAP" register for 20MHz crystal, it's value is 0xad98, bit 9:8 is 0x1, which means 20MHz, it's correct.

    for 19.2 MHz, it's value is 0x8318, bit 9:8 is 0x3, 0x3 means 19.2 MHz, it's correct.

    I also read register CM_CLKSEL_SYS(0x4ae06110), for 20MHz, it's value is 0x2, which means 20MHz.

    And 19.2 MHz, it's value is 0x4, which means 19.2MHz.

  • Hi, Keerthy

    I summarize some notes.

    (1) Customer use DRA725 ES2.1 for their customized board,  OSC0 crystal = 20.0 MHZ.  UBoot class 10 SD card Boot fail (mmc1) .

    (2) Follow previously step. They swap to eMMC boot(mmc2) on the same board, eMMC boots well, and they can access eMMC1 class 10 SD Card.

    We do not know the reason Why class10 SD boot fail, it should be some u-boot problems.

    HLOS (Linux) can R/W class10 SD(mmc1), it should be not hardware issue.

    as far as I know, SD should always works on 3.3v high speed mode on their customized board 

    May you give us some correct software setting base on eMMC1 class10 SDOSC0 crystal = 20.0 MHZ (ex:u-boot device tree)

    I think Class 10  SD should be boot well, because it's not UHS-1 or UHS-II SD card.

    Many Thanks

    Gibbs

  • Gibbs,

    Thanks for all the details. Can we try a different type of SD card? Is the issue same with multiple SD cards or specific to the SD card being discussed.

    Best Regards,

    Keerthy

  • Hi, Keerthy

    Status update,

    Customer will ask the SD vendor to deliver customized industrial SD, 

    They may let us know the result as soon as they get the SD.

    Many Thanks

    Gibbs