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