[PATCH v4 0/6] arm-mpam: Add basic device tree support for resctrl

Yin Li yin.li at oss.qualcomm.com
Sun Nov 8 18:58:48 PST 2026



On 11/6/2026 11:08 PM, Rob Herring wrote:
> On Thu, Nov 05, 2026 at 01:53:47PM +0800, Ping Li wrote:
>> Hi Yin,
>>
>> Sure. Our memory controller MSC is described as a top-level node.
>> The MPAM register window is mapped independently in the SoC (the
>> component sits on the DDR egress path rather than being a sub-block
>> of a memory-controller DT node), so the node is a direct child of
>> the root:
>>
>> 	ddr_msc: msc at 2238000 {
>> 		compatible = "<vendor>,<soc>-ddr-qos",
>> 			     "arm,mpam-memory-controller-msc",
>> 			     "arm,mpam-msc";
>> 		reg = <0x0 0x02238000 0x0 0x1000>;
>> 		arm,not-ready-us = <10>;
>> 	};
>>
>> The first compatible in the list is for our platform glue; I have
>> replaced it with a placeholder here since it is not relevant to the
>> binding discussion.
>>
>> Notes on the properties, in case they matter for the binding:
>>
>> - reg: the MPAM register window. Only a subset of the architectural
>>    register space is implemented, so the size is the truncated window.
>> - single RIS: the component reports HAS_RIS=0, so there are no
>>    ris at N child nodes.
>> - no interrupts: the component has no MPAM ESR block, so there is
>>    no interrupts property.
>> - arm,not-ready-us: 10.
>>
>> The verified probe path: the node matches via "arm,mpam-msc", and
>> patch 6/8 in v3 classifies it as MPAM_CLASS_MEMORY and treats it as
>> accessible from all CPUs, which is exactly the behavior we need.
>>
>> One question in return: with the node being a direct child of the
>> root rather than a child of a memory-controller node, is that a
>> form the binding should cover? If the binding expects the MSC to
>> always be a sub-node of a memory controller, we would need the
>> top-level form to be allowed as well.
> 
> This would be why we're not upstreaming the binding without users. We
> need actual h/w to validate the binding works.
> 

Hi Ping, Rob,

Ping, thank you for the detailed description and for confirming this
on hardware.

To answer your question: the top-level form should be supported.
Unlike cache MSCs, where both class_id and component_id are derived
from the parent cache node, memory controller MSCs derive both from
the MSC node itself via of_node_to_nid(). There is no requirement for
the MSC to be a sub-node of a memory-controller node.

Rob, with Ping's hardware-validated use case covering the top-level
form, we would like to restore memory controller MSC support in v5.
We will use Ping's DT as a reference for the binding example.

Ping, a Tested-by from you would be very welcome once v5 is posted.

Thanks,
Yin


> Rob

-- 
Thx and BRs,
Yin




More information about the linux-arm-kernel mailing list