Make FbLayout code more obvious and correct.
Currently, the frts vidmem offset is calculated based on the non-wpr
heap size and pmu reservation size, but AFAICT this is not right. The fb
layout actually looks like: | non-wpr heap | WPR2 .. FRTS | PMU reserved
| ... | VGA workspace | It's just by coincidence + generous alignment
that the values happened to match with something more like pmu reserved
size + vga workspace.
`FbLayout` is used for both pre and post FSP architectures. FbLayout
contains ranges for each region of framebuffer, but on post FSP
architectures, only the size is actually used by GSP. The offsets are
not decided by the driver. So, for post FSP architectures FbLayout
contains essentially guesses for the offsets. Instead, make separate
types so that we only store the information that's actually needed. This
includes the actual reserved size after the pmu reservation so we can
properly compute the frts offset.
Signed-off-by: Eliot Courtney <ecourtney@nvidia.com>
---
Changes in v3:
- Remove patches merged already
- Move `fb_end_reserved_size` to FspHal
- Move construction of FbSizes/FbRanges into GSP HAL.
- Link to v2: https://patch.msgid.link/20260703-blackwell-fixes-v2-0-8e3d8bc32bb9@nvidia.com
Changes in v2:
- Rebased on top of 20260629-nova-bootcontext-v4-0-5539d8469590@nvidia.com
- Dropped applied patches ("falcon: gsp: move PRIV target mask constants"
and "fsp: move FMC firmware loading into wait_secure_boot")
- Dropped "gsp: keep FMC boot params DMA region alive during error" -
will finish discussion/fix on the bootcontext series from Alex
- Drop "fsp: try to enforce exclusive access to FSP channel" as not
necessary.
- Added some extra fixes around the falcon "halted" state
- Drop "wait for FSP boot earlier" since FSP is now at Gpu level in the
bootcontext series from Alex
- Don't reset FSP queue pointers on error
- Add r-b from Alistair
- Return EMSGSIZE not EIO for FSP queue return message too big
- Link to v1: https://patch.msgid.link/20260615-blackwell-fixes-v1-0-f2853e49ff7d@nvidia.com
---
Eliot Courtney (5):
gpu: nova-core: correct FRTS vidmem offset calculation
gpu: nova-core: rename heap size field
gpu: nova-core: return non-WPR heap size as u64 from HALs
gpu: nova-core: split FbLayout into FSP and non-FSP versions
gpu: nova-core: pass WPR metadata ownership to FmcBootArgs
drivers/gpu/nova-core/fb.rs | 50 ++++++++++++++++----
drivers/gpu/nova-core/fb/hal.rs | 2 +-
drivers/gpu/nova-core/fb/hal/ga100.rs | 2 +-
drivers/gpu/nova-core/fb/hal/ga102.rs | 2 +-
drivers/gpu/nova-core/fb/hal/gb100.rs | 5 +-
drivers/gpu/nova-core/fb/hal/gb202.rs | 5 +-
drivers/gpu/nova-core/fb/hal/gh100.rs | 4 +-
drivers/gpu/nova-core/fb/hal/tu102.rs | 6 +--
drivers/gpu/nova-core/fsp.rs | 44 +++++++++++-------
drivers/gpu/nova-core/fsp/hal.rs | 4 ++
drivers/gpu/nova-core/fsp/hal/gb100.rs | 6 +++
drivers/gpu/nova-core/fsp/hal/gb202.rs | 9 +++-
drivers/gpu/nova-core/fsp/hal/gh100.rs | 9 +++-
drivers/gpu/nova-core/gsp/boot.rs | 28 ++++-------
drivers/gpu/nova-core/gsp/fw.rs | 85 ++++++++++++++++++++++++++--------
drivers/gpu/nova-core/gsp/hal.rs | 12 ++---
drivers/gpu/nova-core/gsp/hal/gh100.rs | 21 +++++----
drivers/gpu/nova-core/gsp/hal/tu102.rs | 32 ++++++++-----
18 files changed, 219 insertions(+), 107 deletions(-)
---
base-commit: 71d4e7233f235871b13553e504e591ace6b54373
change-id: 20260608-blackwell-fixes-30c9358c90a0
Best regards,
--
Eliot Courtney <ecourtney@nvidia.com>