diff mbox series

[PATCHv5,6/7] coresight: debug: Add Unique Component Identifier (UCI) table

Message ID 1019e6fed1ade6a580f01df9b3f70c2a9df5b3be.1548419933.git.saiprakash.ranjan@codeaurora.org (mailing list archive)
State New, archived
Headers show
Series Add coresight support for SDM845, MSM8998 and MSM8996 | expand

Commit Message

Sai Prakash Ranjan Jan. 28, 2019, 7:14 p.m. UTC
Add UCI table and a helper macro for coresight CPU debug
module. This patch adds the UCI entries for Krypo CPUs
found on MSM8996 which shares the same PIDs as ETMs.

Without this, below error is observed on MSM8996:

[    5.429867] OF: graph: no port node found in /soc/debug@3810000
[    5.429938] coresight-etm4x: probe of 3810000.debug failed with error -22
[    5.435415] coresight-cpu-debug 3810000.debug: Coresight debug-CPU0 initialized
[    5.446474] OF: graph: no port node found in /soc/debug@3910000
[    5.448927] coresight-etm4x: probe of 3910000.debug failed with error -22
[    5.454681] coresight-cpu-debug 3910000.debug: Coresight debug-CPU1 initialized
[    5.487765] OF: graph: no port node found in /soc/debug@3a10000
[    5.488007] coresight-etm4x: probe of 3a10000.debug failed with error -22
[    5.493024] coresight-cpu-debug 3a10000.debug: Coresight debug-CPU2 initialized
[    5.501802] OF: graph: no port node found in /soc/debug@3b10000
[    5.512901] coresight-etm4x: probe of 3b10000.debug failed with error -22
[    5.513192] coresight-cpu-debug 3b10000.debug: Coresight debug-CPU3 initialized

Also add a helper macro to make adding CPU PIDs easier
similar to ETM4X driver.

Signed-off-by: Sai Prakash Ranjan <saiprakash.ranjan@codeaurora.org>

---
This patch depends on UCI support by Mike Leach in below link:
 https://lore.kernel.org/lkml/20190121233151.13363-2-mike.leach@linaro.org/
---
 .../hwtracing/coresight/coresight-cpu-debug.c | 41 +++++++++++++------
 1 file changed, 28 insertions(+), 13 deletions(-)

Comments

Leo Yan Jan. 29, 2019, 1:25 p.m. UTC | #1
On Tue, Jan 29, 2019 at 12:44:03AM +0530, Sai Prakash Ranjan wrote:
> Add UCI table and a helper macro for coresight CPU debug
> module. This patch adds the UCI entries for Krypo CPUs
> found on MSM8996 which shares the same PIDs as ETMs.
> 
> Without this, below error is observed on MSM8996:
> 
> [    5.429867] OF: graph: no port node found in /soc/debug@3810000
> [    5.429938] coresight-etm4x: probe of 3810000.debug failed with error -22
> [    5.435415] coresight-cpu-debug 3810000.debug: Coresight debug-CPU0 initialized
> [    5.446474] OF: graph: no port node found in /soc/debug@3910000
> [    5.448927] coresight-etm4x: probe of 3910000.debug failed with error -22
> [    5.454681] coresight-cpu-debug 3910000.debug: Coresight debug-CPU1 initialized
> [    5.487765] OF: graph: no port node found in /soc/debug@3a10000
> [    5.488007] coresight-etm4x: probe of 3a10000.debug failed with error -22
> [    5.493024] coresight-cpu-debug 3a10000.debug: Coresight debug-CPU2 initialized
> [    5.501802] OF: graph: no port node found in /soc/debug@3b10000
> [    5.512901] coresight-etm4x: probe of 3b10000.debug failed with error -22
> [    5.513192] coresight-cpu-debug 3b10000.debug: Coresight debug-CPU3 initialized
> 
> Also add a helper macro to make adding CPU PIDs easier
> similar to ETM4X driver.
> 
> Signed-off-by: Sai Prakash Ranjan <saiprakash.ranjan@codeaurora.org>

Looks good to me and tested on my Hikey board (though I cannot test
for a device with UCI ID):

Reviewed-and-tested-by: Leo Yan <leo.yan@linaro.org>

