vce_v1_0_ens...o_32bit_addr(9)
π vce_v1_0_ens...o_32bit_addr β the Kernel API Manual moment (section 9, bestie)
okay so this is a page straight out of the Kernel API Manual, section 9, and the name got truncated at the party like vce_v1_0_ens...o_32bit_addr β the full glow-up name is vce_v1_0_ensure_vcpu_bo_32bit_addr. iconic. let's get into it β¨
πΈ NAME πΈ
vce_v1_0_ensure_vcpu_bo_32bit_addr β literally just making sure the VCPU BO has a 32-bit address π
π¦ SYNOPSIS π¦
int vce_v1_0_ensure_vcpu_bo_32bit_addr (struct amdgpu_device *adev );
π ARGUMENTS π
adevβ anamdgpu_devicepointer. that's the whole vibe, it's the only thing you're handing over π«Ά
β¨ DESCRIPTION β¨
so the tea is: due to various hardware limitations, VCE1 needs the VCPU BO to live down in the low 32-bit address range. no negotiating. and this function is the one that ensures the VCPU BO actually has a 32-bit GPU address β or, if that's just not possible, it returns an error code π
to accommodate that (and yes, we're spelling it right this time π
), the move is: we put GART in the LOW address range and reserve some GART pages where we map the VCPU BO, so that it ends up with a 32-bit address. slay. that's the whole strategy π
and the BAR address? it's zero, and we genuinely can't change it because of the firmware validation mechanism. it's giving non-negotiable. from what we can tell, it fails to initialize if the address is >= 128 MiB π so like, don't.
β SEE ALSO β
kernel file, for the girlies who want to read the source:
./drivers/gpu/drm/amd/amdgpu/vce_v1_0.cvce_v1_0_ring_get_rptr(9)vce_v1_0_ring_get_wptr(9)vce_v1_0_ring_set_wptr(9)vce_v1_0_load_fw(9)vce_v1_0_is_idle(9)vce_v1_0_start(9)vce_v1_0_hw_init(9)
reminder bestie:VCE1will not be flexing on you if the address sneaks up to>= 128 MiB, and thatBARaddress stays at zero because firmware said so. periodt. π₯
and that's the page!! brought to you by ./drivers/gpu/drm/amd/amdgpu, dated October 2026, filed under vce_v1_0_ens...o_32bit_addr(9) π§π mwah, go read the other vce_v1_0_* pages, ily π
π¦ where this page comes from
- nixpkgs unstable: linux-manual 7.3.1
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms