From: Zhi Wang <zhiw@nvidia.com>
To: Danilo Krummrich <dakr@kernel.org>
Cc: Alexandre Courbot <acourbot@nvidia.com>,
David Airlie <airlied@gmail.com>, Simona Vetter <simona@ffwll.ch>,
Alice Ryhl <aliceryhl@google.com>,
"Benno Lossin" <lossin@kernel.org>, Gary Guo <gary@garyguo.net>,
John Hubbard <jhubbard@nvidia.com>,
Alistair Popple <apopple@nvidia.com>,
Timur Tabi <ttabi@nvidia.com>,
Eliot Courtney <ecourtney@nvidia.com>, <nova-gpu@lists.linux.dev>,
<linux-kernel@vger.kernel.org>, <rust-for-linux@vger.kernel.org>
Subject: Re: [PATCH] gpu: nova-core: fix incorrect naming/framing of GSP-FMC firmware
Date: Wed, 26 Aug 2026 11:14:08 +0300 [thread overview]
Message-ID: <20260826111408.34d47a7d@inno-dell> (raw)
In-Reply-To: <DKYA3P4E2CRC.3NVNCJ42J2FRN@kernel.org>
On Tue, 25 Aug 2026 21:40:58 +0200
"Danilo Krummrich" <dakr@kernel.org> wrote:
> On Tue Aug 25, 2026 at 10:31 AM CEST, Alexandre Courbot wrote:
> > The GSP-FMC firmware code lived in `firmware/fsp.rs` and described
> > itself as running on the FSP. This is incorrect: GSP-FMC is loaded
> > by the FSP, but runs on the GSP as the loader and verifier of
> > GSP-RM. FSP secure-boots on its own before the driver even starts.
> >
> > Correct the naming and files used to contain the GSP-FMC code, by:
> >
> > - Renaming `firmware/fsp.rs` to `firmware/gsp_fmc.rs` (as GSP-FMC
> > is not the FSP firmware),
> > - Changing the prefix of some declarations in that file to `FMC` or
> > `GspFmc` (interestingly some were already correct),
> > - Fixing a mismatch (FMC means "First Mutable Code") in `fsp.rst`.
>
> Good catch,
>
> Reviewed-by: Danilo Krummrich <dakr@kernel.org>
>
> > FSP (hardware root of trust, boots from ROM)
> > - -> FMC (Falcon Microcontroller, verified by FSP)
> > + -> FMC (First Mutable Code, verified by FSP)
>
> That reminds me that I'd like to have a table in
> Documentation/gpu/nova/ listing and explaining all abbreviations.
>
Thanks for catching this. I got this abbreviation from other patch
comments.
> In nouveau it's a huge mess and all the abbreviations became rather
> confusing.
>
...
> We already have something is fsp.rst, but I think it is misleading
> and needs to be fixed as well.
>
I just dig some docs, there are multiple FMCs for different
controllers, here should be GSP-FMC as well.
Alex, you can include the following diff for fixing the chart.
Moving forward, let me go through the fsp.rst and check with some docs
besides other patch comments as the source.
diff --git a/Documentation/gpu/nova/core/fsp.rst
b/Documentation/gpu/nova/core/fsp.rst index 52d618d22bb8..cddaafe69e6b
100644 --- a/Documentation/gpu/nova/core/fsp.rst
+++ b/Documentation/gpu/nova/core/fsp.rst
@@ -79,22 +79,23 @@ GSP-RM.
The message flow is::
- nova-core FSP
- | |
- | 1. Poll scratch register |
- | (wait for FSP boot complete) |
- | |
- | 2. COT message ------------> |
- | (FMC addr, signatures, |
- | boot params) |
- | |
- | |--- Verify FMC signature
- | |--- Boot FMC
- | |--- FMC loads GSP-RM
- | |
- | 3. COT response <------------ |
- | (success/error) |
- | |
+ nova-core FSP GSP
+ | | |
+ | 1. Poll scratch register | |
+ | (wait for FSP boot complete) | |
+ | | |
+ | 2. COT message ------------> | |
+ | (GSP-FMC addr, signatures, | |
+ | boot params) | |
+ | | |
+ | |--- Verify GSP-FMC |
+ | | signature |
+ | | |
+ | |--- Trigger GSP-FMC boot ->|
+ | 3. COT response <------------ |
|--- GSP-FMC verifies
+ | (command status only; | |
and starts GSP-RM
+ | not GSP-ready) | |
+ | | |
FSP message format
==================
> nova-core FSP
> | |
> | 1. Poll scratch register |
> | (wait for FSP boot complete) |
> | |
> | 2. COT message ------------> |
> | (FMC addr, signatures, |
> | boot params) |
> | |
> | |--- Verify FMC signature
> | |--- Boot FMC
> | |--- FMC loads GSP-RM
> | |
> | 3. COT response <------------ |
> | (success/error) |
> | |
>
> This reads as if FMC runs on FSP and FMC (running on the FSP)
> subsequently loads GSP-RM. Maybe it should be fixed by this patch, as
> it is the exact same mistake this patch addresses.
>
next prev parent reply other threads:[~2026-08-26 8:14 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-08-25 8:31 [PATCH] gpu: nova-core: fix incorrect naming/framing of GSP-FMC firmware Alexandre Courbot
2026-08-25 19:40 ` Danilo Krummrich
2026-08-26 8:14 ` Zhi Wang [this message]
2026-08-25 23:21 ` Eliot Courtney
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=20260826111408.34d47a7d@inno-dell \
--to=zhiw@nvidia.com \
--cc=acourbot@nvidia.com \
--cc=airlied@gmail.com \
--cc=aliceryhl@google.com \
--cc=apopple@nvidia.com \
--cc=dakr@kernel.org \
--cc=ecourtney@nvidia.com \
--cc=gary@garyguo.net \
--cc=jhubbard@nvidia.com \
--cc=linux-kernel@vger.kernel.org \
--cc=lossin@kernel.org \
--cc=nova-gpu@lists.linux.dev \
--cc=rust-for-linux@vger.kernel.org \
--cc=simona@ffwll.ch \
--cc=ttabi@nvidia.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox