i burn the u-boot.imx(verified on board by mfgtool) to flash by command:
dd if=u-boot.imx of=/dev/mtdblock0
it return right.
then at u-boot shell, i use fuse comand to burn the efuse.
fuse prog 0 0 5 28000030
fuse prog 0 0 6 00000010
It means use ECSPI1 SS2 to boot and set BT_FUSE_SEL to 1。
the chip boot from ecsp1 now. i watched the right read timing on ecspi1 pins by Oscilloscope. it fetchs 4-kbytes from ecspi flash and i verified the data is right.
the following is the descripion from "IMX6DQPRM.pdf":
The boot ROM will copy 4Kbyte of data from Serial ROM device to internal RAM. After
checking the Image Vector Table header value (0xD1) from Program Image, the ROM
code performs a DCD check. After successful DCD extraction, the ROM code extracts
from Boot Data Structure the destination pointer and length of image to be copied to
RAM device from where code execution occurs.
the first byte of u-boot.imx is 0xd1 for the IVT header. up to now, it seems all right.
Then the ROM code performs a DCD check.
but i don't find any output on console and mfgtool find a hid-compliance device. it seems u-boot hang.
so it maybe hang at DCD check?
what's a right DCD? what's the requirement for DCD? is there length limitation for DCD?