Hi Lionel,

On 08/04/14 21:16, Lionel Ains wrote:
> It seems you got a working procedure for running a U-Boot RAM image sent via
> JTAG. I could find your script in the oocd sources (under
> http://sourceforge.net/p/openocd/code/ci/v0.8.0-rc1/tree/tcl/target/armada370.cfg).
> But can you please also provide the other scripts and procedure to upload
> U-Boot to RAM and start it using openocd?

Sure, but it is not pretty :-(

This method relies on using the u-boot code as supplied by Marvell (I am
currently using the 2009.08-a370-2012_Q4.0 release from them). There is
no mainline u-boot support for the Armada 370 family yet.

Here is the core of what I use:

  proc cpu_start_state {} {
        # ARM state, supervisor mode, irq and fiq disable
        reg cpsr 0x000000d3
        # MMU off, cache off
        arm mcr 15 0 1 0 0 0x78
  }

  source [find tools/openocd/platforms/armada/armada370.tcl]

  proc meminit {} {
        cpu_start_state
        load_image 
u-boot-2009.08-a370-2012_Q4.0/tools/bin_hdr_armada_370/bin_hdr.elf
        reg pc 0x40004030
        resume
  }

  proc loaduboot {} {
        # HACK, get mmu enabled again, to allow running load_image
        halt
        reg cpsr 0x200001f3
        arm mcr 15 0 1 0 0 0x00c5307d
        reg pc 0xffff77fe
        step
        cpu_start_state
        # HACK - end

        load_image u-boot-2009.08-a370-2012_Q4.0/u-boot
        reg pc 0x600000
        #resume
  }


To load and run u-boot I will start up openocd and then run the following
commands:

  halt
  meminit
  loaduboot

I doesn't really feel totally right to me. The mmu on and off states
are a pain to deal with (thus the HACK section above which relies on
running the CPU BOOTrom code again). But none the less this manages
to load and run u-boot for me.

Note also that I have had to work around the issue I raised in
https://www.mail-archive.com/[email protected]/msg04454.html
I just locally hacked src/target/cortex_a.c to ignore this, until
I can figure out a more correct fix.

Regards
Greg



------------------------------------------------------------------------------
Put Bad Developers to Shame
Dominate Development with Jenkins Continuous Integration
Continuously Automate Build, Test & Deployment 
Start a new project now. Try Jenkins in the cloud.
http://p.sf.net/sfu/13600_Cloudbees
_______________________________________________
OpenOCD-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/openocd-devel

Reply via email to