All of lore.kernel.org
 help / color / mirror / Atom feed
From: Sudeep Holla <sudeep.holla@arm.com>
To: Leo Yan <leo.yan@linaro.org>
Cc: Sudeep Holla <sudeep.holla@arm.com>,
	Mike Leach <mike.leach@linaro.org>,
	Rob Herring <robh+dt@kernel.org>,
	Mark Rutland <mark.rutland@arm.com>,
	Wei Xu <xuwei5@hisilicon.com>,
	Catalin Marinas <catalin.marinas@arm.com>,
	Will Deacon <will.deacon@arm.com>,
	Michael Turquette <mturquette@baylibre.com>,
	Stephen Boyd <sboyd@codeaurora.org>,
	Mathieu Poirier <mathieu.poirier@linaro.org>,
	John Stultz <john.stultz@linaro.org>,
	Guodong Xu <guodong.xu@linaro.org>,
	Haojian Zhuang <haojian.zhuang@linaro.org>,
	Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
	devicetree@vger.kernel.org, linux-kernel@vger.kernel.org,
	linux-arm-kernel@lists.infradead.org, linux-clk@vger.kernel.org
Subject: Re: [PATCH v3 3/5] coresight: add support for debug module
Date: Wed, 22 Mar 2017 16:53:32 +0000	[thread overview]
Message-ID: <d976bae5-0b81-e47c-4f41-eb240bea7827@arm.com> (raw)
In-Reply-To: <20170322160102.GB15179@leoy-linaro>



On 22/03/17 16:01, Leo Yan wrote:
> On Wed, Mar 22, 2017 at 02:07:47PM +0000, Sudeep Holla wrote:

[...]

>>
>> We can always do that unconditionally. If implementations don't honor
>> those bits, it's different. If they hang on accessing something which is
>> on debug power domain and not on core power domain, then you have much
>> bigger issue to solve. How can you even trust and make any other
>> register accesses that are in debug power domain then ?
> 
> So we can add below code before really access another other registers
> are possible in CPU power domain:
> 
>         /*
>          * Force to power on CPU power domain and assert
>          * DBGPWRUPREQ signal
>          */
>         val = readl(drvdata->base + EDPRCR);
>         val |= BIT(3);
>         writel(val, drvdata->base + EDPRCR);
> 

Yes worth trying it out.

[...]

> 
> I tried to digest these info and below are my understanding from your
> suggestion:
> 
> ### For boot time: add two command line flags
> 

I am not really sure about boot flags as there are dependency on power
domains and expecting them to be powered on quite earlier is too much to
ask. I am not sure if we need special case for boot time. But that's
just my opinion. If someone has found it *really* useful and no other
alternative exists, then go for it.

[...]

> ### For runtime: use one sysfs node
> 
> - Create sysfs node:
>   /sys/kernel/debug/coresight_cpu_debug/enable_debug
> 
>   echo 1 > /sys/kernel/debug/coresight_cpu_debug/enable_debug: same
>   functionality with boot time's 'coresight.cpu_debug';
> 

My argument was this to be default without any need for flags.
We can skip it as and when we find broken implementation if required.

>   echo 2 > /sys/kernel/debug/coresight_cpu_debug/enable_debug: same
>   functionality with boot time's 'coresight.cpu_debug_pwrup';
> 
>   echo 0 > /sys/kernel/debug/coresight_cpu_debug/enable_debug: disable
>   debug functionality.
>

So it can be simple boolean to force setup the power domain requirements
for it to work whenever you need to activate it. I may be missing some
use-case, but IIUC simple boolean flag should be fine as suggested
initially.

-- 
Regards,
Sudeep

WARNING: multiple messages have this Message-ID (diff)
From: Sudeep Holla <sudeep.holla@arm.com>
To: Leo Yan <leo.yan@linaro.org>
Cc: Mark Rutland <mark.rutland@arm.com>,
	devicetree@vger.kernel.org, Guodong Xu <guodong.xu@linaro.org>,
	Mathieu Poirier <mathieu.poirier@linaro.org>,
	Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
	Catalin Marinas <catalin.marinas@arm.com>,
	Michael Turquette <mturquette@baylibre.com>,
	Will Deacon <will.deacon@arm.com>,
	linux-kernel@vger.kernel.org, Wei Xu <xuwei5@hisilicon.com>,
	linux-clk@vger.kernel.org, Rob Herring <robh+dt@kernel.org>,
	John Stultz <john.stultz@linaro.org>,
	Haojian Zhuang <haojian.zhuang@linaro.org>,
	Sudeep Holla <sudeep.holla@arm.com>,
	Stephen Boyd <sboyd@codeaurora.org>,
	linux-arm-kernel@lists.infradead.org,
	Mike Leach <mike.leach@linaro.org>
