On Tue Feb 10, 2026 at 3:45 AM CET, John Hubbard wrote: > Hopper, Blackwell and later require more space for the non-WPR heap. > > Add a new FbHal method to return the non-WPR heap size, and create a new > GH100 HAL for Hopper and GB100 HAL for Blackwell that return the > appropriate value for each GPU architecture. > > Cc: Timur Tabi <[email protected]> > Signed-off-by: John Hubbard <[email protected]> > --- > drivers/gpu/nova-core/fb.rs | 14 +++++++--- > drivers/gpu/nova-core/fb/hal.rs | 7 +++-- > drivers/gpu/nova-core/fb/hal/ga102.rs | 2 +- > drivers/gpu/nova-core/fb/hal/gb100.rs | 37 +++++++++++++++++++++++++++ > drivers/gpu/nova-core/fb/hal/gh100.rs | 37 +++++++++++++++++++++++++++ > 5 files changed, 91 insertions(+), 6 deletions(-) > create mode 100644 drivers/gpu/nova-core/fb/hal/gb100.rs > create mode 100644 drivers/gpu/nova-core/fb/hal/gh100.rs > > diff --git a/drivers/gpu/nova-core/fb.rs b/drivers/gpu/nova-core/fb.rs > index 3a2b79a5c107..7c502f15622c 100644 > --- a/drivers/gpu/nova-core/fb.rs > +++ b/drivers/gpu/nova-core/fb.rs > @@ -98,6 +98,15 @@ pub(crate) fn unregister(&self, bar: &Bar0) { > } > } > > +/// Calculate non-WPR heap size based on chipset architecture. > +/// This matches the logic used in FSP for consistency. > +pub(crate) fn calc_non_wpr_heap_size(chipset: Chipset) -> u64 { > + hal::fb_hal(chipset) > + .non_wpr_heap_size() > + .map(u64::from) > + .unwrap_or(SZ_1M as u64)
This should use u64::from_safe_cast(). Also, I already brought this up in the context of GPU buddy, I wonder if we should just add SZ_* constants for 64-bit devices. Shouldn't be too hard to generate the corresponding code. I think it is a repeating pattern, and having to use u64::from_safe_cast() all the time seems cumbersome.
