Issue booting U-boot on i.mx28evk using openocd jtag

Hello Friends,

I am trying to boot u-boot using Olimex ARM-USB-OCD JTAG on imx28evk. The JTAG gets connected properly but failed to execute the “u-boot.bin” image loaded in RAM.

Below are the steps:

  1. Configure the BOOT Switch in NAND boot mode

  2. Connect the JTAG with the board

  3. Open the Debug Serial Console for i.mx28 under Putty

  4. On Linux PC Machine ran the openocd using below command:

test@test-VirtualBox:~/openocd-0.7.0/tcl$ sudo openocd -f interface/olimex-arm-usb-ocd.cfg -f board/imx28evk.cfg

Open On-Chip Debugger 0.7.0 (2014-03-17-18:03)

Licensed under GNU GPL v2

For bug reports, read

http://openocd.sourceforge.net/doc/doxygen/bugs.html

Info : only one transport option; autoselect ‘jtag’

trst_and_srst separate srst_gates_jtag trst_push_pull srst_open_drain connect_deassert_srst

adapter_nsrst_delay: 100

jtag_ntrst_delay: 100

dcc downloads are enabled

adapter speed: 9000 kHz

test_init

Info : clock speed 6000 kHz

Info : JTAG tap: imx28.cpu tap/device found: 0x079264f3 (mfg: 0x279, part: 0x7926, ver: 0x0)

Info : Embedded ICE version 6

Info : imx28.cpu: hardware has 2 breakpoint/watchpoint units

  1. Open the Telnet to JTAG at port 4444. Ran the Init for imx28 and load the image

test@test-VirtualBox:~/openocd-0.7.0/tcl$ telnet localhost 4444

Trying 127.0.0.1…

Connected to localhost.

Escape character is ‘^]’.

Open On-Chip Debugger

imx28evk_init

target state: halted

target halted in Thumb state due to debug-request, current mode: Supervisor

cpsr: 0x00000073 pc: 0xfffe6478

MMU: disabled, D-Cache: disabled, I-Cache: disabled

load_image u-boot.bin 0x40000100

No working memory available. Specify -work-area-phys to target.

not enough working area available(requested 24)

no working area available, falling back to memory writes

444820 bytes written at address 0x40000100

downloaded 444820 bytes in 97.281677s (4.465 KiB/s)

  1. Execute the loaded image:

resume 0x40000100

  1. Nothing comes out of Debug Console it remains blank.

Can anyone share their views what I am missing here? I have referred links: https://community.freescale.com/thread/302010 and https://community.freescale.com/thread/309446 but still couldnt able to boot u-boot from RAM.

Additional Info Output at telnet prompt:

scan_chain

TapName Enabled IdCode Expected IrLen IrCap IrMask


0 imx28.cpu Y 0x079264f3 0x079264f3 4 0x01 0x0f

Thank you in Advance. Feel free to share if you need further information.

Regards,

Ankur

Hello Friends,

I even tried loading the supplied u-boot.bin image but still couldnt make any progress. Any suggestions are welcome.

Thank you,

Ankur

Hello Ankur,

  • - your board boots OK from SD card?
  • - One post in your first link mentions the 4.2V regulators. I assume this does not apply to you (because you’re powering from USB)?
  • There is an [explanation (some might call it a rant) on the denx site about how it makes no sense to try to run uboot from RAM, because the first thing uboot does is to initialize the clocks and DRAM control registers, and (maybe) it expects to find them in a reset state (not the state imx28evk_init left them in).

    However the first poster did say he got it to run…](The U-Boot Documentation — Das U-Boot unknown version documentation)

    Hello Hsutherl,

    I appreciate your response.

    your board boots OK from SD card?

    Yes, the board boots good with SD Card.

    One post in your first link mentions the 4.2V regulators. I assume this does not apply to you (because you’re powering from USB)?

    Yes, it doesnot apply to me.

    In addition, I found strange issue that if I kept boot mode for imx28evk into JTAG by configuring the boot switches to 0 1 1 0. In this case I got following error:

    test@test-VirtualBox:~/openocd/openocd-0.7.0/tcl$ sudo openocd -f interface/olimex-arm-usb-ocd.cfg -f board/imx28evk.cfg

    Open On-Chip Debugger 0.7.0 (2014-03-17-18:03)

    Licensed under GNU GPL v2

    For bug reports, read

    http://openocd.sourceforge.net/doc/doxygen/bugs.html

    Info : only one transport option; autoselect ‘jtag’

    trst_and_srst separate srst_gates_jtag trst_push_pull srst_open_drain connect_deassert_srst

    adapter_nsrst_delay: 100

    jtag_ntrst_delay: 100

    dcc downloads are enabled

    adapter speed: 9000 kHz

    3145728

    Info : clock speed 6000 kHz

    Error: JTAG scan chain interrogation failed: all zeroes

    Error: Check JTAG interface, timings, target power, etc.

    Error: Trying to use configured scan chain anyway…

    Error: imx28.cpu: IR capture error; saw 0x00 not 0x01

    Warn : Bypassing JTAG setup events due to errors

    Info : Embedded ICE version 0

    Error: unknown EmbeddedICE version (comms ctrl: 0x00000000)

    Info : imx28.cpu: hardware has 2 breakpoint/watchpoint units

    In other boot modes, I can connect successfully with JTAG. Configuring it to NAND boot mode, I got below message:

    test@test-VirtualBox:~/openocd/openocd-0.7.0/tcl$ sudo openocd -f interface/olimex-arm-usb-ocd.cfg -f board/imx28evk.cfg

    Open On-Chip Debugger 0.7.0 (2014-03-17-18:03)

    Licensed under GNU GPL v2

    For bug reports, read

    http://openocd.sourceforge.net/doc/doxygen/bugs.html

    Info : only one transport option; autoselect ‘jtag’

    trst_and_srst separate srst_gates_jtag trst_push_pull srst_open_drain connect_deassert_srst

    adapter_nsrst_delay: 100

    jtag_ntrst_delay: 100

    dcc downloads are enabled

    adapter speed: 9000 kHz

    3145728

    Info : clock speed 6000 kHz

    Info : JTAG tap: imx28.cpu tap/device found: 0x079264f3 (mfg: 0x279, part: 0x7926, ver: 0x0)

    Info : Embedded ICE version 6

    Info : imx28.cpu: hardware has 2 breakpoint/watchpoint units

    My concern is in which mode I have to kept the boot switches to load and boot the u-boot.bin file? Kindly share if you need more information.

    Regards,

    Ankur.