[PATCH v4 08/10] arm_mpam: add MPAM-Fb MSC firmware access support

Andre Przywara andre.przywara at arm.com
Tue Jul 28 05:27:01 PDT 2026


Hi,

On 7/24/26 20:03, Sudeep Holla wrote:
> On Fri, Jul 24, 2026 at 06:08:52PM +0100, Ben Horgan wrote:
>> Hi Andre,
>>
>> On 7/23/26 16:54, Andre Przywara wrote:
>>> The Arm MPAM Firmware-backed (Fb) Profile document[1] describes an
>>> alternative way of accessing the "Memory System Components" (MSC) in an
>>> MPAM enabled system.
>>>
>>> Normally the MSCs are MMIO mapped, but in some implementations this
>>> might not be possible (MSC located outside of the local socket, MSC
>>> mapped secure-only) or desirable (direct MMIO access too slow or needs
>>> to be mediated through a control processor). MPAM-fb standardises a
>>> protocol to abstract MSC accesses, building on the SCMI protocol.
>>>
>>> Add functions that do an MSC read or write access by redirecting the
>>> request through a firmware interface. For now this done via an ACPI
>>> PCC shared memory and mailbox combination.
>>>
>>> Since the protocol used is only a small subset of the full SCMI spec,
>>> and the SCMI protocol has no full ACPI support anyway, open-code the
>>> (simple) SCMI message generation, for just the fields we need.
>>>
>>> [1] https://developer.arm.com/documentation/den0144/latest
>>>
>>> Signed-off-by: Andre Przywara <andre.przywara at arm.com>
>>> ---
>>>   drivers/resctrl/Makefile        |   2 +-
>>>   drivers/resctrl/mpam_devices.c  |  27 ++++-
>>>   drivers/resctrl/mpam_fb.c       | 197 ++++++++++++++++++++++++++++++++
>>>   drivers/resctrl/mpam_internal.h |  20 ++++
>>>   include/linux/arm_mpam.h        |   2 +-
>>>   5 files changed, 240 insertions(+), 8 deletions(-)
>>>   create mode 100644 drivers/resctrl/mpam_fb.c
>>>
> 
> [...]

[ ... ]

>>> +
>>> +	writel_relaxed(PCC_CHAN_FLAGS_IRQ, &pcc_shmem->flags);
>>
>> Are you sure it's ok to unconditionally set this irq bit? I know we found out that we do need it set
>> sometimes. What does setting it actually based on what the platform does look like?
>>
> 
> You need to set it if you are not polling the PCC channels for completions.

So I was wondering about that: why does the PCC *user* need to set it 
here? That's probably more of a protocol issue, but to me it breaks the 
abstraction: MPAM-Fb just uses the mailbox provided via PCC, and doesn't 
care about whether it's polling or using an interrupt, because that is a 
PCC detail.
So is there a way to figure this out cleanly? I only found that one 
could possibly chase down the "struct mbox_chan" controller struct, then 
look at txdone_method, or something similar, but that sounds very dodgy?

Do you have any ideas on this?

Cheers,
Andre



More information about the linux-arm-kernel mailing list