* [PATCH] [Patch v1]Add ETE devarch condition in etm4_init_iomem_access
@ 2025-04-08 7:36 yiru zhang
2025-04-08 9:05 ` Suzuki K Poulose
0 siblings, 1 reply; 3+ messages in thread
From: yiru zhang @ 2025-04-08 7:36 UTC (permalink / raw)
To: Suzuki K Poulose, Mike Leach, James Clark, Alexander Shishkin,
Matthias Brugger, AngeloGioacchino Del Regno
Cc: coresight, linux-arm-kernel, linux-kernel, linux-mediatek, yiru zhang
Due to ETE supported, so add ETE devarch condition in etm4_init_iomem_access.
Signed-off-by: yiru zhang <yiru.zhang@mediatek.com>
---
drivers/hwtracing/coresight/coresight-etm4x-core.c | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)
diff --git a/drivers/hwtracing/coresight/coresight-etm4x-core.c b/drivers/hwtracing/coresight/coresight-etm4x-core.c
index 2b8f10463840..971b9f0fe5e4 100644
--- a/drivers/hwtracing/coresight/coresight-etm4x-core.c
+++ b/drivers/hwtracing/coresight/coresight-etm4x-core.c
@@ -1135,8 +1135,9 @@ static bool etm4_init_iomem_access(struct etmv4_drvdata *drvdata,
* with MMIO. But we cannot touch the OSLK until we are
* sure this is an ETM. So rely only on the TRCDEVARCH.
*/
- if ((devarch & ETM_DEVARCH_ID_MASK) != ETM_DEVARCH_ETMv4x_ARCH) {
- pr_warn_once("TRCDEVARCH doesn't match ETMv4 architecture\n");
+ if ((devarch & ETM_DEVARCH_ID_MASK) != ETM_DEVARCH_ETMv4x_ARCH \
+ && (devarch & ETM_DEVARCH_ID_MASK) != ETM_DEVARCH_ETE_ARCH) {
+ pr_warn_once("TRCDEVARCH doesn't match ETMv4&ETE architecture\n");
return false;
}
--
2.46.0
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: [PATCH] [Patch v1]Add ETE devarch condition in etm4_init_iomem_access
2025-04-08 7:36 [PATCH] [Patch v1]Add ETE devarch condition in etm4_init_iomem_access yiru zhang
@ 2025-04-08 9:05 ` Suzuki K Poulose
2025-04-09 3:10 ` Yiru Zhang (张熠儒)
0 siblings, 1 reply; 3+ messages in thread
From: Suzuki K Poulose @ 2025-04-08 9:05 UTC (permalink / raw)
To: yiru zhang, Mike Leach, James Clark, Alexander Shishkin,
Matthias Brugger, AngeloGioacchino Del Regno
Cc: coresight, linux-arm-kernel, linux-kernel, linux-mediatek
Hi Yiru
On 08/04/2025 08:36, yiru zhang wrote:
> Due to ETE supported, so add ETE devarch condition in etm4_init_iomem_access.
Is there a reason why you cannot use the "system instructions to access
the ETE" ?
The patch as such is fine by me (withe some minor styling nits). But, we
do not recommend using the MMIO for ETE, when it can be accessed
directly by sysreg.
FWIW, if you remove the "mmio base" address from the DT/ACPI, it
should automatically use the system instructions for ETE.
> Signed-off-by: yiru zhang <yiru.zhang@mediatek.com>
> ---
> drivers/hwtracing/coresight/coresight-etm4x-core.c | 5 +++--
> 1 file changed, 3 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/hwtracing/coresight/coresight-etm4x-core.c b/drivers/hwtracing/coresight/coresight-etm4x-core.c
> index 2b8f10463840..971b9f0fe5e4 100644
> --- a/drivers/hwtracing/coresight/coresight-etm4x-core.c
> +++ b/drivers/hwtracing/coresight/coresight-etm4x-core.c
> @@ -1135,8 +1135,9 @@ static bool etm4_init_iomem_access(struct etmv4_drvdata *drvdata,
> * with MMIO. But we cannot touch the OSLK until we are
> * sure this is an ETM. So rely only on the TRCDEVARCH.
> */
> - if ((devarch & ETM_DEVARCH_ID_MASK) != ETM_DEVARCH_ETMv4x_ARCH) {
> - pr_warn_once("TRCDEVARCH doesn't match ETMv4 architecture\n");
> + if ((devarch & ETM_DEVARCH_ID_MASK) != ETM_DEVARCH_ETMv4x_ARCH \
> + && (devarch & ETM_DEVARCH_ID_MASK) != ETM_DEVARCH_ETE_ARCH) {
We could use a switch case ?
switch (devarch & ETM_DEVARCH_ID_MASK) {
case ETM_DEVARCH_ETMv4x_ARCH:
case ETM_DEVARCH_ETE_ARCH:
break;
default:
pr_warn_once("Unknown ETM architecture: %x\n",
devarch & ETM_DEVARCH_ID_MASK);
return false;
}
Suzuki
> + pr_warn_once("TRCDEVARCH doesn't match ETMv4&ETE architecture\n");
> return false;
> }
>
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: [PATCH] [Patch v1]Add ETE devarch condition in etm4_init_iomem_access
2025-04-08 9:05 ` Suzuki K Poulose
@ 2025-04-09 3:10 ` Yiru Zhang (张熠儒)
0 siblings, 0 replies; 3+ messages in thread
From: Yiru Zhang (张熠儒) @ 2025-04-09 3:10 UTC (permalink / raw)
To: james.clark, mike.leach, alexander.shishkin, matthias.bgg,
AngeloGioacchino Del Regno, suzuki.poulose
Cc: linux-arm-kernel, linux-kernel, linux-mediatek, coresight
hi Suzuki, thanks for your reply.
If no ETE condition in etm4_init_iomem_access, the function will return
false and influence following process.
I will send v2 patch using a switch case.
Thanks,
Yiru
On Tue, 2025-04-08 at 10:05 +0100, Suzuki K Poulose wrote:
> External email : Please do not click links or open attachments until
> you have verified the sender or the content.
>
>
> Hi Yiru
>
>
>
> On 08/04/2025 08:36, yiru zhang wrote:
> > Due to ETE supported, so add ETE devarch condition in
> > etm4_init_iomem_access.
>
> Is there a reason why you cannot use the "system instructions to
> access
> the ETE" ?
>
> The patch as such is fine by me (withe some minor styling nits). But,
> we
> do not recommend using the MMIO for ETE, when it can be accessed
> directly by sysreg.
>
> FWIW, if you remove the "mmio base" address from the DT/ACPI, it
> should automatically use the system instructions for ETE.
>
>
>
>
> > Signed-off-by: yiru zhang <yiru.zhang@mediatek.com>
> > ---
> > drivers/hwtracing/coresight/coresight-etm4x-core.c | 5 +++--
> > 1 file changed, 3 insertions(+), 2 deletions(-)
> >
> > diff --git a/drivers/hwtracing/coresight/coresight-etm4x-core.c
> > b/drivers/hwtracing/coresight/coresight-etm4x-core.c
> > index 2b8f10463840..971b9f0fe5e4 100644
> > --- a/drivers/hwtracing/coresight/coresight-etm4x-core.c
> > +++ b/drivers/hwtracing/coresight/coresight-etm4x-core.c
> > @@ -1135,8 +1135,9 @@ static bool etm4_init_iomem_access(struct
> > etmv4_drvdata *drvdata,
> > * with MMIO. But we cannot touch the OSLK until we are
> > * sure this is an ETM. So rely only on the TRCDEVARCH.
> > */
> > - if ((devarch & ETM_DEVARCH_ID_MASK) !=
> > ETM_DEVARCH_ETMv4x_ARCH) {
> > - pr_warn_once("TRCDEVARCH doesn't match ETMv4
> > architecture\n");
> > + if ((devarch & ETM_DEVARCH_ID_MASK) !=
> > ETM_DEVARCH_ETMv4x_ARCH \
> > + && (devarch & ETM_DEVARCH_ID_MASK) != ETM_DEVARCH_ETE_ARCH) {
>
> We could use a switch case ?
>
> switch (devarch & ETM_DEVARCH_ID_MASK) {
> case ETM_DEVARCH_ETMv4x_ARCH:
> case ETM_DEVARCH_ETE_ARCH:
> break;
> default:
> pr_warn_once("Unknown ETM architecture: %x\n",
> devarch & ETM_DEVARCH_ID_MASK);
> return false;
> }
>
> Suzuki
>
> > + pr_warn_once("TRCDEVARCH doesn't match ETMv4&ETE
> > architecture\n");
> > return false;
> > }
> >
>
>
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2025-04-09 3:10 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2025-04-08 7:36 [PATCH] [Patch v1]Add ETE devarch condition in etm4_init_iomem_access yiru zhang
2025-04-08 9:05 ` Suzuki K Poulose
2025-04-09 3:10 ` Yiru Zhang (张熠儒)
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®