From: Aneesh Kumar K.V <aneesh.kumar@kernel.org>
To: Jason Gunthorpe <jgg@nvidia.com>, Sudeep Holla <sudeep.holla@kernel.org>
Cc: linux-coco@lists.linux.dev, linux-arm-kernel@lists.infradead.org,
linux-kernel@vger.kernel.org,
Catalin Marinas <catalin.marinas@arm.com>,
Greg KH <gregkh@linuxfoundation.org>,
Jeremy Linton <jeremy.linton@arm.com>,
Jonathan Cameron <jic23@kernel.org>,
Lorenzo Pieralisi <lpieralisi@kernel.org>,
Mark Rutland <mark.rutland@arm.com>,
Will Deacon <will@kernel.org>,
Steven Price <steven.price@arm.com>,
Suzuki K Poulose <Suzuki.Poulose@arm.com>,
Andre Przywara <andre.przywara@arm.com>
Subject: Re: [PATCH v9 1/7] firmware: smccc: Add an Arm SMCCC bus
Date: Fri, 04 Sep 2026 11:20:13 +0530 [thread overview]
Message-ID: <yq5ase3py38q.fsf@kernel.org> (raw)
In-Reply-To: <20260903182152.GN4157646@nvidia.com>
Jason Gunthorpe <jgg@nvidia.com> writes:
> On Thu, Sep 03, 2026 at 05:18:16PM +0100, Sudeep Holla wrote:
>
>> Oh yes, we need this whatever you term as "duplication". I would argue
>> against terming it as duplications as if you look at the various SMCCC
>> based specification, we have zero consistency in how the VERSION command
>> is expected to work.
>
> Okay, then that pretty much settles it. Nothing to do
>
>> > Missing a check means FW upgrades might become Linux breaking.
>>
>> Are you referring to the SMCCC bus code or RSI in particular above. I don't
>> see any issue with SMCCC bus code check as that is the least we can do and
>> must not change with future versions of the firmware as well.
>
> Just in general, SMCCC drivers have to do something smart with the
> version.
>
> Like, is this OK:
>
> #define ARM_SMCCC_TRNG_MIN_VERSION 0x10000UL
>
> static inline bool smccc_probe_trng(void)
> {
> struct arm_smccc_res res;
>
> arm_smccc_1_1_invoke(ARM_SMCCC_TRNG_VERSION, &res);
> if ((s32)res.a0 < 0)
> return false;
>
> return res.a0 >= ARM_SMCCC_TRNG_MIN_VERSION;
> }
>
> ?
>
> It means you can never publish a version 2 that is ABI breaking
> because linux doesn't check for that. Was that ARM's intention with
> the version API? It's basically a completely pointless check that
> doesn't effectively do anything.
>
> My broader, more general point is that if SMCC is being made into a
> discoverable bus, that's great, but it would be even better if ARM
> could find a way to progmatically enumerate all the ABIs present on
> the SMCC interface to populate the bus. That would necessarily include
> some consistent treatment of versioning for consistent
> interoperability.
>
>> If lower is also set at v3.0, then I would argue it is firmware upgrade
>> issue expecting old kernel with old RSI version supported to work. If
>> that returns v2.0, the driver must work IIUC. Aneesh, hopefully I got this
>> right ?
>
> There was many long conversations about this and I think the
> conclusion was RSI will broadly not use versions for any kind of ABI
> control. It is too coarse to really work in the real world and we must
> have strong forward/backwards interoperability inside VMs forever.
Even if we take RMI as an example, SMC_RMI_ABI_VERSION returns the
lowest and highest supported interface versions.
After a firmware upgrade, either value can change. Unless the existing
kernel supports an interface version within the advertised range, the
upgrade will break compatibility. Including the major version in the
modalias does not help with this.
Even with separate kernel drivers for versions 1 and 2, we still face
the same issue. If the firmware initially supports version 1 and an
upgrade raises the lowest supported version to 2, the version 2 driver
can handle it. However, that is functionally equivalent to a single
driver supporting both interface versions. If the current kernel does
not support version 2, either through a single driver or a separate
driver, the firmware upgrade will break compatibility.
-aneesh
next prev parent reply other threads:[~2026-09-04 5:50 UTC|newest]
Thread overview: 44+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-08-05 6:32 [PATCH v9 0/7] Switch Arm SMCCC firmware services to an SMCCC bus Aneesh Kumar K.V (Arm)
2026-08-05 6:32 ` [PATCH v9 1/7] firmware: smccc: Add an Arm " Aneesh Kumar K.V (Arm)
2026-08-28 19:34 ` Jason Gunthorpe
2026-09-03 8:52 ` Aneesh Kumar K.V
2026-09-03 12:57 ` Jason Gunthorpe
2026-09-03 14:13 ` Sudeep Holla
2026-09-03 14:29 ` Jason Gunthorpe
2026-09-03 14:35 ` Aneesh Kumar K.V
2026-09-03 15:46 ` Jason Gunthorpe
2026-09-03 16:18 ` Sudeep Holla
2026-09-03 18:21 ` Jason Gunthorpe
2026-09-04 5:50 ` Aneesh Kumar K.V [this message]
2026-09-04 10:02 ` Sudeep Holla
2026-09-04 13:53 ` Jason Gunthorpe
2026-09-04 14:27 ` Sudeep Holla
2026-09-04 17:50 ` Jason Gunthorpe
2026-08-05 6:32 ` [PATCH v9 2/7] firmware: hwrng: arm_smccc_trng: Register as an SMCCC device Aneesh Kumar K.V (Arm)
2026-08-05 11:08 ` Catalin Marinas
2026-08-28 19:34 ` Jason Gunthorpe
2026-08-29 5:54 ` Aneesh Kumar K.V
2026-08-29 19:11 ` Jason Gunthorpe
2026-08-05 6:32 ` [PATCH v9 3/7] firmware: arm_rmm: Move RSI support out of arch/arm64 Aneesh Kumar K.V (Arm)
2026-08-05 11:21 ` Catalin Marinas
2026-08-05 13:05 ` Aneesh Kumar K.V
2026-08-10 10:03 ` Suzuki K Poulose
2026-08-28 19:34 ` Jason Gunthorpe
2026-08-29 5:58 ` Aneesh Kumar K.V
2026-08-05 6:32 ` [PATCH v9 4/7] arm64: realm: Move Realm memory encryption ops to RSI code Aneesh Kumar K.V (Arm)
2026-08-10 10:12 ` Suzuki K Poulose
2026-08-10 12:15 ` Aneesh Kumar K.V
2026-08-05 6:32 ` [PATCH v9 5/7] virt: coco: arm-cca-guest: Rename TSM report source file Aneesh Kumar K.V (Arm)
2026-08-28 19:34 ` Jason Gunthorpe
2026-08-29 6:02 ` Aneesh Kumar K.V
2026-08-29 19:07 ` Jason Gunthorpe
2026-08-05 6:32 ` [PATCH v9 6/7] firmware: smccc: arm-cca-guest: Bind the TSM provider to an SMCCC device Aneesh Kumar K.V (Arm)
2026-08-28 19:34 ` Jason Gunthorpe
2026-08-29 6:12 ` Aneesh Kumar K.V
2026-08-29 19:13 ` Jason Gunthorpe
2026-08-05 6:32 ` [PATCH v9 7/7] coco: guest: arm64: Replace dummy CCA device with sysfs ABI Aneesh Kumar K.V (Arm)
2026-08-28 19:34 ` Jason Gunthorpe
2026-08-05 9:51 ` [PATCH v9 0/7] Switch Arm SMCCC firmware services to an SMCCC bus Catalin Marinas
2026-08-05 12:22 ` Aneesh Kumar K.V
2026-08-10 9:35 ` Aneesh Kumar K.V
2026-08-10 10:24 ` Will Deacon
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=yq5ase3py38q.fsf@kernel.org \
--to=aneesh.kumar@kernel.org \
--cc=Suzuki.Poulose@arm.com \
--cc=andre.przywara@arm.com \
--cc=catalin.marinas@arm.com \
--cc=gregkh@linuxfoundation.org \
--cc=jeremy.linton@arm.com \
--cc=jgg@nvidia.com \
--cc=jic23@kernel.org \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-coco@lists.linux.dev \
--cc=linux-kernel@vger.kernel.org \
--cc=lpieralisi@kernel.org \
--cc=mark.rutland@arm.com \
--cc=steven.price@arm.com \
--cc=sudeep.holla@kernel.org \
--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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox