Bricked Apalis iMX6 module

Hi All,

Just wondering if anyone has come across anything like this before, I seem to have bricked an Apalis iMX6Q module permanently by loading an experimental u-boot.

I understand that my bootloader may have a problem that causes the module not to start but what is strange is that it appears some permanent damage/misconfiguration has occurred. I have tried both the freescale MfgTool2 GUI tool and the sb_loader command line tool with similar results. Both start fine in recovery mode and find the HID device, start and then fail as soon as they try to load the stock apalis bootloader into ram (see log and screen shots). If I just replace the iMX module only and both methods work fine.

What could have happened?, it almost seems like the DDR has remembered some corrupt setting… is this possible?..

Regards Paul.

Extract from MfgTool.log…

ModuleID[2] LevelID[1]: MxHidDevice::Read() Error reading from device 0x48f.
ModuleID[2] LevelID[1]: Failed to read HAB type from ROM!!!
ModuleID[2] LevelID[1]: Failed to initialize memory!
ModuleID[2] LevelID[1]: PortMgrDlg(0)--MxHidDevice--Command Boot excute failed

Debug from sb_loader…

C:\sb_loader.v1.2>sb_loader -f u-boot.imx
Found USB#VID_15A2&PID_0054#6&121F0AE7&0&4.
Reg 0x20e05a8 is initialized.
Reg 0x20e05b0 is initialized.
Reg 0x20e0524 is initialized.
. . . . .
. . . . . .
Reg 0x20e059c is initialized.
Reg 0x20e05a0 is initialized.
Reg 0x20e0750 is initialized.
Failed to initialize memory!
  Failed to run plugin u-boot.imx to the device.*

We have no experience with either of this proprietary tools you mentioned. Could you give our Toradex Easy Installer a try?

OK thanks, I will give it a go when I’m back in the office, I was more wondering if you had seen this before and what might have happened to stop the bootloader loading into ram…

Well, yeah. If you screw-up U-Boot it won’t boot anymore. Don’t know what exactly you would expect to happen otherwise.

I guess like you say you have no experience of this but normally you can always use serial recovery mode to recover a corrupted unit… that is what it is for… the Toradex Apalis iMX6 data sheet chapter 6 describes this mode…

“6. Recovery Mode
The recovery mode (USB serial loader) can be used to download new software to the Apalis iMX6 even if the bootloader is no longer capable of booting the module.”

Did you achieve to get to recovery mode and install toradex easy installer??

Hi yes thanks, just trying now and it seems to get further but still fails in the end…

The serial terminal shows this…

Commercial temperature grade DDR3 timings.
Trying to boot from USB SDP
g_dnl_register: failed!, error: -19
SDP: initialize...
SDP: handle requests...

And the windows cmd window shows the following (I’ve also tried using native Ubuntu but windows seems to get further)…

recovery-windows
config file <recovery\\\imx_usb.conf>
vid=0x15a2 pid=0x0054 file_name=mx6_usb_rom.conf
-> vid=0x1b67 pid=0x4fff file_name=mx6_usb_sdp_spl.conf
-> vid=0x1b67 pid=0x4000 file_name=mx6_usb_sdp_uboot.conf
vid=0x15a2 pid=0x0061 file_name=mx6_usb_rom.conf
-> vid=0x1b67 pid=0x4fff file_name=mx6_usb_sdp_spl.conf
-> vid=0x1b67 pid=0x4000 file_name=mx6_usb_sdp_uboot.conf
vid=0x15a2 pid=0x0076 file_name=mx7_usb_rom.conf
-> vid=0x1b67 pid=0x4000 file_name=mx7_usb_sdp_uboot.conf
vid=0x15a2 pid=0x0080 file_name=mx6ull_usb_rom.conf
-> vid=0x1b67 pid=0x4000 file_name=mx6ull_usb_sdp_uboot.conf
config file <recovery\\\mx6_usb_rom.conf>
parse recovery\\\mx6_usb_rom.conf
Trying to open device vid=0x15a2 pid=0x0054
Interface 0 claimed
HAB security state: development mode (0x56787856)
== work item
filename SPL
load_size 0 bytes
load_addr 0x13f00000
dcd 0
clear_dcd 0
plug 0
jump_mode 2
jump_addr 0x00000000
== end work item

loading binary file(SPL) to 00907400, skip=0, fsize=bc00 type=aa

<<<48128, 48128 bytes>>>
succeeded (status 0x88888888)
jumping to 0x00907400
config file <recovery\\\mx6_usb_sdp_spl.conf>
parse recovery\\\mx6_usb_sdp_spl.conf
Trying to open device vid=0x1b67 pid=0x4fff.........................
Could not open device vid=0x1b67 pid=0x4fff
Press any key to continue . . .

No, you got me wrong. We do of course have a lot of experience with recovery modes, thank you. Just not with any of those proprietary tools.

What Windows version are you using? Maybe this is your issue.

I think it is a misperception if you think Windows gets any further but ultimately it’s your call.

Have you tried using a different USB port? Using a hub vs. direct connection?

You may also find the troubleshoot section useful.

Hi, Just to make it clear these are not proprietary tools but the official NXP manufacturing tools which can be used to bring up a custom board with a blank CPU from scratch.
Going back to my original question I was just interested in how a module could become seemingly un-recoverable it was as if I the DDR had remembered some invalid settings permanently… I think in theory this should not be possible because the serial recovery mode will load a bootloader directly into ram avoiding any configuration from emmc… I’m not so worried about recovering this module as to why it happened so that I can avoid doing it again … anyway thanks for your help.

Just to make it clear these are not proprietary tools but the official NXP manufacturing tools which can be used to bring up a custom board with a blank CPU from scratch.

You may, of course, ask NXP about their “official” tooling. They do have their community here. As mentioned before we never used their proprietary tools and have no experience with it whatsoever.

Going back to my original question I was just interested in how a module could become seemingly un-recoverable it was as if I the DDR had remembered some invalid settings permanently… I think in theory this should not be possible because the serial recovery mode will load a bootloader directly into ram avoiding any configuration from emmc…

Unfortunately, this may happen as the boot ROM may still be reading certain information from the eMMC even later entering the serial downloader aka recovery mode. You may read resp. datasheet to understand the full extend of the boot ROM behaviour concerning boot flow.

I’m not so worried about recovering this module as to why it happened so that I can avoid doing it again … anyway thanks for your help.

Just avoid ever writing corrupt information to any of those boot relevant areas.