Re: [PATCH 1/1] perf/arm-cmn: Add more bits to child node address offset field

From: Ilkka Koskinen
Date: Wed Sep 21 2022 - 15:57:50 EST


Hi Robin,

On Wed, 21 Sep 2022, Robin Murphy wrote:
On 08/08/2022 8:54 pm, Ilkka Koskinen wrote:
CMN-600 uses bits [27:0] for child node address offset while bits [30:28]
are required to be zero.

For CMN-650, the child node address offset field has been increased
to include bits [29:0] while leaving only bit 30 set to zero.

Let's include the missing two bits and assume older implementations
comply with the spec and set bits [29:28] to 0.

Just to add that other users have run into this as well, so getting it applied as a fix would be just lovely. Technically I think it's:

Fixes: 60d1504070c2 ("perf/arm-cmn: Support new IP features")

Ah, that's true. Should I resend the patch with your reviewed-by and the fixes lines?

Cheers, Ilkka



Cheers,
Robin.

Signed-off-by: Ilkka Koskinen <ilkka@xxxxxxxxxxxxxxxxxxxxxx>
---

I have tested this patch on CMN-600 and CMN-650.

drivers/perf/arm-cmn.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/perf/arm-cmn.c b/drivers/perf/arm-cmn.c
index 80d8309652a4..b80a9b74662b 100644
--- a/drivers/perf/arm-cmn.c
+++ b/drivers/perf/arm-cmn.c
@@ -36,7 +36,7 @@
#define CMN_CI_CHILD_COUNT GENMASK_ULL(15, 0)
#define CMN_CI_CHILD_PTR_OFFSET GENMASK_ULL(31, 16)
-#define CMN_CHILD_NODE_ADDR GENMASK(27, 0)
+#define CMN_CHILD_NODE_ADDR GENMASK(29, 0)
#define CMN_CHILD_NODE_EXTERNAL BIT(31)
#define CMN_MAX_DIMENSION 12