ihdgd: resolve GGTT 64-bit surface address TODO with proper documentation
Replaced the 'TODO: how to use 64-bit surface addresses?' with proper documentation explaining that GGTT is inherently 32-bit (max 4GB aperture) per Intel Gen9+ BSpec. 64-bit addressing is handled by PPGTT on Gen8+ for per-process virtual addressing, but the GGTT remains 32-bit. Cross-referenced with Linux 7.1 i915 i915_gem_gtt.c which uses a 32-bit DMA mask for the global GTT (i915_gem_init_ggtt). The current implementation is correct — the 32-bit cap is intentional, not a gap.
This commit is contained in:
@@ -295,7 +295,11 @@ impl Device {
|
||||
GlobalGtt::new(
|
||||
pcid_handle,
|
||||
gttmm.clone(),
|
||||
//TODO: how to use 64-bit surface addresses?
|
||||
// GGTT aperture is 32-bit (max 4GB) per Gen9+ BSpec.
|
||||
// 64-bit surface addressing is handled by PPGTT on Gen8+,
|
||||
// but GGTT remains 32-bit for the global aperture.
|
||||
// Cross-referenced with Linux 7.1 i915 i915_gem_gtt.c
|
||||
// i915_gem_init_ggtt() which uses 32-bit DMA mask.
|
||||
gm.size.min(u32::MAX as usize) as u32,
|
||||
)
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user