Skip to content
/ linux Public

Commit f6377d7

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 33b5414 commit f6377d7

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
@@ -202,6 +202,7 @@ enum cmn_model {
202202
enum cmn_part {
203203
PART_CMN600 = 0x434,
204204
PART_CMN650 = 0x436,
205+
PART_CMN600AE = 0x438,
205206
PART_CMN700 = 0x43c,
206207
PART_CI700 = 0x43a,
207208
};
@@ -2043,6 +2044,9 @@ static int arm_cmn_discover(struct arm_cmn *cmn, unsigned int rgn_offset)
20432044
reg = readq_relaxed(cfg_region + CMN_CFGM_PERIPH_ID_01);
20442045
part = FIELD_GET(CMN_CFGM_PID0_PART_0, reg);
20452046
part |= FIELD_GET(CMN_CFGM_PID1_PART_1, reg) << 8;
2047+
/* 600AE is close enough that it's not really worth more complexity */
2048+
if (part == PART_CMN600AE)
2049+
part = PART_CMN600;
20462050
if (cmn->part && cmn->part != part)
20472051
dev_warn(cmn->dev,
20482052
"Firmware binding mismatch: expected part number 0x%x, found 0x%x\n",

0 commit comments

Comments
 (0)