AnsweredAssumed Answered

Serial downloader jump error

Question asked by Carlo Tomasin on Jun 7, 2017
Latest reply on Jun 26, 2017 by Carlo Tomasin
Branched to a new discussion

Hi,

we are working on a custom board based on i.MX6 quad plus.

The board is working well, but about 10 % of our prototypes share the same problem: they do not boot.

When connected by means of a USB cable to a Ubuntu development machine all the boards are enumerated as:

 

Bus 001 Device 028: ID 15a2:0054 Freescale Semiconductor, Inc. i.MX 6Dual/6Quad SystemOnChip in RecoveryMode

 

So we would like to investigate the failure cause and the first step is to load a firmware by USB: when we load u-boot by means of Serial Downloader Protocol (imx_usb_loader) we have some difference.

Loading and booting works well on the "good" boards but fails on the "jump" command on the "faulty" boards (see log). We see the difference by looking at u-boot output on the board serial console.

 

Looking at imx_usb_loader source code seems like loading u-boot in RAM is working (RAM content is verified against original file after load) but the jump command fails.

Any idea about the problem origin?

 

Carlo

 

imx_usb_loader output: working boards

# ./imx_usb
config file <.//imx_usb.conf>
[...]
config file <.//mx6_usb_work.conf>
parse .//mx6_usb_work.conf
Interface 0 claimed
HAB security state: development mode (0x56787856)
== work item
filename u-boot.imx
load_size 0 bytes
load_addr 0x13f00000
dcd 1
clear_dcd 0
plug 1
jump_mode 0
jump_addr 0x00000000
== end work item
loading DCD table @0x910000

<<<-184, 1024 bytes>>>
succeeded (status 0x128a8a12)
HAB security state: development mode (0x56787856)
== work item
filename u-boot.imx
load_size 0 bytes
load_addr 0x13f00000
dcd 0
clear_dcd 1
plug 0
jump_mode 2
jump_addr 0x00000000
== end work item
clear dcd_ptr=0x177ff42c

loading binary file(u-boot.imx) to 177ff400, skip=0, fsize=6ec00 type=aa

<<<453632, 453632 bytes>>>
succeeded (status 0x88888888)
jumping to 0x177ff400

 

imx_usb_loader output: faulty boards

[the same as in working boards, but the last lines are]

jumping to 0x177ff400

j4 in err=0, last_trans=64  33 22 0a 00

Outcomes