I have been working with imx_usb to be able to download a u-boot + an initramfs linux kernel to RAM in our iMX6 based board
This board in this case may be totally unprogrammed.
Me too initially was unable to get anything to boot if I wanted to download a 2:nd file.
However, now I got it working if I use a modified mx6_usb_work.conf file:
Here is my .conf file (mx6_usb_work.conf):
flir_imx6_board
#hid/bulk,[old_header,]max packet size, {ram start, ram size}(repeat valid ram areas)
hid,1024,0x10000000,1G,0x00907000,0x31000
# Note; only dcd as first step (setup ram)
u-boot-neco-preloadedrecovery.imx:dcd
# u-boot-neco.imx:dcd,plug,jump header
# Then load a kernel with initramfs (self contained linux) at known address
recovery:load 0x10a00000
# Now, we load a u-boot that expects preloaded software at known adress
# Note, to make this boot, the clear_dcd field seems necessary
u-boot-neco-preloadedrecovery.imx:clear_dcd,load,plug,jump header
With "clear_dcd" in the last line, everything works,
downloaded u-boot (that contains an environment to bootm 0x10a00000) boots
and starts my downloaded linux ("recovery") that boots as intended.
(I run imx_usb in the folder with files
imx_usb, mx6_usb_work.conf, recovery, imx_usb.conf , u-boot-neco-preloadedrecovery.imx
as:
sudo ./imx_usb -c ./
)
Maybe usage of a "u-boot.bin" as last line would also do?
As I understand it, the difference between u-boot build artifacts .imx and .bin is that .bin does not contain a dcd table
Regards,
Ulf P