Ok, so we're not too far off. I suggest we continue on our journey to get a good solution for V7/8. When it's all done we can look at what is missing for V11.
This may need changes in both in the instruction decoder and where it's called from the trace decoder - perhaps even in the metadata and more widely.
Generally v6 is a subset of v7, so the instruction decoder already works for v6. This code predates OpenCSD (I wrote it for a previous decoder) and has been tested exhaustively against known good instruction decoders. Note that the instruction decoder classifies instructions on the assumption that they are valid - whether an instruction is actually valid is a function not just of major architecture level but of minor revisions and options, execution state and other factors. So the fact that v6 is a subset of v7 isn't a new problem in that respect.
What's different is that nearly all v6 implementations only have 16-bit Thumb. BL-type instructions might be traced as two instructions. The trace decoder must check ETMIDR[18] and call the instruction decoder with the right size of instructions. The instruction decoder must report that the first half of a BL is not a branch, and that the second half of a BL is a branch. That may have further reaching consequences to decode - e.g. you would see two instructions for a single BL. You might even get an exception between the two halves. A textual disassembler (etc.) would have to report that in a sensible way. Metadata must contain ETMIDR[18].
I'll check and update the master source for the instruction decoder and we can rebaseline OpenCSD against that.
Al
Mathieu
On 19 January 2016 at 10:00, Mike Leach Mike.Leach@arm.com wrote:
Hi Mathieu,
ETM11 outputs ETMv3.2 trace protocol.
In principle the ETMv3 decode should work on this, though there may be
issues with the instruction set decode - OpenCSD has an IS decoder for ARMv7 and ARMv8 architectures. The ARM 11 core (which is what has to be attached to an ETM 11) is ARMv6 architecture.
Currently the ETMv3 decoder has the first stage of packet processing only -
full decode to follow after PTM full decode.
Regards
Mike
Mike Leach +44 (0)1254 893911 (Direct) Principal Engineer +44 (0)1254 893900 (Main) Arm Blackburn Design Centre +44 (0)1254 893901 (Fax) Belthorn House Walker Rd mailto:mike.leach@arm.com Guide Blackburn BB1 2QE
-----Original Message----- From: CoreSight [mailto:coresight-bounces@lists.linaro.org] On Behalf Of Mathieu Poirier Sent: 19 January 2016 16:12 To: coresight@lists.linaro.org Cc: Linus Walleij Subject: ETM11 and openCSD
Hey Mike,
A colleague of mine, Linus Walleij, stumbled on a board equipped with an ETM11 and started looking into it. From his point of view it looks simple enough to endeavour providing driver support for it.
What kind of trace format does it output? How far are we in openCSD to support traces generated by an ETM11?
Thanks, Mathieu _______________________________________________ CoreSight mailing list CoreSight@lists.linaro.org https://lists.linaro.org/mailman/listinfo/coresight
IMPORTANT NOTICE: The contents of this email and any attachments are
confidential and may also be privileged. If you are not the intended recipient, please notify the sender immediately and do not disclose the contents to any other person, use it for any purpose, or store or copy the information in any medium. Thank you. _______________________________________________ CoreSight mailing list CoreSight@lists.linaro.org https://lists.linaro.org/mailman/listinfo/coresight
IMPORTANT NOTICE: The contents of this email and any attachments are confidential and may also be privileged. If you are not the intended recipient, please notify the sender immediately and do not disclose the contents to any other person, use it for any purpose, or store or copy the information in any medium. Thank you.