Using SOC_ID means that going forward, userspace needs to learn aboutI also don't understand how a SoC ID makes thingsIt's doesn't necessarily make things easier in this regard. But using a SoC
any easier in this regard.
ID is an alternative to checking the SMMU_ID or the kernel driver having to
know that it was a MMU-600 at all.
the integration details of each SoC in order to identify a component. As
you said:
| As constantly checking what the SoC ID means throughout system components
| does not scale.
... and I think that equally applies to userspace in this case. Who knows how
many SoCs are going to have MMU-600?
I also know that SOC_ID is going to be optional, and I think it's near-certain
that someone will end up producing two SoCs exposing the same ID.
For system PMUs, I'd rather the system PMU driver exposed some sort of
implementation ID. e.g. the SMMU_ID for SMMU. We can give that a generic name,
and mandate that where a driver exposes it, the format/meaning is defined in
the documentation for the driver.
That can be namespace by driver, so e.g. keys would be smmu_sysfs_name/<id> and
ddrc_sysfs_name/<id>.
To expose the SMMU ID, surely that's just the driver?OK, so some combination of changes would still be required for the SMMUSo even if it is solvable here, the kernel driver(s) will need to bePMU drivers will need to expose more information to userspace so that they
reworked. And that is just solving one case in many.
can be identified more precisely, yes. I wouldn't say they would need to be
"reworked".
PMCG, IORT, and SMMUv3 drivers.
implementations where the ID register is bogus and have to be overridden?