Unbricking Apalis i.MX6 does not work


I’m trying to unbrick the Apalis i.MX6 with the following steps:

  1. Connect the recovery mode pads as stated in the manual.
  2. Connecting the Apalis OTG port to my Ubuntu USB port.
  3. Check, if the device discovered on the Ubuntu host:

cbg@cbg-vm-ubunu-16:~/toradex$ lsusb
Bus 001 Device 039: ID 15a2:0054 Freescale Semiconductor, Inc. i.MX 6Dual/6Quad SystemOnChip in RecoveryMode
  1. Build U-Boot:

cbg@cbg-vm-ubunu-16:~/toradex$ git clone -b 2016.11-toradex https://git.toradex.com/u-boot-toradex.git
cbg@cbg-vm-ubunu-16:~/toradex$ cd u-boot-toradex/
cbg@cbg-vm-ubunu-16:~/toradex/u-boot-toradex$ make ARCH=arm CROSS_COMPILE=/opt/b2qt/2.1.1/sysroots/x86_64-pokysdk-linux/usr/bin/arm-poky-linux-gnueabi/arm-poky-linux-gnueabi- apalis_imx6_defconfig
cbg@cbg-vm-ubunu-16:~/toradex/u-boot-toradex$ make ARCH=arm CROSS_COMPILE=/opt/b2qt/2.1.1/sysroots/x86_64-pokysdk-linux/usr/bin/arm-poky-linux-gnueabi/arm-poky-linux-gnueabi-
  1. Build imx_loader:

cbg@cbg-vm-ubunu-16:~/toradex$ sudo apt-get install libusb-1.0-0-dev
cbg@cbg-vm-ubunu-16:~/toradex$ git clone https://github.com/toradex/imx_loader.git    
cbg@cbg-vm-ubunu-16:~/toradex$ cd imx_loader
cbg@cbg-vm-ubunu-16:~/toradex/imx_loader$ make
  1. Try to load U-Boot to RAM:

cbg@cbg-vm-ubunu-16:~/toradex/imx_loader$ sudo ./imx_usb ../u-boot.bin

imx_loader output:

config file ./imx_usb.conf
vid=0x066f pid=0x3780 file_name=mx23_usb_work.conf
vid=0x15a2 pid=0x004f file_name=mx28_usb_work.conf
vid=0x15a2 pid=0x0052 file_name=mx50_usb_work.conf
vid=0x15a2 pid=0x0054 file_name=mx6_usb_work.conf
vid=0x15a2 pid=0x0061 file_name=mx6_usb_work.conf
vid=0x15a2 pid=0x0063 file_name=mx6_usb_work.conf
vid=0x15a2 pid=0x0041 file_name=mx51_usb_work.conf
vid=0x15a2 pid=0x004e file_name=mx53_usb_work.conf
vid=0x15a2 pid=0x006a file_name=vybrid_usb_work.conf
vid=0x066f pid=0x37ff file_name=linux_gadget.conf
config file <./mx6_usb_work.conf>
parse ./mx6_usb_work.conf
15a2:0054(mx6_qsb) bConfigurationValue =1
Interface 0 claimed
HAB security state: development mode (0x56787856)
== work item
filename ../u-boot-toradex/u-boot.bin
load_size 0 bytes
load_addr 0x00000000
dcd 1
clear_dcd 0
plug 1
jump_mode 2
jump_addr 0x00000000
== end work item
unknown load address
HAB security state: development mode (0x56787856)

I did not get a U-Boot console on the serial debug port. So I suppose the U-Boot isn’t started.
Please note that the terminal program serial port config is correct since I get a console with a
properly installed U-Boot.

Please review the above steps and tell me what’s wrong.

Best regards


Why exactly aren’t you trying it first with one of our pre-built BSP demo images as outlined in the following article on our developer website?

To add to Marcel’s answer about the easy way to do this here is what went wrong in your approach.

This page tells how to compile U-Boot. As you need a U-Boot for recovery you would need to configure it with the apalis_imx6_nospl_it_defconfig make target.

The resulting binary then is u-boot.imx. So you need to pass u-boot.imx to the imx_usb binary.

Note that for imx_usb we use the code from boundarydevices, The git repo you used is for upstreaming our contribution. Likely your imx_usb is functional though.

@max.tx: Thank you! ‘apalis_imx6_nospl_it_defconfig’ did the trick!

Max gave me the correct answer. Issue solved.

Hai ,for mine toradex imx6 apalis board USB OTG to Host computer communication not getting.

i mean in host system USB OTG is not detecting .now what to do and how to boot in recovery mode.

Would you please be so kind and ask a new question rather than hijacking this old thread?

As for your particular issue you may want to connect the proper USBO1 USB device socket to your PC rather than the FTDI USB-to-serial one. More recovery instructions may be found here.