[PATCH] arm64: cpufeature: Add support for the MPAM v0.1 architecture version

Ben Horgan ben.horgan at arm.com
Wed Jan 28 06:37:54 PST 2026


Hi Zeng,

On 1/28/26 08:54, Zeng Heng wrote:
> 
> 
> On 2026/1/27 22:30, Ben Horgan wrote:
>> Hi Zeng,
>>
>> On 1/4/26 13:34, Zeng Heng wrote:
>>> According to the MPAM spec [1], the supported architecture versions are
>>> v1.0, v1.1 and v0.1. MPAM versions v0.1 and v1.1 are functionally
>>> identical, but v0.1 additionally supports the FORCE_NS feature.
>>>
>>> ID_AA64PR | ID_AA64PR | MPAM Extension | Notes
>>> F0_EL1.   | F1_EL1.   | Architecture   |
>>> MPAM      | MPAM_frac | version        |
>>> ---------------------------------------------------------------------------
>>> 0b0000    | 0b0001    | v0.1           | MPAM v0.1 is implemented.
>>>            |           |                | MPAM v0.1 is the same as
>>> MPAM v1.1
>>>            |           |                | with FORCE_NS which is
>>>            |           |                | incompatible with MPAM v1.0.
>>> ---------------------------------------------------------------------------
>>> 0b0001    | 0b0000    | v1.0           | MPAM v1.0 is implemented.
>>> ---------------------------------------------------------------------------
>>> 0b0001    | 0b0001    | v1.1           | MPAM v1.1 is implemented.
>>>            |           |                | MPAM v1.1 includes all
>>> features of
>>>            |           |                | MPAM v1.0.
>>>            |           |                | It must not include FORCE_NS.
>>>
>>> FORCE_NS is a feature that operates in EL3 mode. Consequently, the
>>> current
>>> Linux MPAM driver is also compatible with MPAM v0.1. To support v0.1,
>>> the
>>> existing driver which only checks ID_AA64PFR0_EL1.MPAM for the major
>>> version needs to examine ID_AA64PFR1_EL1.MPAM_frac for the minor version
>>> as well.
>>>
>>> [1] https://developer.arm.com/documentation/ddi0598/db/?lang=en
>>>
>>> Signed-off-by: Zeng Heng <zengheng4 at huawei.com>
>> So far we've avoided added MPAM 0.1 support as we don't know of any
>> machines using it. What's your motivation here? Do you have a machine
>> with MPAM 0.1 that runs mainline linux?
>>
> 
> Thank you for your questions and for reviewing this proposal.
> 
> Regarding your inquiry about hardware usage and motivation:
> 
> Our KunPeng 920C chip (and numerous legacy SoCs in the same family)
> indeed implement MPAM v0.1 extensions. These are widely deployed in
> server and embedded equipment. More importantly, the product roadmap for
> these platforms explicitly includes migration to mainline Linux kernels
> MPAM driver for long-term support, making upstream MPAM v0.1 driver
> support is a critical requirement.

Thanks for the explanation. It does seem worthwhile to add mpam 0.1
support.

> 
> In the other hand, MPAM v0.1 extension version is formally documented in
> the ARM MPAM architecture specification (still included in the newest
> ARM DDI 0598D.b version). The specification explicitly defines v0.1 as a
> valid implementation for earlier hardware. Supporting documented
> architectural features is essential for the goal of hardware
> compatibility.
> 
> About technical compatibility, the MPAM v0.1 is designed as a
> functionally compatible extension with the existing MPAM driver
> framework. After having tested this on actual Kunpeng 920C hardware
> and other MPAM v1.0 platforms running mainline kernels, this ensures
> zero regression risk for v1.0/v1.1 users.
> 

I've tried your patch with a model, FVP_Base_RevC_2xAEMvA, setting mpam
0.1, 1.0 and 1.1 and the mpam driver probes as expected. For 0.1 this
required commenting out the versioning check in mpam_devices.c. It would
be good if this patch could come together with another updating that check.

Thanks,

Ben




More information about the linux-arm-kernel mailing list