From: Jonathan Cameron <jonathan.cameron@oss.qualcomm.com>
To: Andre Przywara <andre.przywara@arm.com>
Cc: Lorenzo Pieralisi <lpieralisi@kernel.org>,
Hanjun Guo <guohanjun@huawei.com>,
Sudeep Holla <sudeep.holla@kernel.org>,
Catalin Marinas <catalin.marinas@arm.com>,
Will Deacon <will@kernel.org>,
"Rafael J . Wysocki" <rafael@kernel.org>,
Len Brown <lenb@kernel.org>, James Morse <james.morse@arm.com>,
Ben Horgan <ben.horgan@arm.com>,
Reinette Chatre <reinette.chatre@intel.com>,
Fenghua Yu <fenghuay@nvidia.com>,
Jonathan Cameron <jic23@kernel.org>,
Srivathsa L Rao <srivathsa.rao@oss.qualcomm.com>,
Ganapatrao Kulkarni <ganapatrao.kulkarni@oss.qualcomm.com>,
Trilok Soni <tsoni@quicinc.com>,
Srinivas Ramana <sramana@qti.qualcomm.com>,
Niyas Sait <niyas.sait@arm.com>, Lee Trager <lee@trager.us>,
Ritwick Sharma <ritwick.sharma@arm.com>,
linux-acpi@vger.kernel.org, linux-arm-kernel@lists.infradead.org,
linux-kernel@vger.kernel.org
Subject: Re: [PATCH v6 08/10] arm_mpam: add MPAM-Fb MSC firmware access support
Date: Thu, 30 Jul 2026 12:05:16 -0700 [thread overview]
Message-ID: <20260730120516.000059aa@oss.qualcomm.com> (raw)
In-Reply-To: <20260730152539.2712312-9-andre.przywara@arm.com>
On Thu, 30 Jul 2026 17:25:37 +0200
Andre Przywara <andre.przywara@arm.com> 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@arm.com>
On trivial style consistency comment. Otherwise looks fine to me.
Reviewed-by: Jonathan Cameron <jonathan.cameron@oss.qualcomm.com>
> diff --git a/drivers/resctrl/mpam_fb.c b/drivers/resctrl/mpam_fb.c
> new file mode 100644
> index 000000000000..e2ce28a602aa
> --- /dev/null
> +++ b/drivers/resctrl/mpam_fb.c
...
> +static int mpam_fb_send_request(struct mpam_pcc_chan *pcc_chan, 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 pcc_mbox_chan *chan;
> + void __iomem *payload_ofs;
> + int mpam_fb_err = 0;
> + u32 status;
> + int ret;
> +
> + 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_MSC_WRITE_CMD:
> + mpam_fb_build_write_message(msc_id, reg, *result,
> + token, chan->shmem);
> + break;
> + case MPAM_MSC_READ_CMD:
> + mpam_fb_build_read_message(msc_id, reg, token, chan->shmem);
> + break;
> + case MPAM_PROTOCOL_VERSION_CMD:
> + mpam_fb_build_version_message(token, chan->shmem);
> + break;
> + default:
> + dev_err(pcc_chan->pcc_cl.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;
> +
> + pcc_shmem = chan->shmem;
> + payload_ofs = chan->shmem + sizeof(*pcc_shmem);
> + status = readl(&pcc_shmem->command);
> + if (FIELD_GET(MPAM_MSC_TOKEN_MASK, status) != token) {
> + ret = -ETIMEDOUT;
> +
Slightly odd style. I'd drop blank lines in places like this.
They aren't consistent as things stand.
> + goto out_err;
> + }
> +
> + mpam_fb_err = readl(payload_ofs + 0x0);
> + if (mpam_fb_err < 0) {
> + ret = mpam_fb_translate_error_code(mpam_fb_err);
> +
> + goto out_err;
> + }
> +
> + if (mpam_fb_command != MPAM_MSC_WRITE_CMD)
> + *result = readl(payload_ofs + 0x4);
> +
> + mutex_unlock(&pcc_chan->pcc_chan_lock);
> +
> + return 0;
> +
> +out_err:
> + mutex_unlock(&pcc_chan->pcc_chan_lock);
> +
> + mpam_fb_disable_mpam(ret, mpam_fb_err);
> +
> + return ret;
> +}
next prev parent reply other threads:[~2026-07-30 19:05 UTC|newest]
Thread overview: 19+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-07-30 15:25 [PATCH v6 00/10] arm_mpam: Add MPAM-Fb firmware support Andre Przywara
2026-07-30 15:25 ` [PATCH v6 01/10] arm_mpam: let low level MSC accessors return an error Andre Przywara
2026-07-30 15:25 ` [PATCH v6 02/10] arm_mpam: propagate MSC access errors for hw_probe functions Andre Przywara
2026-07-30 15:25 ` [PATCH v6 03/10] arm_mpam: propagate MSC access errors for MBWU counters Andre Przywara
2026-07-30 15:25 ` [PATCH v6 04/10] arm_mpam: propagate MSC access errors for msmon helpers Andre Przywara
2026-07-30 15:25 ` [PATCH v6 05/10] arm_mpam: propagate MSC access errors for __ris_msmon_read() Andre Przywara
2026-07-30 15:25 ` [PATCH v6 06/10] arm_mpam: propagate MSC access errors for state saving function Andre Przywara
2026-07-30 15:25 ` [PATCH v6 07/10] arm_mpam: prepare mon_sel locking for MPAM-Fb Andre Przywara
2026-07-30 18:37 ` Jonathan Cameron
2026-07-30 21:46 ` Lee Trager
2026-07-30 15:25 ` [PATCH v6 08/10] arm_mpam: add MPAM-Fb MSC firmware access support Andre Przywara
2026-07-30 19:05 ` Jonathan Cameron [this message]
2026-07-30 15:25 ` [PATCH v6 09/10] arm_mpam: change MPAM-Fb error IRQ to use a threaded IRQ handler Andre Przywara
2026-07-30 19:13 ` Jonathan Cameron
2026-07-30 15:25 ` [PATCH v6 10/10] arm_mpam: detect and enable MPAM-Fb PCC support Andre Przywara
2026-07-30 16:13 ` Ben Horgan
2026-07-30 19:17 ` Jonathan Cameron
2026-07-30 22:28 ` Lee Trager
2026-07-30 17:10 ` [PATCH v6 00/10] arm_mpam: Add MPAM-Fb firmware support Ben Horgan
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20260730120516.000059aa@oss.qualcomm.com \
--to=jonathan.cameron@oss.qualcomm.com \
--cc=andre.przywara@arm.com \
--cc=ben.horgan@arm.com \
--cc=catalin.marinas@arm.com \
--cc=fenghuay@nvidia.com \
--cc=ganapatrao.kulkarni@oss.qualcomm.com \
--cc=guohanjun@huawei.com \
--cc=james.morse@arm.com \
--cc=jic23@kernel.org \
--cc=lee@trager.us \
--cc=lenb@kernel.org \
--cc=linux-acpi@vger.kernel.org \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-kernel@vger.kernel.org \
--cc=lpieralisi@kernel.org \
--cc=niyas.sait@arm.com \
--cc=rafael@kernel.org \
--cc=reinette.chatre@intel.com \
--cc=ritwick.sharma@arm.com \
--cc=sramana@qti.qualcomm.com \
--cc=srivathsa.rao@oss.qualcomm.com \
--cc=sudeep.holla@kernel.org \
--cc=tsoni@quicinc.com \
--cc=will@kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.