From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-8.2 required=3.0 tests=HEADER_FROM_DIFFERENT_DOMAINS, INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS, USER_AGENT_SANE_1 autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 52417C432C0 for ; Mon, 2 Dec 2019 10:43:57 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 247FC217F5 for ; Mon, 2 Dec 2019 10:43:57 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726330AbfLBKn4 (ORCPT ); Mon, 2 Dec 2019 05:43:56 -0500 Received: from foss.arm.com ([217.140.110.172]:52648 "EHLO foss.arm.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726276AbfLBKn4 (ORCPT ); Mon, 2 Dec 2019 05:43:56 -0500 Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.121.207.14]) by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id 5389431B; Mon, 2 Dec 2019 02:43:55 -0800 (PST) Received: from [10.1.197.1] (ewhatever.cambridge.arm.com [10.1.197.1]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id 85E023F68E; Mon, 2 Dec 2019 02:43:54 -0800 (PST) Subject: Re: [PATCH v5 13/14] docs: coresight: Update documentation for CoreSight to cover CTI. To: Mike Leach , coresight@lists.linaro.org, linux-arm-kernel@lists.infradead.org, devicetree@vger.kernel.org, linux-doc@vger.kernel.org Cc: mathieu.poirier@linaro.org References: <20191119231912.12768-1-mike.leach@linaro.org> <20191119231912.12768-14-mike.leach@linaro.org> From: Suzuki Kuruppassery Poulose Message-ID: <1076b0e3-6b50-7be9-0a25-cb003bd77674@arm.com> Date: Mon, 2 Dec 2019 10:43:53 +0000 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Thunderbird/68.2.2 MIME-Version: 1.0 In-Reply-To: <20191119231912.12768-14-mike.leach@linaro.org> Content-Type: text/plain; charset=utf-8; format=flowed Content-Language: en-US Content-Transfer-Encoding: 7bit Sender: linux-doc-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-doc@vger.kernel.org On 19/11/2019 23:19, Mike Leach wrote: > Add new document covering CTI / CTM usage in CoreSight. > > Add section in coresight.rst introducing CTI and CTM modules with link > to new document. > > Signed-off-by: Mike Leach > --- > .../trace/coresight/coresight-ect.rst | 200 ++++++++++++++++++ > Documentation/trace/coresight/coresight.rst | 13 ++ > 2 files changed, 213 insertions(+) > create mode 100644 Documentation/trace/coresight/coresight-ect.rst > > diff --git a/Documentation/trace/coresight/coresight-ect.rst b/Documentation/trace/coresight/coresight-ect.rst > new file mode 100644 > index 000000000000..6448cf910f20 > --- /dev/null > +++ b/Documentation/trace/coresight/coresight-ect.rst > @@ -0,0 +1,200 @@ > +============================================= > +CoreSight Embedded Cross Trigger (CTI & CTM). > +============================================= > + > + :Author: Mike Leach > + :Date: November 2019 > + ... > + > +Channels API Directory > +~~~~~~~~~~~~~~~~~~~~~~ > + > +This provides an easy way to attach triggers to channels, without needing > +the multiple register operations that are required if manipluating the > +'regs' sub-dir elements directly. > + > +A number of files provide this API:: > + > + >$ ls ./cti_sys0/channels/ > + chan_clear chan_inuse chan_xtrigs_view trigin_detach > + chan_free chan_pulse chan_xtrigs_view_sel trigout_attach > + chan_gate_disable chan_set trig_filter_enable trigout_detach > + chan_gate_enable chan_xtrigs_reset trigin_attach trigout_filtered > + > +Most access to these elements take the form:: > + > + echo [] > // > + > +where the optional is only needed for trigXX_attach | detach > +operations. > + > +e.g.:: > + > + >$ echo 0 1 > ./cti_sys0/channels/trigout_attach > + >$ echo 0 > ./cti_sys0/channels/chan_set > + > +Attaches trigout(1) to channel(0), then activates channel(0) generating a > +set state on cti_sys0.trigout(1) > + > + > +*API operations* > + > + * ``trigin_attach, trigout_attach``: Attach a channel to a trigger signal. > + * ``trigin_detach, trigout_detach``: Detach a channel from a trigger signal. > + * ``chan_set``: Set the channel - the set state will be propogated around > + the CTM to other connected devices. > + * ``chan_clear``: Clear the channel. > + * ``chan_pulse``: Set the channel for a single CoreSight clock cycle. > + * ``chan_gate_enable``: Write operation sets the CTI gate to propagate > + (enable) the channel to other devices. This operation takes a channel > + number. CTI gate is enabled for all channels by default at power up. Read > + to list the currently enabled channels on the gate. > + * ``chan_gate_disable``: Write channel number to disable gate for that > + channel. > + * ``chan_inuse``: Show the current channels attached to any signal > + * ``chan_free``: Show channels with no attached signals. > + * ``chan_xtrig_view``: write a channel number to select a channel to view, > + read to show the cross triggers programmed for the selected channel. > + * ``trig_filter_enable``: Defaults to enabled, disable to allow potentially > + dangerous output signals to be set. > + * ``trigout_filtered``: Trigger out signals that are prevented from being > + set if filtering ``trig_filter_enable`` is enabled. One use is to prevent > + accidental ``EDBGREQ`` signals stopping a core. > + * ``chan_xtrigs_reset``: Write 1 to clear all channel / trigger programming. > + Resets device hardware to default state. > + > +e.g.:: > + > + .../cti_sys0/channels# echo 2 1 > trigin_attach > + .../cti_sys0/channels# echo 2 6 > trigout_attach minor nit: It may be a good idea to add a comment to describe what you are doing with the above operations, to avoid looking up and mapping it for someone looking it up. I am not too keen, but it is definitely helpful. > + .../cti_sys0/channels# cat chan_free > + 0-1,3 > + .../cti_sys0/channels# cat chan_inuse > + 2 > + .../cti_sys0/channels# echo 2 > chan_xtrigs_view > + .../cti_sys0/channels# cat chan_xtrigs_view > + [2] IN: 1 OUT: 6 > + .../cti_sys0/# echo 1 > enable > + .../cti_sys0/channels# echo 2 > chan_set > + .../cti_sys0/channels# cat ../regs/choutstatus > + 0x4 > + .../cti_sys0/channels# cat ../regs/trigoutstatus > + 0x40 > + .../cti_sys0/channels# echo 2 > chan_clear > + .../cti_sys0/channels# cat ../regs/trigoutstatus > + 0x0 > + .../cti_sys0/channels# cat ../regs/trigoutstatus > + 0x0 nit: duplicate lines ? Otherwise: Reviewed-by: Suzuki K Poulose