From: "Alexandre Courbot" <acourbot@nvidia.com>
To: "Zhi Wang" <zhiw@nvidia.com>
Cc: <dakr@kernel.org>, <airlied@gmail.com>, <simona@ffwll.ch>,
<ojeda@kernel.org>, <alex.gaynor@gmail.com>,
<boqun.feng@gmail.com>, <gary@garyguo.net>,
<bjorn3_gh@protonmail.com>, <lossin@kernel.org>,
<a.hindborg@kernel.org>, <aliceryhl@google.com>,
<tmgross@umich.edu>, <jhubbard@nvidia.com>,
<ecourtney@nvidia.com>, <apopple@nvidia.com>, <cjia@nvidia.com>,
<smitra@nvidia.com>, <kjaju@nvidia.com>, <alkumar@nvidia.com>,
<ankita@nvidia.com>, <aniketa@nvidia.com>, <kwankhede@nvidia.com>,
<targupta@nvidia.com>, <nova-gpu@lists.linux.dev>,
<linux-kernel@vger.kernel.org>, <zhiwang@kernel.org>
Subject: Re: [PATCH v2 1/1] gpu: nova-core: correct FSP secure boot documentation
Date: Tue, 01 Sep 2026 09:17:04 +0900 [thread overview]
Message-ID: <DL3JQD7GHL89.3O8DTOC182GL3@nvidia.com> (raw)
In-Reply-To: <946dfa1de304b261950739c6e3da1e2d75eb3525.1787816400.git.zhiw@nvidia.com>
On Thu Aug 27, 2026 at 4:46 PM JST, Zhi Wang wrote:
> The FSP documentation still blurs the roles of FSP, GSP BootROM,
> and GSP-FMC in the common Hopper/Blackwell dGPU boot path. It also
> uses incorrect expansions for FMC, NVDM, and FRTS, and describes
> GSP-FMC as an ELF image, while nova-core loads it from a TLV firmware
> file.
>
> Correct those terms and show the FSP-to-GSP handoff in the existing
> message-flow diagram. Clarify that the COT response reports command
> status only, and scope the SEC2 and PRC descriptions to the dGPU
> platforms covered by nova-core.
>
> Signed-off-by: Zhi Wang <zhiw@nvidia.com>
> ---
> Documentation/gpu/nova/core/fsp.rst | 88 ++++++++++++++++-------------
> 1 file changed, 50 insertions(+), 38 deletions(-)
>
> diff --git a/Documentation/gpu/nova/core/fsp.rst b/Documentation/gpu/nova/core/fsp.rst
> index 52d618d22bb8..bebe3c8ede2a 100644
> --- a/Documentation/gpu/nova/core/fsp.rst
> +++ b/Documentation/gpu/nova/core/fsp.rst
> @@ -3,8 +3,8 @@
> ===================================================
> FSP (Foundation Security Processor) and Secure Boot
> ===================================================
> -This document describes the role of the FSP in the GPU boot sequence on
> -Hopper and Blackwell GPUs, and how it differs from the earlier Ampere boot
> +This document describes the role of the FSP in the common boot path for
> +Hopper and Blackwell dGPUs, and how it differs from the earlier Ampere boot
> flow. It also provides a brief overview of the PRC (Product Reconfiguration
> Control) protocol used to query device configuration through FSP. As with
> other documents in this directory, the information is subject to change and
> @@ -42,18 +42,20 @@ On **Hopper/Blackwell** GPUs, FSP replaces this multi-stage process with a
> single message-driven interface::
>
> FSP (hardware root of trust, boots from ROM)
> - -> FMC (Falcon Microcontroller, verified by FSP)
> - -> GSP-RM (verified and loaded by FMC)
> + -> GSP BootROM
> + -> GSP-FMC (First Mutable Code, running on GSP)
> + -> GSP-RM (verified and loaded by GSP-FMC)
The Ampere boot model right above had a nice convention where the
processor running the firmware is explicitly mentioned in parenthesis.
Can we follow that same convention here for consistency?
>
> -The driver only needs to:
> +At a high level, the driver:
>
> 1. Wait for FSP to complete its own secure boot (polling a scratch register).
> -2. Send a Chain of Trust (COT) message to FSP with the FMC firmware location,
> - cryptographic signatures, and GSP boot parameters.
> -3. FSP authenticates the FMC firmware and boots it, FMC in turn loads GSP-RM.
> +2. Send a Chain of Trust (COT) message to FSP with the GSP-FMC firmware
> + location, cryptographic signatures, and GSP boot parameters.
> +3. Wait for the FSP command response, then for later GSP-side boot milestones.
>
> -There is no SEC2 involvement, no Booter ucode, and no FWSEC-FRTS stage. The
> -entire secure boot is driven by a single FSP message exchange.
> +In the dGPU path described here, SEC2 and Booter ucode are not used to bring
> +up GSP-RM, and FWSEC-FRTS is not run as a separate stage. The driver initiates
> +secure boot through a single FSP message exchange.
>
> Chain of Trust (COT) protocol
> =============================
> @@ -62,39 +64,49 @@ ensuring the GPU reaches a known, trusted state.
>
> The driver communicates with FSP using a message queue (Falcon MSGQ
> interface). Each message consists of an MCTP (Management Component Transport
> -Protocol) transport header and an NVDM (NVIDIA Vendor Defined Message) header,
> +Protocol) transport header and an NVDM (NVIDIA Data Model) header,
> followed by a protocol-specific payload.
>
> For Chain of Trust, the payload includes:
>
> -- The system memory address of the FMC firmware image.
> -- Cryptographic material: a SHA-384 hash, RSA-3K public key, and RSA-3K
> - signature extracted from the FMC ELF firmware.
> -- FRTS (Firmware Runtime Services) region information (vidmem offset and size).
> +- The system memory address of the GSP-FMC firmware image.
> +- Cryptographic material extracted from the GSP-FMC TLV firmware: a SHA-384
> + hash, RSA-3K public key, and RSA-3K signature.
> +- FRTS (Firmware Runtime Security) region information (vidmem offset and size).
FRTS is also expanded as "Firmware Runtine Services" in frts.rst, we
should fix it there as well.
Otherwise this looks good to me, thanks!
prev parent reply other threads:[~2026-09-01 0:17 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-08-27 7:45 [PATCH v2 0/1] gpu: nova-core: correct FSP documentation Zhi Wang
2026-08-27 7:46 ` [PATCH v2 1/1] gpu: nova-core: correct FSP secure boot documentation Zhi Wang
2026-09-01 0:17 ` Alexandre Courbot [this message]
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=DL3JQD7GHL89.3O8DTOC182GL3@nvidia.com \
--to=acourbot@nvidia.com \
--cc=a.hindborg@kernel.org \
--cc=airlied@gmail.com \
--cc=alex.gaynor@gmail.com \
--cc=aliceryhl@google.com \
--cc=alkumar@nvidia.com \
--cc=aniketa@nvidia.com \
--cc=ankita@nvidia.com \
--cc=apopple@nvidia.com \
--cc=bjorn3_gh@protonmail.com \
--cc=boqun.feng@gmail.com \
--cc=cjia@nvidia.com \
--cc=dakr@kernel.org \
--cc=ecourtney@nvidia.com \
--cc=gary@garyguo.net \
--cc=jhubbard@nvidia.com \
--cc=kjaju@nvidia.com \
--cc=kwankhede@nvidia.com \
--cc=linux-kernel@vger.kernel.org \
--cc=lossin@kernel.org \
--cc=nova-gpu@lists.linux.dev \
--cc=ojeda@kernel.org \
--cc=simona@ffwll.ch \
--cc=smitra@nvidia.com \
--cc=targupta@nvidia.com \
--cc=tmgross@umich.edu \
--cc=zhiw@nvidia.com \
--cc=zhiwang@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
all inboxes | Powered by JetHome®