Subject: Re: [PATCH v3 3/5] coresight: add support for debug module
Date: Wed, 22 Mar 2017 16:53:32 +0000	[thread overview]
Message-ID: <d976bae5-0b81-e47c-4f41-eb240bea7827@arm.com> (raw)
In-Reply-To: <20170322160102.GB15179@leoy-linaro>



On 22/03/17 16:01, Leo Yan wrote:
> On Wed, Mar 22, 2017 at 02:07:47PM +0000, Sudeep Holla wrote:

[...]

>>
>> We can always do that unconditionally. If implementations don't honor
>> those bits, it's different. If they hang on accessing something which is
>> on debug power domain and not on core power domain, then you have much
>> bigger issue to solve. How can you even trust and make any other
>> register accesses that are in debug power domain then ?
> 
> So we can add below code before really access another other registers
> are possible in CPU power domain:
> 
>         /*
>          * Force to power on CPU power domain and assert
>          * DBGPWRUPREQ signal
>          */
>         val = readl(drvdata->base + EDPRCR);
>         val |= BIT(3);
>         writel(val, drvdata->base + EDPRCR);
> 

Yes worth trying it out.

[...]

> 
> I tried to digest these info and below are my understanding from your
> suggestion:
> 
> ### For boot time: add two command line flags
> 

I am not really sure about boot flags as there are dependency on power
domains and expecting them to be powered on quite earlier is too much to
ask. I am not sure if we need special case for boot time. But that's
just my opinion. If someone has found it *really* useful and no other
alternative exists, then go for it.

[...]

> ### For runtime: use one sysfs node
> 
> - Create sysfs node:
>   /sys/kernel/debug/coresight_cpu_debug/enable_debug
> 
>   echo 1 > /sys/kernel/debug/coresight_cpu_debug/enable_debug: same
>   functionality with boot time's 'coresight.cpu_debug';
> 

My argument was this to be default without any need for flags.
We can skip it as and when we find broken implementation if required.

>   echo 2 > /sys/kernel/debug/coresight_cpu_debug/enable_debug: same
>   functionality with boot time's 'coresight.cpu_debug_pwrup';
> 
>   echo 0 > /sys/kernel/debug/coresight_cpu_debug/enable_debug: disable
>   debug functionality.
>

So it can be simple boolean to force setup the power domain requirements
for it to work whenever you need to activate it. I may be missing some
use-case, but IIUC simple boolean flag should be fine as suggested
initially.

-- 
Regards,
Sudeep

WARNING: multiple messages have this Message-ID (diff)
From: sudeep.holla@arm.com (Sudeep Holla)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH v3 3/5] coresight: add support for debug module
Date: Wed, 22 Mar 2017 16:53:32 +0000	[thread overview]
Message-ID: <d976bae5-0b81-e47c-4f41-eb240bea7827@arm.com> (raw)
In-Reply-To: <20170322160102.GB15179@leoy-linaro>



On 22/03/17 16:01, Leo Yan wrote:
> On Wed, Mar 22, 2017 at 02:07:47PM +0000, Sudeep Holla wrote:

[...]

>>
>> We can always do that unconditionally. If implementations don't honor
>> those bits, it's different. If they hang on accessing something which is
>> on debug power domain and not on core power domain, then you have much
>> bigger issue to solve. How can you even trust and make any other
>> register accesses that are in debug power domain then ?
> 
> So we can add below code before really access another other registers
> are possible in CPU power domain:
> 
>         /*
>          * Force to power on CPU power domain and assert
>          * DBGPWRUPREQ signal
>          */
>         val = readl(drvdata->base + EDPRCR);
>         val |= BIT(3);
>         writel(val, drvdata->base + EDPRCR);
> 

Yes worth trying it out.

[...]

> 
> I tried to digest these info and below are my understanding from your
> suggestion:
> 
> ### For boot time: add two command line flags
> 

