Hello, I can’t recover Apalis iMX6 SoM after failed u-boot upgrade.
I can put SoM to recovery mode by shorting pads as described in the datasheet, but after invoking “./update.sh -m 0 -d”, it ends with “w3 in err=-7, last_trans=0 00 00 00 00”, like this:
Can you tell me which Software version and BSP you are using?
How did you arrive to this failed u-boot upgrade? Did you flashed the wrong software or your own software?
I will suggest you to put SoM to recovery mode by shorting pads as described in datasheet and powering it on (and not by resetting).
I flashed no-spl colibri-imx6 u-boot build to emmc by accident (in hurry) - so totally wrong - mismatching board configuration and wrong no-spl image. U-boot was my own build, I do it on daily basis, this was just accident.
I tried recovery with BSP V2.6 and V2.7.4.
I short the recovery pads, then turn on the power supply. I can see Freescale VID:PID on USB bus (lsusb), I can start update.sh, it sees the board too, but it fails while downloading u-boot image as written in my initial message.
Can you try to use the latest 2.8 image for recovery, if you get that U-Boot running in DDR you still can insert an SD card to do the ‘run setupdate; run update’ with a 2.6 image.
I flashed a colibri_imx6_nospl_defconfig 2016.11 U-Boot on an Apalis iMX6 and was able to recover from that module by forcing recovery mode and then using above procedure.
Alternatively you could try to use the attached patch on top U-Boot 2016.11 2.8b1. This will build U-Boot with SPL. Use apalis_imx6_defconfig + config changes as outlined in the patch. Put the Apalis in recovery and run
sudo ./imx_usb
(The SPL runs in i.MX internal RAM and is thus unaffected by a wrongly setup DDR RAM.)
This tries to delete the beginning of U-Boot, in my testing this sometimes fails with printing ERROR, so I had to execute it twice until I got an ‘OK’ output.
After that try to recover with the regular ‘update -d’.
A failed attempt looks as follows:
MMC erase: trying to erase IVT ...
Caution! Your devices Erase group is 0x400
The erase range would be change to 0x0~0x3ff
Timeout waiting for DAT0 to go high!
mmc erase failed
ERROR
SDP: initialize...
SDP: handle requests...
while a good one looks:
MMC erase: trying to erase IVT ...
Caution! Your devices Erase group is 0x400
The erase range would be change to 0x0~0x3ff
OK
SDP: initialize...
SDP: handle requests...
Max
Note that the test points are on the PCB backside, so in order to use them one would have to solder a wire there, add a short and release the short before updating. So that path is impractical.