Linux Confidential Computing Development
 help / color / mirror / Atom feed
From: Jason Gunthorpe <jgg@nvidia.com>
To: Sudeep Holla <sudeep.holla@kernel.org>
Cc: "Aneesh Kumar K.V" <aneesh.kumar@kernel.org>,
	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, 4 Sep 2026 10:53:53 -0300	[thread overview]
Message-ID: <20260904135353.GQ4157646@nvidia.com> (raw)
In-Reply-To: <20260904-keen-fiery-fulmar-702fb3@sudeepholla>

On Fri, Sep 04, 2026 at 11:02:56AM +0100, Sudeep Holla wrote:
> > 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.
> 
> I didn't get that. The example above checks for minimum TRNG version,
> so it won't break in any way for v2. What am I missing ?

If ARM sticks to what they have done in other specs, a V2 could define
ABI that is not compatible with V1 at all. (semantic versioning and all)

So the kernel check above will happily pass a v2 interface and then
send garbage into the incompatible ABI.

The ecosystem couldn't accept this. An ABI breaking V2 can never
exist, so the versioning is much less useful that a normal semver
scheme.

If it was MAJOR(version) == 1 then it might make a little more sense.

I'm saying that broadly none of this version stuff seems to be doing
much useful work. Even the more complicated RSI lower/uppper stuff was
not good enough and they are going to follow a new scheme.

I think the bus is a nice idea! If you keep going down that logical
path the next stop is to have a SMCCC that discovers the FW ABIs
available. That would be a good moment to take a pause and try to set
a versioning system standard that actually works consistently for the
entire ecosystem.

IMHO to lean into the bus design I would have a discovery SMCCC that
returns a list of supported ABIs, something like (spec, spec version,
ABI, FID, feature supported bitmap).  There could be overlaps if the
FW supports several ABI incompatible versions, like RSI v1 and RSI v2.

Then you do a driver search and the strongest match sees the bus code
issue a "set SMCCC" that says 'I picked index #3 behave like that
please' and then the actual SMCC driver would use a features scheme to
further fine tune things.

Instead of versions you have ABI's and feature bits describing what is
supported. This is far closer to how the HW interfaces ARM designs
tend to work, and is much more aligned to how I understand RMM is
going.

It could be consistent and layer on top of what you have now without
ABI breaking anything.

Regards,
Jason

  reply	other threads:[~2026-09-04 13:53 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
2026-09-04 10:02                 ` Sudeep Holla
2026-09-04 13:53                   ` Jason Gunthorpe [this message]
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=20260904135353.GQ4157646@nvidia.com \
    --to=jgg@nvidia.com \
    --cc=Suzuki.Poulose@arm.com \
    --cc=andre.przywara@arm.com \
    --cc=aneesh.kumar@kernel.org \
    --cc=catalin.marinas@arm.com \
    --cc=gregkh@linuxfoundation.org \
    --cc=jeremy.linton@arm.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