Re: [PATCH] gpu: nova-core: fix incorrect naming/framing of GSP-FMC firmware
From: Danilo Krummrich
Date: Tue Aug 25 2026 - 15:44:02 EST
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@xxxxxxxxxx>
> 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.
In nouveau it's a huge mess and all the abbreviations became rather confusing.
I think we already have a couple unexplained ones in nova-core, such as ACR
(Authenticated Code RAM), if that is even correct. :)
Besides that I think it would also be nice to have a basic graphs of the
different boot sequences in the documentation as well, including the different
firmware images and the purpose they serve, including sub-components.
For instance, I think we never mention where ACR lives (SEC2 before Hopper,
GSP-FMC since Hopper), if I got that correct.
We already have something is fsp.rst, but I think it is misleading and needs to
be fixed as well.
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.