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>; }; };