drm/amdgpu: take the A+A VF GMC aperture from SRAT

The A+A VF FB BAR is not usable, so resolve its aperture from SRAT in
GMC early_init. Skip later aperture assignment for SPM-backed devices,
and restrict the existing mmhub-based override to native A+A and APU.

The GPU reaches its HBM at a system physical address, so
vram_base_offset becomes aper_base as well, which makes PDB0 map GPU
address 0 onto that address.

The XGMI node segment size comes from the same place: once early_init
has resolved the aperture, use its size rather than the value derived
from the register, which does not describe the VF partition.

v2:
- Use (sriov_vf || passthrough) and amdgpu_virt_vram_is_spm()
  instead of connected_to_cpu for the SRAT aperture and node segment
  size.

v3:
- Resolve the SRAT aperture in GMC early_init and skip later aperture
  assignment in mc_init for SPM-backed devices.
- Rely on amdgpu_virt_vram_is_spm() without redundant VF/passthrough
  checks.

Signed-off-by: Zhigang Luo <zhigang.luo@amd.com>
Signed-off-by: Fangsheng Huang <Fangsheng.Huang@amd.com>
Signed-off-by: YuBiao Wang <YuBiao.Wang@amd.com>
Reviewed-by: Lijo Lazar <lijo.lazar@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
This commit is contained in:
Zhigang Luo 2026-08-31 15:39:03 -04:00 • committed by Alex Deucher
commit 489ee1c344
2 changed files with 49 additions and 13 deletions