> ---
> This patch depends on UCI support by Mike Leach in below link:
>  https://lore.kernel.org/lkml/20190121233151.13363-2-mike.leach@linaro.org/
> ---
>  .../hwtracing/coresight/coresight-cpu-debug.c | 41 +++++++++++++------
>  1 file changed, 28 insertions(+), 13 deletions(-)
> 
> diff --git a/drivers/hwtracing/coresight/coresight-cpu-debug.c b/drivers/hwtracing/coresight/coresight-cpu-debug.c
> index 45b2460f3166..a126ed0b9a76 100644
> --- a/drivers/hwtracing/coresight/coresight-cpu-debug.c
> +++ b/drivers/hwtracing/coresight/coresight-cpu-debug.c
> @@ -655,20 +655,35 @@ static int debug_remove(struct amba_device *adev)
>  	return 0;
>  }
>  
> +#define DEBUG_AMBA_ID(pid)			\
> +	{					\
> +		.id	= pid,			\
> +		.mask	= 0x000fffff,		\
> +	}
> +
> +static struct amba_cs_uci_id uci_id_debug[] = {
> +	{
> +		/*  CPU Debug UCI data */
> +		.devarch	= 0x47706a15,
> +		.devarch_mask	= 0xfff0ffff,
> +		.devtype	= 0x00000015,
> +	}
> +};
> +
> +#define DEBUG_AMBA_UCI_ID(pid)			\
> +	{					\
> +		.id	= pid,			\
> +		.mask	= 0x000fffff,		\
> +		.data	= uci_id_debug,		\
> +	}
> +
>  static const struct amba_id debug_ids[] = {
> -	{       /* Debug for Cortex-A53 */
> -		.id	= 0x000bbd03,
> -		.mask	= 0x000fffff,
> -	},
> -	{       /* Debug for Cortex-A57 */
> -		.id	= 0x000bbd07,
> -		.mask	= 0x000fffff,
> -	},
> -	{       /* Debug for Cortex-A72 */
> -		.id	= 0x000bbd08,
> -		.mask	= 0x000fffff,
> -	},
> -	{ 0, 0 },
> +	DEBUG_AMBA_ID(0x000bbd03),		/* Cortex-A53 */
> +	DEBUG_AMBA_ID(0x000bbd07),		/* Cortex-A57 */
> +	DEBUG_AMBA_ID(0x000bbd08),		/* Cortex-A72 */
> +	DEBUG_AMBA_UCI_ID(0x000f0205),		/* Qualcomm Kryo */
> +	DEBUG_AMBA_UCI_ID(0x000f0211),		/* Qualcomm Kryo */
> +	{},
>  };
>  
>  static struct amba_driver debug_driver = {
> -- 
> QUALCOMM INDIA, on behalf of Qualcomm Innovation Center, Inc. is a member
> of Code Aurora Forum, hosted by The Linux Foundation
>
Leo Yan Jan. 29, 2019, 1:36 p.m. UTC | #2
On Tue, Jan 29, 2019 at 09:25:28PM +0800, Leo Yan wrote:
> On Tue, Jan 29, 2019 at 12:44:03AM +0530, Sai Prakash Ranjan wrote:
> > Add UCI table and a helper macro for coresight CPU debug
> > module. This patch adds the UCI entries for Krypo CPUs
> > found on MSM8996 which shares the same PIDs as ETMs.
> > 
> > Without this, below error is observed on MSM8996:
> > 
> > [    5.429867] OF: graph: no port node found in /soc/debug@3810000
> > [    5.429938] coresight-etm4x: probe of 3810000.debug failed with error -22
> > [    5.435415] coresight-cpu-debug 3810000.debug: Coresight debug-CPU0 initialized
> > [    5.446474] OF: graph: no port node found in /soc/debug@3910000
> > [    5.448927] coresight-etm4x: probe of 3910000.debug failed with error -22
> > [    5.454681] coresight-cpu-debug 3910000.debug: Coresight debug-CPU1 initialized
> > [    5.487765] OF: graph: no port node found in /soc/debug@3a10000
> > [    5.488007] coresight-etm4x: probe of 3a10000.debug failed with error -22
> > [    5.493024] coresight-cpu-debug 3a10000.debug: Coresight debug-CPU2 initialized
> > [    5.501802] OF: graph: no port node found in /soc/debug@3b10000
> > [    5.512901] coresight-etm4x: probe of 3b10000.debug failed with error -22
> > [    5.513192] coresight-cpu-debug 3b10000.debug: Coresight debug-CPU3 initialized
> > 
> > Also add a helper macro to make adding CPU PIDs easier
> > similar to ETM4X driver.
> > 
> > Signed-off-by: Sai Prakash Ranjan <saiprakash.ranjan@codeaurora.org>
> 
> Looks good to me and tested on my Hikey board (though I cannot test
> for a device with UCI ID):
> 
> Reviewed-and-tested-by: Leo Yan <leo.yan@linaro.org>

I just now found if apply this patch onto coresight next branch [1],
it will conflict with patch 'coresight: cpu-debug: Support for CA73
CPUs' [2].  Sorry if introduce regression by this.

Hi Mathieu, could you confirm should apply this patch onto to coresight
next branch?

[...]

Thanks,
Leo Yan

[1] https://git.linaro.org/kernel/coresight.git/log/?h=next
[2] https://git.linaro.org/kernel/coresight.git/commit/?h=next&id=14420b405d03cd160b5ace283693ce5b1cf273fa
Sai Prakash Ranjan Jan. 29, 2019, 2:48 p.m. UTC | #3
On 1/29/2019 6:55 PM, Leo Yan wrote:
> 
> Looks good to me and tested on my Hikey board (though I cannot test
> for a device with UCI ID):
> 
> Reviewed-and-tested-by: Leo Yan <leo.yan@linaro.org>
> 

Thanks Leo.
Sai Prakash Ranjan Jan. 29, 2019, 2:54 p.m. UTC | #4
Hi Leo,

On 1/29/2019 7:06 PM, Leo Yan wrote:
> 
> I just now found if apply this patch onto coresight next branch [1],
> it will conflict with patch 'coresight: cpu-debug: Support for CA73
> CPUs' [2].  Sorry if introduce regression by this.
> 

This patch depends on UCI support which is being discussed at:

https://lore.kernel.org/lkml/20190121233151.13363-2-mike.leach@linaro.org/

So I think this should not go into coresight-next until the UCI support
is merged into coresight-next as well.

If UCI support is already merged, then I can rebase this patch on top
of coresight-next and resend.

Thanks,
Sai
diff mbox series

Patch

diff --git a/drivers/hwtracing/coresight/coresight-cpu-debug.c b/drivers/hwtracing/coresight/coresight-cpu-debug.c
index 45b2460f3166..a126ed0b9a76 100644
--- a/drivers/hwtracing/coresight/coresight-cpu-debug.c
+++ b/drivers/hwtracing/coresight/coresight-cpu-debug.c
@@ -655,20 +655,35 @@  static int debug_remove(struct amba_device *adev)
 	return 0;
 }
 
