[PATCH v9 10/12] arm_mpam: add MPAM-Fb MSC firmware access support

Lee Trager lee at trager.us
Mon Aug 31 15:19:59 PDT 2026


On 8/7/26 3:54 AM, Andre Przywara wrote:

> +
> +static int mpam_fb_send_request(struct mpam_msc *msc, u32 msc_id,
> +				u16 reg, u32 *result, int mpam_fb_command)
> +{
> +	unsigned int token = atomic_inc_return(&mpam_fb_token);
> +	struct acpi_pcct_ext_pcc_shared_memory __iomem *pcc_shmem;
> +	struct mpam_pcc_chan *pcc_chan;
> +	struct pcc_mbox_chan *chan;
> +	void __iomem *payload_ofs;
> +	int mpam_fb_err = 0;
> +	u32 status;
> +	int ret;
> +
> +	pcc_chan = msc->pcc_chan;
> +	if (!pcc_chan)
> +		return -ENODEV;
> +
> +	chan = pcc_chan->pcc_chan;
> +
> +	/* prune token to fit into the 10 bits inside the command register */
> +	token = FIELD_GET(MPAM_MSC_TOKEN_MASK,
> +			  FIELD_PREP(MPAM_MSC_TOKEN_MASK, token));
> +
> +	mutex_lock(&pcc_chan->pcc_chan_lock);
> +
> +	switch (mpam_fb_command) {
> +	case MPAM_PROTOCOL_VERSION_CMD:
> +		mpam_fb_build_version_message(token, chan->shmem);
> +		break;
> +	case MPAM_MSC_READ_CMD:
> +		mpam_fb_build_read_message(msc_id, reg, token, chan->shmem);
> +		break;
> +	case MPAM_MSC_WRITE_CMD:
> +		mpam_fb_build_write_message(msc_id, reg, *result,
> +					    token, chan->shmem);
> +		break;
> +	default:
> +		dev_err(&msc->pdev->dev, "unsupported MPAM-Fb command %d\n",
> +			mpam_fb_command);
> +		ret = -EINVAL;
> +		goto out_err;
> +	}
> +
> +	ret = mbox_send_message(chan->mchan, NULL);
> +	if (ret < 0)
> +		goto out_err;
> +
While testing this series when building arm64 allnoconfig with 
CONFIG_ARM4_MPAM=y I got a link failure:

drivers/resctrl/mpam_fb.o: undefined reference to `mbox_send_message`

Since the ACPI MPAM-Fb transport also reqiures PCC, wold it make sense 
for ARM64_MPAM_DRIVER to select both dependencies?

     select MAILBOX
     select PCC if ACPI

Lee



More information about the linux-arm-kernel mailing list