Re: [PATCH v11 02/20] gpu: nova-core: gsp: Extract usable FB region from GSP

John Hubbard
2026-04-16T23:04:31Z

On 4/15/26 2:05 PM, Joel Fernandes wrote:
...
> + /// Extracts the first usable FB region from GSP firmware data.
> + ///
> + /// Returns the first region suitable for driver memory allocation as a [`Range<u64>`].
> + /// Usable regions are those that satisfy all the following properties:
> + /// - Are not reserved for firmware internal use.
> + /// - Are not protected (hardware-enforced access restrictions).
> + /// - Support compression (can use GPU memory compression for bandwidth).
> + /// - Support ISO (isochronous memory for display requiring guaranteed bandwidth).
> + ///
> + /// TODO: Multiple discontinuous usable regions of RAM are possible in
> + /// special cases. We need to support it (to also match Nouveau's behavior).

Please let's not (ever) mention Nouveau in in-code comments. So far we
have held the line on that.

I think the TODO itself (again, without referring to Nouveau) could go into

Documentation/gpu/nova/core/todo.rst

instead of here. But if you really must have it here, then OK.

> + pub(crate) fn first_usable_fb_region(&self) -> Option<Range<u64>> {
> + self.fb_regions().find_map(|reg| {
> + // Filter: not reserved, not protected, supports compression and ISO.
> + if reg.reserved == 0
> + && reg.bProtected == 0
> + && reg.supportCompressed != 0
> + && reg.supportISO != 0
> + {
> + reg.limit.checked_add(1).map(|end| reg.base..end)
> + } else {
> + None
> + }
> + })
> + }
> }
>
> // SAFETY: Padding is explicit and will not contain uninitialized data.

With "Nouveau" references removed,

Reviewed-by: John Hubbard <jhubbard@nvidia.com>

thanks,
--
John Hubbard