Re: [PATCH] gpu: nova-core: fix incorrect naming/framing of GSP-FMC firmware

"Danilo Krummrich" <[email protected]>
Newsgroups dev.linux.lists.nova-gpu,org.kernel.vger.linux-kernel,org.kernel.vger.rust-for-linux
Message-ID <[email protected]>
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 <[email protected]>

>       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.
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.