From: Marc Zyngier <maz@kernel.org>
To: perlarsen@google.com
Cc: Oliver Upton <oliver.upton@linux.dev>,
Joey Gouly <joey.gouly@arm.com>,
Suzuki K Poulose <suzuki.poulose@arm.com>,
Zenghui Yu <yuzenghui@huawei.com>,
Catalin Marinas <catalin.marinas@arm.com>,
Will Deacon <will@kernel.org>,
Sudeep Holla <sudeep.holla@arm.com>,
linux-arm-kernel@lists.infradead.org, kvmarm@lists.linux.dev,
linux-kernel@vger.kernel.org, ahomescu@google.com,
armellel@google.com, arve@android.com, ayrton@google.com,
qperret@google.com, sebastianene@google.com, qwandor@google.com
Subject: Re: [PATCH v6 4/5] KVM: arm64: Bump the supported version of FF-A to 1.2
Date: Mon, 30 Jun 2025 09:41:09 +0100 [thread overview]
Message-ID: <86ldp9bp0a.wl-maz@kernel.org> (raw)
In-Reply-To: <20250627-virtio-msg-ffa-v6-4-8c02fd94edac@google.com>
On Fri, 27 Jun 2025 08:12:28 +0100,
Per Larsen via B4 Relay <devnull+perlarsen.google.com@kernel.org> wrote:
>
> From: Per Larsen <perlarsen@google.com>
>
> FF-A version 1.2 introduces the DIRECT_REQ2 ABI. Bump the FF-A version
> preferred by the hypervisor as a precursor to implementing the 1.2-only
> FFA_MSG_SEND_DIRECT_REQ2 and FFA_MSG_SEND_RESP2 messaging interfaces.
>
> We must also use SMCCC 1.2 for 64-bit SMCs if hypervisor negotiated FF-A
> 1.2, so ffa_set_retval is updated and a new function to call 64-bit smcs
> using SMCCC 1.2 with fallback to SMCCC 1.1 is introduced.
>
> Update ffa_call_supported to mark FF-A 1.2 interfaces as unsupported
> lest they get forwarded.
>
> Co-developed-by: Ayrton Munoz <ayrton@google.com>
> Signed-off-by: Ayrton Munoz <ayrton@google.com>
> Signed-off-by: Per Larsen <perlarsen@google.com>
> ---
> arch/arm64/kvm/hyp/nvhe/ffa.c | 14 ++++++++++----
> include/linux/arm_ffa.h | 1 +
> 2 files changed, 11 insertions(+), 4 deletions(-)
>
> diff --git a/arch/arm64/kvm/hyp/nvhe/ffa.c b/arch/arm64/kvm/hyp/nvhe/ffa.c
> index 5fd6474d96ae4b90d99796ee81bb36373219afc4..d543d1f5ddd62fb15f8d39f4ff7d5bb0006da4a1 100644
> --- a/arch/arm64/kvm/hyp/nvhe/ffa.c
> +++ b/arch/arm64/kvm/hyp/nvhe/ffa.c
> @@ -678,6 +678,12 @@ static bool ffa_call_supported(u64 func_id)
> case FFA_NOTIFICATION_SET:
> case FFA_NOTIFICATION_GET:
> case FFA_NOTIFICATION_INFO_GET:
> + /* Unimplemented interfaces added in FF-A 1.2 */
> + case FFA_MSG_SEND_DIRECT_REQ2:
> + case FFA_MSG_SEND_DIRECT_RESP2:
Are those actually optional?
> + case FFA_CONSOLE_LOG:
> + case FFA_PARTITION_INFO_GET_REGS:
> + case FFA_EL3_INTR_HANDLE:
> return false;
> }
>
> @@ -734,7 +740,7 @@ static int hyp_ffa_post_init(void)
> if (res.a0 != FFA_SUCCESS)
> return -EOPNOTSUPP;
>
> - switch (res.a2) {
> + switch (res.a2 & FFA_FEAT_RXTX_MIN_SZ_MASK) {
You should also check that the MBZ fields are still 0. Ideally, you'd
also do that with x3.
> case FFA_FEAT_RXTX_MIN_SZ_4K:
> min_rxtx_sz = SZ_4K;
> break;
> @@ -931,7 +937,7 @@ int hyp_ffa_init(void *pages)
>
> arm_smccc_1_2_smc(&(struct arm_smccc_1_2_regs) {
> .a0 = FFA_VERSION,
> - .a1 = FFA_VERSION_1_1,
> + .a1 = FFA_VERSION_1_2,
> }, &res);
> if (res.a0 == FFA_RET_NOT_SUPPORTED)
> return 0;
> @@ -952,10 +958,10 @@ int hyp_ffa_init(void *pages)
> if (FFA_MAJOR_VERSION(res.a0) != 1)
> return -EOPNOTSUPP;
>
> - if (FFA_MINOR_VERSION(res.a0) < FFA_MINOR_VERSION(FFA_VERSION_1_1))
> + if (FFA_MINOR_VERSION(res.a0) < FFA_MINOR_VERSION(FFA_VERSION_1_2))
> hyp_ffa_version = res.a0;
> else
> - hyp_ffa_version = FFA_VERSION_1_1;
> + hyp_ffa_version = FFA_VERSION_1_2;
>
> tx = pages;
> pages += KVM_FFA_MBOX_NR_PAGES * PAGE_SIZE;
> diff --git a/include/linux/arm_ffa.h b/include/linux/arm_ffa.h
> index 5bded24dc24fea8cdcbe42bf79c7c025c3fa5f4b..c0dd6183d956043192114a522b7eef465e7078ac 100644
> --- a/include/linux/arm_ffa.h
> +++ b/include/linux/arm_ffa.h
> @@ -128,6 +128,7 @@
> #define FFA_FEAT_RXTX_MIN_SZ_4K 0
> #define FFA_FEAT_RXTX_MIN_SZ_64K 1
> #define FFA_FEAT_RXTX_MIN_SZ_16K 2
> +#define FFA_FEAT_RXTX_MIN_SZ_MASK 3
nit: a mask is better expressed with GENMASK, making it obvious that
this is not just another value.
Thanks,
M.
--
Without deviation from the norm, progress is not possible.
next prev parent reply other threads:[~2025-06-30 8:41 UTC|newest]
Thread overview: 13+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-06-27 7:12 [PATCH v6 0/5] KVM: arm64: Support FF-A 1.2 and SEND_DIRECT2 ABI Per Larsen
2025-06-27 7:12 ` Per Larsen via B4 Relay
2025-06-27 7:12 ` [PATCH v6 1/5] KVM: arm64: Correct return value on host version downgrade attempt Per Larsen
2025-06-27 7:12 ` Per Larsen via B4 Relay
2025-06-27 7:12 ` [PATCH v6 2/5] KVM: arm64: Use SMCCC 1.2 for FF-A initialization and in host handler Per Larsen
2025-06-27 7:12 ` Per Larsen via B4 Relay
2025-06-27 7:12 ` [PATCH v6 3/5] KVM: arm64: Mark FFA_NOTIFICATION_* calls as unsupported Per Larsen
2025-06-27 7:12 ` Per Larsen via B4 Relay
2025-06-27 7:12 ` [PATCH v6 4/5] KVM: arm64: Bump the supported version of FF-A to 1.2 Per Larsen
2025-06-27 7:12 ` Per Larsen via B4 Relay
2025-06-30 8:41 ` Marc Zyngier [this message]
2025-06-27 7:12 ` [PATCH v6 5/5] KVM: arm64: Support FFA_MSG_SEND_DIRECT_REQ2 in host handler Per Larsen
2025-06-27 7:12 ` Per Larsen via B4 Relay
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=86ldp9bp0a.wl-maz@kernel.org \
--to=maz@kernel.org \
--cc=ahomescu@google.com \
--cc=armellel@google.com \
--cc=arve@android.com \
--cc=ayrton@google.com \
--cc=catalin.marinas@arm.com \
--cc=joey.gouly@arm.com \
--cc=kvmarm@lists.linux.dev \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-kernel@vger.kernel.org \
--cc=oliver.upton@linux.dev \
--cc=perlarsen@google.com \
--cc=qperret@google.com \
--cc=qwandor@google.com \
--cc=sebastianene@google.com \
--cc=sudeep.holla@arm.com \
--cc=suzuki.poulose@arm.com \
--cc=will@kernel.org \
--cc=yuzenghui@huawei.com \
/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.