+#define DEBUG_AMBA_ID(pid)			\
+	{					\
+		.id	= pid,			\
+		.mask	= 0x000fffff,		\
+	}
+
+static struct amba_cs_uci_id uci_id_debug[] = {
+	{
+		/*  CPU Debug UCI data */
+		.devarch	= 0x47706a15,
+		.devarch_mask	= 0xfff0ffff,
+		.devtype	= 0x00000015,
+	}
+};
+
+#define DEBUG_AMBA_UCI_ID(pid)			\
+	{					\
+		.id	= pid,			\
+		.mask	= 0x000fffff,		\
+		.data	= uci_id_debug,		\
+	}
+
 static const struct amba_id debug_ids[] = {
-	{       /* Debug for Cortex-A53 */
-		.id	= 0x000bbd03,
-		.mask	= 0x000fffff,
-	},
-	{       /* Debug for Cortex-A57 */
-		.id	= 0x000bbd07,
-		.mask	= 0x000fffff,
-	},
-	{       /* Debug for Cortex-A72 */
-		.id	= 0x000bbd08,
-		.mask	= 0x000fffff,
-	},
-	{ 0, 0 },
+	DEBUG_AMBA_ID(0x000bbd03),		/* Cortex-A53 */
+	DEBUG_AMBA_ID(0x000bbd07),		/* Cortex-A57 */
+	DEBUG_AMBA_ID(0x000bbd08),		/* Cortex-A72 */
+	DEBUG_AMBA_UCI_ID(0x000f0205),		/* Qualcomm Kryo */
+	DEBUG_AMBA_UCI_ID(0x000f0211),		/* Qualcomm Kryo */
+	{},
 };
 
 static struct amba_driver debug_driver = {