Hi David,

On 1/15/10, David Brownell <davi...@pacbell.net> wrote:
>> 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?
>

Really I based deeply on OMAP3530 config. BTW I think SDMA is bypassed
by default, as stated on MCIMX51RM.pdf 8.2.4:

"Supports the SDMA’s DR-path-only JTAG architecture by implementing
the controller portion of its TAP (including “BYPASS” as the default
state) within the SJC"

>
>> 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.
>

I'm trying to figure out what DAP is waiting for.

>
>>
>> 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.
>

Ok

>
>> # 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.
>
>

Right

>
>> # 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.
>

Ok

>
>> # 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.
>

I'm removed it and the "Warn : failed to disable tap" goes out.

> 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.
>

Unfortunately Freescale removed "SJC guide" from final iMX51RM
documentation, I'm looking for it now.

> (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.)
>

No, I think SJC (Secure JTAG Controller) is really different of JRC.

>
>> 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?
>

I reduced this for safe detection, before I realize which SDMA was
disabled, I think SDMA core was running at least 1:8 as on i.MX31:

"The SDMA core has a design restriction of a 1:8 or greater ratio of
the TCK and SDMA core clocks. Thus for a 66 MHz SDMA core clock, the
TCK maximum frequency is limited to 8.25 MHz (= 66/8)."

>>
>> $_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.
>

Ok, I did it, but still receiving same timeout message. Then I need to
find a way to active DAP correctly.

This is my current iMX51.cfg:

# 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 -expected-id $_DAP_TAPID

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

# SJC
if { [info exists SJC_TAPID ] } {
   set _SJC_TAPID SJC_TAPID
} else {
   set _SJC_TAPID 0x0190c01d
}

jtag newtap $_CHIPNAME SJC -irlen 5 -expected-id $_SJC_TAPID

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

Regards,

Alan
_______________________________________________
Openocd-development mailing list
Openocd-development@lists.berlios.de
https://lists.berlios.de/mailman/listinfo/openocd-development

Reply via email to