On Friday 15 January 2010, Alan Carvalho de Assis wrote:
> Hi Fabio,
> 
> On 1/15/10, Fabio Estevam <fabioeste...@yahoo.com> wrote:
> > Hi,
> >
> > Has anyone used OpenOCD on a Freescale MX51 processor so far?
> >
> 
> I'm trying to get it working.
> 
> OpenOCD detects all TAPs, but I receive a Timeout:
> 
> Warn : imx51.SDMA: nonstandard IR value
> RCLK - adaptive
> Info : device: 4 "2232C"
> Info : deviceID: 67353760
> Info : SerialNumber: 0100480 A
> Info : Description: Signalyzer A
> Info : RCLK (adaptive clock speed) not supported - fallback to 1000 kHz
> Info : JTAG tap: imx51.DAP tap/device found: 0x1ba00477 (mfg: 0x23b, part: 
> 0xba00, ver: 0x1)
> Info : TAP imx51.SDMA does not have IDCODE
> Info : JTAG tap: imx51.SJC tap/device found: 0x0190c01d (mfg: 0x00e, part: 
> 0x190c, ver: 0x0)
> Warn : failed to disable tap

You don't have SJC-aware code to enable/disable the SDMA tap
though, do you?  What TAP were you trying to disable?


> Warn : Timeout (1000ms) waiting for ACK=OK/FAULT (got ACK=0x1) in JTAG-DP 
> transaction
> Warn : Timeout (1000ms) waiting for ACK=OK/FAULT (got ACK=0x1) in JTAG-DP 
> transaction
> Warn : Timeout (1000ms) waiting for ACK=OK/FAULT (got ACK=0x1) in JTAG-DP 
> transaction
> Warn : Timeout (1000ms) waiting for ACK=OK/FAULT (got ACK=0x1) in JTAG-DP 
> transaction

That is, it's getting JTAG_ACK_WAIT not JTAG_ACK_OK_FAULT.

Not clear what it's trying to do which is failing, but there's
a bunch of strange stuff in your config which should be fixed.
Such fixes might help.

 
> 
> This is imx51.cfg for your reference:
> 
> #--------------------------------------------------------------------------------------------------
> # Freescale i.MX51
> 
> if { [info exists CHIPNAME] } {
>    set  _CHIPNAME $CHIPNAME
> } else {
>    set  _CHIPNAME imx51
> }
> 
> # CoreSight Debug Access Port
> if { [info exists DAP_TAPID ] } {
>    set _DAP_TAPID $DAP_TAPID
> } else {
>    set _DAP_TAPID 0x1ba00477
> }
> 
> jtag newtap $_CHIPNAME DAP -irlen 4 -ircapture 0x1 -irmask 0xf \
>       -expected-id $_DAP_TAPID

I'd drop the "-ircapture 0x1 -irmask 0xf" as being superfluous;
those are the defaults.


> # SDMA / no IDCODE
> jtag newtap $_CHIPNAME SDMA -irlen 4 -ircapture 0x0 -irmask 0xf

In this case I'd drop just the "-irmask 0xf", to highlight that
you're working around some JTAG oddity for that TAP.



> # SJC
> if { [info exists SJC_TAPID ] } {
>    set _SJC_TAPID SJC_TAPID
> } else {
>    set _SJC_TAPID 0x0190c01d
> }
> 
> jtag newtap $_CHIPNAME SJC -irlen 5 -ircapture 0x1 -irmask 0x1f \
>       -expected-id $_SJC_TAPID

Again I'd drop the "-ircapture 0x1 -irmask 0x1f", it's the default.

 
> # GDB target:  Cortex-A8, using DAP
> set _TARGETNAME $_CHIPNAME.cpu
> target create $_TARGETNAME cortex_a8 -chain-position $_CHIPNAME.DAP

So far so good...


> # some TCK tycles are required to activate the DEBUG power domain
> jtag configure $_CHIPNAME.SJC -event post-reset "runtest 100"
> 
> # have the DAP "always" be active
> jtag configure $_CHIPNAME.SJC -event setup "jtag tapenable $_CHIPNAME.DAP"

Are you sure those two are correct?  Looks like you did a cut/paste
from the ICEpick support (OMAP3) ... but this chip has SJC not ICEpick.

And I don't see any event code to *enable* the DAP using SJC, so there
is no point in requesting that it be enabled.  If it's not already
present on the scan chain, you'd need to write SJC code to enable it.

(And it would be a bit more correct, as I understand things, to label
the SJC tap as "jrc" not "sjc".  Yes it does a bit more than just
switching the SDMA tap into or our of the scan chain, but so does
ICEpick on TI parts.)


> proc imx51_dbginit {target} {
>      # General Cortex A8 debug initialisation
>      cortex_a8 dbginit
> }
> 
> # Slow speed to be sure it will work
> jtag_rclk 1000
> $_TARGETNAME configure -event "reset-start" { jtag_rclk 1000 }

I take it the iMX51 is guaranteed to boot with at least an 8 MHz clock?
Or whatever ... where did that "1 MHz" number come from?

> 
> $_TARGETNAME configure -event reset-assert-post "imx51_dbginit $_TARGETNAME"

So far as I can tell, the OMAP3 should not need that "dbginit" thing,
since it should be a side effect of the examine().  And you don't seem
to have gotten to the point where you could tell if iMX51 needs it.

So I'd disable that for now.

- Dave



> #--------------------------------------------------------------------------------------------------
> 
> 
> If you want I can send a more complete debug log.
> 
> Thanks Rogerio for help me with IDCODEs.
> 
> Best Regards,
> 
> Alan
> 
_______________________________________________
Openocd-development mailing list
Openocd-development@lists.berlios.de
https://lists.berlios.de/mailman/listinfo/openocd-development

Reply via email to