Oh the joys of Open Source. I got myself a Flyswatter2 to debug stuff on the BeagleBone. Now I'm debugging #OpenOCD instead of my own stuff. I'm beginning to understand why a Lauterbach is so expensive 🙂
Oh the joys of Open Source.
Oh the joys of Open Source.
31 thoughts on “Oh the joys of Open Source.”
Is JTAG clocking enabled by default in 4.2/4.3?
Oh it works just fine if you debug only Linux. But there are bugs in the TTB handling when TTBCR.N != 0 that make VA/PA translations fail, plus some bogus special cases based on MIDR "partnum" bitfield that I don't understand. I pushed patches into the gerrit, lets see what this resolves to.
Matthias Welwarsky thanks for reminding me the goodness of t32.... Sometimes, one just forgets how good one's world is ;)...
Nishanth Menon well I actually have access to a trace32, but I can hardly justify buying Cortex M support for my little pet project. Speaking of which, I am now struggling with the IcePick-D on the AM3359, I need to setup the chain so that both the A8 and the M3 are accessible simultaneously. Any help would be greatly appreciated ☺
Matthias Welwarsky I'd suggest e2e.TI.com , but you might kick me..
Nishanth Menon I've looked there. Lots of good information, but surprisingly little questions (let alone answers) about accessing the wakeup-m3 via JTAG. Oh well, maybe I should ask there...
Matthias Welwarsky the guy I spoke to who uses jtag on cm3 uses ccs.
Nishanth Menon do you have a pointer to an IcePick-D reference manual? Or a delta to IcePick-C?
Felipe Balbi Jason Kridner ?
I don't think icepick docs are publicly available. But yeah, openocd is cool but not a real product; I found out you can't rely on it working. Then again there aren't that many contributors on openocd. And getting anything done for these devices is usually a PITA because the documentation is scattered all over and not all of it is available to the public. A sorry state 🙁
I think icepick C had more documentation around, but D was pretty bad.
Felipe Balbi There's a public document about ICEPick-C, which is quite detailed. But there seems to be nothing google-able for Icepick-D. The differences seem to be subtly more than just "D supports more TAPs".
Yeah. There are some other differences just not sure how much I can say :-p it would be great to have that publicly available. In any case, I did a few cleanups on icepick support on openocd. I just never had the time to fiddle with the m3s 🙁
Btw, what sort of issues are you facing? #openocd on freenode is pretty helpful.
I'm trying to enable both the Cortex-A8 and the Wakeup-M3 taps in the jtag chain so that I can debug both in one session. But while the chain configuration seems to be OK (i.e. no jtag errors reported when scanning), whenever I want to inspect the a8 it fails, while talking to the m3 works fine. So I'm now trying to verify if my assumption about the enabled TAPs and their location is correct.
Care to send your tcl? If I have some time I'll try here myself. I have some memory of Paul F saying openocd couldn't debug different targets like that, but not 100% my memory's correct
Sure, where do you want it?
Felipe Balbi all set. Turns out the IcePick-D was not the problem, the configuration file just listed the taps in the wrong order. Works if you have only one tap and all others bypassed, but not with 'all in' ☺
Cool you found a fix. Can you send a patch to upstream openocd? I might use your work to fiddle with am437x eventually hehe.
I will push a patch into Gerrit tomorrow morning (gmt+1)
Cool. Awesome. Thanks again for fixing it.
Felipe Balbi http://openocd.zylin.com/3013
awesome, I'll see if I can get something based on that to work on AM437x
Matthias Welwarsky I can't seem to be able to halt M3 TAP. How did you test that M3 access works ?
heh, trying to give you a +1 on openocd gerrit
Felipe Balbi halt only works if the M3 is not in reset. Apart from that - "targets am335x.m3; halt"
Also, did you "set DEFAULT_TAPS am335x.dap am335x.m3_dap" ?
I did use the DEFAULT_TAPS trick, yes. Let me try checking if M3 is in reset or not. I guess targets am335x.m3; run; halt should work ?
Meant resume, instead of run. But it doesn't work.
sure, why not