I am not really sure about boot flags as there are dependency on power
domains and expecting them to be powered on quite earlier is too much to
ask. I am not sure if we need special case for boot time. But that's
just my opinion. If someone has found it *really* useful and no other
alternative exists, then go for it.

[...]

> ### For runtime: use one sysfs node
> 
> - Create sysfs node:
>   /sys/kernel/debug/coresight_cpu_debug/enable_debug
> 
>   echo 1 > /sys/kernel/debug/coresight_cpu_debug/enable_debug: same
>   functionality with boot time's 'coresight.cpu_debug';
> 

My argument was this to be default without any need for flags.
We can skip it as and when we find broken implementation if required.

>   echo 2 > /sys/kernel/debug/coresight_cpu_debug/enable_debug: same
>   functionality with boot time's 'coresight.cpu_debug_pwrup';
> 
>   echo 0 > /sys/kernel/debug/coresight_cpu_debug/enable_debug: disable
>   debug functionality.
>

So it can be simple boolean to force setup the power domain requirements
for it to work whenever you need to activate it. I may be missing some
use-case, but IIUC simple boolean flag should be fine as suggested
initially.

-- 
Regards,
Sudeep

  reply	other threads:[~2017-03-22 17:01 UTC|newest]

Thread overview: 111+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-03-03  6:00 [PATCH v3 0/5] coresight: enable debug module Leo Yan
2017-03-03  6:00 ` Leo Yan
2017-03-03  6:00 ` [PATCH v3 1/5] coresight: bindings for " Leo Yan
2017-03-03  6:00   ` Leo Yan
2017-03-09 13:27   ` [v3 " Suzuki K Poulose
2017-03-09 13:27     ` Suzuki K Poulose
2017-03-09 13:27     ` Suzuki K Poulose
2017-03-03  6:00 ` [PATCH v3 2/5] coresight: refactor with function of_coresight_get_cpu Leo Yan
2017-03-03  6:00   ` Leo Yan
2017-03-03  6:00 ` [PATCH v3 3/5] coresight: add support for debug module Leo Yan
2017-03-03  6:00   ` Leo Yan
2017-03-09 16:53   ` [v3 " Suzuki K Poulose
2017-03-09 16:53     ` Suzuki K Poulose
2017-03-09 16:53     ` Suzuki K Poulose
2017-03-09 17:59     ` Leo Yan
2017-03-09 17:59       ` Leo Yan
2017-03-09 17:59       ` Leo Yan
2017-03-10 14:29       ` Suzuki K Poulose
2017-03-10 14:29         ` Suzuki K Poulose
2017-03-13  8:12         ` Leo Yan
2017-03-13  8:12           ` Leo Yan
2017-03-13  8:12           ` Leo Yan
2017-03-13 16:56         ` Mathieu Poirier
2017-03-13 16:56           ` Mathieu Poirier
2017-03-13 16:56           ` Mathieu Poirier
2017-03-15 16:44           ` Suzuki K Poulose
2017-03-15 16:44             ` Suzuki K Poulose
2017-03-15 16:44             ` Suzuki K Poulose
2017-03-15 20:41             ` Mathieu Poirier
2017-03-15 20:41               ` Mathieu Poirier
2017-03-15 20:41               ` Mathieu Poirier
2017-03-15 20:41               ` Mathieu Poirier
2017-03-17 10:13               ` Leo Yan
2017-03-17 10:13                 ` Leo Yan
2017-03-17 10:13                 ` Leo Yan
2017-03-17 10:13                 ` Leo Yan
2017-03-17 15:50                 ` Mathieu Poirier
2017-03-17 15:50                   ` Mathieu Poirier
2017-03-17 15:50                   ` Mathieu Poirier
2017-03-17 15:50                   ` Mathieu Poirier
2017-03-17 16:28                   ` Leo Yan
2017-03-17 16:28                     ` Leo Yan
2017-03-17 16:28                     ` Leo Yan
2017-03-17 16:28                     ` Leo Yan
2017-03-17 16:47                     ` Suzuki K Poulose
2017-03-17 16:47                       ` Suzuki K Poulose
2017-03-17 16:47                       ` Suzuki K Poulose
2017-03-17 16:47                       ` Suzuki K Poulose
2017-03-20 12:30                       ` Leo Yan
2017-03-20 12:30                         ` Leo Yan
2017-03-20 12:30                         ` Leo Yan
2017-03-20 12:30                         ` Leo Yan
2017-03-20 16:40                       ` Mathieu Poirier
2017-03-20 16:40                         ` Mathieu Poirier
2017-03-20 16:40                         ` Mathieu Poirier
2017-03-20 16:40                         ` Mathieu Poirier
2017-03-21  2:59                         ` Leo Yan
2017-03-21  2:59                           ` Leo Yan
2017-03-21  2:59                           ` Leo Yan
2017-03-21  2:59                           ` Leo Yan
2017-03-21 10:16                           ` Suzuki K Poulose
2017-03-21 10:16                             ` Suzuki K Poulose
2017-03-21 10:16                             ` Suzuki K Poulose
2017-03-21 11:47                             ` Leo Yan
2017-03-21 11:47                               ` Leo Yan
2017-03-21 11:47                               ` Leo Yan
2017-03-21 11:47                               ` Leo Yan
2017-03-21 15:15                               ` Mathieu Poirier
2017-03-21 15:15                                 ` Mathieu Poirier
2017-03-21 15:15                                 ` Mathieu Poirier
2017-03-21 15:15                                 ` Mathieu Poirier
2017-03-13 16:29       ` Mathieu Poirier
2017-03-13 16:29         ` Mathieu Poirier
2017-03-13 16:29         ` Mathieu Poirier
2017-03-21 15:39   ` [PATCH v3 " Sudeep Holla
2017-03-21 15:39     ` Sudeep Holla
2017-03-22 12:54     ` Mike Leach
2017-03-22 14:07       ` Sudeep Holla
2017-03-22 14:07         ` Sudeep Holla
2017-03-22 14:07         ` Sudeep Holla
2017-03-22 15:45         ` Mike Leach
2017-03-22 15:45           ` Mike Leach
2017-03-22 15:45           ` Mike Leach
2017-03-22 16:17           ` Sudeep Holla
2017-03-22 16:17             ` Sudeep Holla
2017-03-22 17:09             ` Suzuki K Poulose
2017-03-22 17:09               ` Suzuki K Poulose
2017-03-22 17:09               ` Suzuki K Poulose
2017-03-22 17:25               ` Sudeep Holla
2017-03-22 17:25                 ` Sudeep Holla
2017-03-22 17:25                 ` Sudeep Holla
2017-03-23  5:43                 ` Leo Yan
2017-03-23  5:43                   ` Leo Yan
2017-03-23  5:43                   ` Leo Yan
2017-03-23 12:27                   ` Mike Leach
2017-03-23 12:27                     ` Mike Leach
2017-03-22 16:01         ` Leo Yan
2017-03-22 16:01           ` Leo Yan
2017-03-22 16:53           ` Sudeep Holla [this message]
2017-03-22 16:53             ` Sudeep Holla
2017-03-22 16:53             ` Sudeep Holla
2017-03-03  6:00 ` [PATCH v3 4/5] clk: hi6220: add debug APB clock Leo Yan
2017-03-03  6:00   ` Leo Yan
2017-03-03 23:58   ` Stephen Boyd
2017-03-03 23:58     ` Stephen Boyd
2017-03-03 23:58     ` Stephen Boyd
2017-03-17 15:22     ` Leo Yan
2017-03-17 15:22       ` Leo Yan
2017-03-17 15:22       ` Leo Yan
2017-03-03  6:00 ` [PATCH v3 5/5] arm64: dts: hi6220: register debug module Leo Yan
2017-03-03  6:00   ` Leo Yan

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=d976bae5-0b81-e47c-4f41-eb240bea7827@arm.com \
    --to=sudeep.holla@arm.com \
    --cc=catalin.marinas@arm.com \
    --cc=devicetree@vger.kernel.org \
    --cc=gregkh@linuxfoundation.org \
    --cc=guodong.xu@linaro.org \
    --cc=haojian.zhuang@linaro.org \
    --cc=john.stultz@linaro.org \
    --cc=leo.yan@linaro.org \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-clk@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mark.rutland@arm.com \
    --cc=mathieu.poirier@linaro.org \
    --cc=mike.leach@linaro.org \
    --cc=mturquette@baylibre.com \
    --cc=robh+dt@kernel.org \
    --cc=sboyd@codeaurora.org \
    --cc=will.deacon@arm.com \
    --cc=xuwei5@hisilicon.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.