2026-01-21 18:59:54 +08:00

58 lines
1.6 KiB
Plaintext

Memory System Resource Partitioning and Monitoring (MPAM), for Armv8-A
----------------------------------------------------------
The MPAM is used to limit memory bandwidth and cache usage for ARM platform.
The required properties for driver is:
compatible = "arm,mpam"; /* MPAM for Arm */
reg = <>; /* mpam device base register */
The property type must be included, it is used to indicate type of mpam
device for the node. There are several type of mpam device:
MPAM_CLASS_SMMU = 0,
MPAM_CLASS_CACHE, /* Well known caches, e.g. L2 */
MPAM_CLASS_MEMORY, /* Main memory */
MPAM_CLASS_UNKNOWN, /* Everything else, e.g. TLBs etc */
The type of memory is set as:
type = <2>;
The type of cache is set as:
type = <1>;
MPAM support interrupt for error and overflow, the error-interrupt and
overflow-interrupt are defined in "Memory System Resource Partitioning
and Monitoring (MPAM), for Armv8-A", MPAM interrupts(section 8.8).
overflow-interrupt = <0>;
overflow-flags = <0>;
error-interrupt = <0>;
error-interrupt-flags = <0>;
Example:
mpam {
compatible = "arm,mpam";
mpam_memory0 {
reg = <0x0 0x10000000 0x0 0x10000>;
type = <2>; /* memory type */
numa-node-id = <0>;
overflow-interrupt = <0>;
overflow-flags = <0>;
error-interrupt = <0>;
error-interrupt-flags = <0>;
not-ready-max = <0>;
};
mpam_cache0 {
reg = <0x0 0x20000000 0x0 0x10000>;
type = <1>; /* cache type */
cache-id = <0>;
cache-level = <3>;
overflow-interrupt = <0>;
overflow-flags = <0>;
error-interrupt = <0>;
error-interrupt-flags = <0>;
not-ready-max = <0>;
};
};