[PATCH 5/5] arm_mpam: detect and enable MPAM-Fb PCC support
Andre Przywara
andre.przywara at arm.com
Thu Apr 30 02:20:42 PDT 2026
Hi Sudeep,
thanks for having a look!
On 4/30/26 10:35, Sudeep Holla wrote:
> On Wed, Apr 29, 2026 at 04:13:39PM +0200, Andre Przywara wrote:
>> The Arm MPAM-Fb specification [1] describes a protocol to access MSC
>> registers through a firmware interface. This requires a shared memory
>> region to hold the message, and a mailbox to trigger the access.
>> For ACPI this is wrapped as a PCC channel, described using existing
>> ACPI abstractions.
>>
>> Add code to parse those PCC table descriptions associated with an MSC,
>> and store the parsed information in the MSC struct.
>> This will be used by the MPAM-Fb access wrapper code.
>>
>> [1] https://developer.arm.com/documentation/den0144/latest
>>
>> Signed-off-by: Andre Przywara <andre.przywara at arm.com>
>> ---
>> drivers/acpi/arm64/mpam.c | 2 ++
>> drivers/resctrl/mpam_devices.c | 46 +++++++++++++++++++++++++++++++---
>> 2 files changed, 45 insertions(+), 3 deletions(-)
>>
>> diff --git a/drivers/acpi/arm64/mpam.c b/drivers/acpi/arm64/mpam.c
>> index 99c2bdbb3314..edb4d10e8dc3 100644
>> --- a/drivers/acpi/arm64/mpam.c
>> +++ b/drivers/acpi/arm64/mpam.c
>> @@ -341,6 +341,8 @@ static struct platform_device * __init acpi_mpam_parse_msc(struct acpi_mpam_msc_
>> } else if (iface == MPAM_IFACE_PCC) {
>> props[next_prop++] = PROPERTY_ENTRY_U32("pcc-channel",
>> tbl_msc->base_address);
>> + props[next_prop++] = PROPERTY_ENTRY_U32("msc-id",
>> + tbl_msc->identifier);
>
> I may be looking at the wrong documents, but neither DEN0065 nor DEN0144 carry
> any definitions of pcc-channel and msc-id for the device with HID
> "“ARMHAA5C". Since "pcc-channel" is already merged, I think I am looking at
> wrong documents, please point me to the right one.
Please excuse my ignorance, but I was under the assumption that the
strings used here are just unique identifiers that need to match the
property_get calls in the MPAM code. Is there any requirement to match
those property_entry.name fields with the names given in some spec? And
those strings are kernel-internal only, right? But for DT would match
exactly the property names?
Those properties correspond to fields in table 4 in DEN0065, as also
described in struct acpi_mpam_msc_node in include/acpi/actbl2.h:
- There is "Identifier", that uses distinct IDs for PCC and native MSCs.
I named it msc-id, because I'd assume that to be a good name for any
(yet to be defined) DT property.
- Then there is "Base address", which doubles as the "subspace ID of the
PCC channel", when MPAM-Fb is used. As you mentioned, this is already
in, and the original spec name would be very misleading, I think.
So shall those strings be renamed to match the struct names? Or shall I
keep the more readable names as of now, and add comments linking them to
the spec/struct?
Cheers,
Andre
More information about the linux-arm-kernel
mailing list