mirror of
https://github.com/torvalds/linux.git
synced 2024-12-24 11:51:27 +00:00
19a469a587
On a big-little system, PMUs can be wired to CPUs using per CPU interrups (PPI). In this case, it is important to make sure that the enable/disable do happen on the right set of CPUs. So instead of relying on the interrupt-affinity property, we can use the actual percpu affinity that DT exposes as part of the interrupt specifier. The DT binding is also updated to reflect the fact that the interrupt-affinity property shouldn't be used in that case. Acked-by: Rob Herring <robh@kernel.org> Tested-by: Caesar Wang <wxt@rock-chips.com> Signed-off-by: Marc Zyngier <marc.zyngier@arm.com> Signed-off-by: Will Deacon <will.deacon@arm.com> Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
69 lines
2.3 KiB
Plaintext
69 lines
2.3 KiB
Plaintext
* ARM Performance Monitor Units
|
|
|
|
ARM cores often have a PMU for counting cpu and cache events like cache misses
|
|
and hits. The interface to the PMU is part of the ARM ARM. The ARM PMU
|
|
representation in the device tree should be done as under:-
|
|
|
|
Required properties:
|
|
|
|
- compatible : should be one of
|
|
"apm,potenza-pmu"
|
|
"arm,armv8-pmuv3"
|
|
"arm,cortex-a72-pmu"
|
|
"arm,cortex-a57-pmu"
|
|
"arm,cortex-a53-pmu"
|
|
"arm,cortex-a17-pmu"
|
|
"arm,cortex-a15-pmu"
|
|
"arm,cortex-a12-pmu"
|
|
"arm,cortex-a9-pmu"
|
|
"arm,cortex-a8-pmu"
|
|
"arm,cortex-a7-pmu"
|
|
"arm,cortex-a5-pmu"
|
|
"arm,arm11mpcore-pmu"
|
|
"arm,arm1176-pmu"
|
|
"arm,arm1136-pmu"
|
|
"brcm,vulcan-pmu"
|
|
"cavium,thunder-pmu"
|
|
"qcom,scorpion-pmu"
|
|
"qcom,scorpion-mp-pmu"
|
|
"qcom,krait-pmu"
|
|
- interrupts : 1 combined interrupt or 1 per core. If the interrupt is a per-cpu
|
|
interrupt (PPI) then 1 interrupt should be specified.
|
|
|
|
Optional properties:
|
|
|
|
- interrupt-affinity : When using SPIs, specifies a list of phandles to CPU
|
|
nodes corresponding directly to the affinity of
|
|
the SPIs listed in the interrupts property.
|
|
|
|
When using a PPI, specifies a list of phandles to CPU
|
|
nodes corresponding to the set of CPUs which have
|
|
a PMU of this type signalling the PPI listed in the
|
|
interrupts property, unless this is already specified
|
|
by the PPI interrupt specifier itself (in which case
|
|
the interrupt-affinity property shouldn't be present).
|
|
|
|
This property should be present when there is more than
|
|
a single SPI.
|
|
|
|
|
|
- qcom,no-pc-write : Indicates that this PMU doesn't support the 0xc and 0xd
|
|
events.
|
|
|
|
- secure-reg-access : Indicates that the ARMv7 Secure Debug Enable Register
|
|
(SDER) is accessible. This will cause the driver to do
|
|
any setup required that is only possible in ARMv7 secure
|
|
state. If not present the ARMv7 SDER will not be touched,
|
|
which means the PMU may fail to operate unless external
|
|
code (bootloader or security monitor) has performed the
|
|
appropriate initialisation. Note that this property is
|
|
not valid for non-ARMv7 CPUs or ARMv7 CPUs booting Linux
|
|
in Non-secure state.
|
|
|
|
Example:
|
|
|
|
pmu {
|
|
compatible = "arm,cortex-a9-pmu";
|
|
interrupts = <100 101>;
|
|
};
|