Skip to content
/ linux Public

Commit 94ab05a

Browse files
rmurphy-armSasha Levin
authored andcommitted
perf/arm-cmn: Support CMN-600AE
[ Upstream commit 12a9495 ] The functional safety features of CMN-600AE have little to no impact on the PMU relative to the base CMN-600 design, so for simplicity we can reasonably just treat it as the same thing. The only obvious difference is that the revision numbers aren't aligned, so we may hide some aliases for events which do actually exist, but those can still be specified via the underlying "type,eventid" format so it's not too big a deal. Signed-off-by: Robin Murphy <robin.murphy@arm.com> Reviewed-by: Ilkka Koskinen <ilkka@os.amperecomputing.com> Tested-by: Michal Simek <michal.simek@amd.com> Signed-off-by: Will Deacon <will@kernel.org> Signed-off-by: Sasha Levin <sashal@kernel.org>
1 parent 61cd0b2 commit 94ab05a

File tree

1 file changed

+4
-0
lines changed

1 file changed

+4
-0
lines changed

drivers/perf/arm-cmn.c

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -205,6 +205,7 @@ enum cmn_model {
205205
enum cmn_part {
206206
PART_CMN600 = 0x434,
207207
PART_CMN650 = 0x436,
208+
PART_CMN600AE = 0x438,
208209
PART_CMN700 = 0x43c,
209210
PART_CI700 = 0x43a,
210211
};
@@ -2167,6 +2168,9 @@ static int arm_cmn_discover(struct arm_cmn *cmn, unsigned int rgn_offset)
21672168
reg = readq_relaxed(cfg_region + CMN_CFGM_PERIPH_ID_01);
21682169
part = FIELD_GET(CMN_CFGM_PID0_PART_0, reg);
21692170
part |= FIELD_GET(CMN_CFGM_PID1_PART_1, reg) << 8;
2171+
/* 600AE is close enough that it's not really worth more complexity */
2172+
if (part == PART_CMN600AE)
2173+
part = PART_CMN600;
21702174
if (cmn->part && cmn->part != part)
21712175
dev_warn(cmn->dev,
21722176
"Firmware binding mismatch: expected part number 0x%x, found 0x%x\n",

0 commit comments

Comments
 (0)