<div dir="ltr"><pre style="white-space:pre-wrap;color:rgb(0,0,0)">Hi,

I'm looking at the initialization sequences in gfxhub_v2_1.c. I'm confused on whether the GCVM_CONTEXT1_CNTL CNTL reg can be written before the corresponding GCVM_CONTEXT1_PAGE_TABLE_START_ADDR and GCVM_CONTEXT1_PAGE_TABLE_END_ADDR reg is written.</pre><pre style="white-space:pre-wrap;color:rgb(0,0,0)"><pre style="white-space:pre-wrap">Here is the background:
 * gfxhub_v2_1_setup_vmid_config() enables GPU clients to use GPUVM VMIDs to access memory.</pre></pre><pre style="white-space:pre-wrap;color:rgb(0,0,0)">The code related to this questions is below:</pre><pre style="white-space:pre-wrap;color:rgb(0,0,0)"> 324               WREG32_SOC15_OFFSET(GC, 0, mmGCVM_CONTEXT1_CNTL,<br> 325                                   i * hub->ctx_distance, tmp);</pre><pre style="white-space:pre-wrap;color:rgb(0,0,0)"> 326               WREG32_SOC15_OFFSET(GC, 0, mmGCVM_CONTEXT1_PAGE_TABLE_START_ADDR_LO32,<br> 327                                   i * hub->ctx_addr_distance, 0);<br> 328               WREG32_SOC15_OFFSET(GC, 0, mmGCVM_CONTEXT1_PAGE_TABLE_START_ADDR_HI32,<br> 329                                   i * hub->ctx_addr_distance, 0);<br> 330               WREG32_SOC15_OFFSET(GC, 0, mmGCVM_CONTEXT1_PAGE_TABLE_END_ADDR_LO32,<br> 331                                   i * hub->ctx_addr_distance,<br> 332                                   lower_32_bits(adev->vm_manager.max_pfn - 1));<br> 333               WREG32_SOC15_OFFSET(GC, 0, mmGCVM_CONTEXT1_PAGE_TABLE_END_ADDR_HI32,<br> 334                                   i * hub->ctx_addr_distance,<br> 335                                   upper_32_bits(adev->vm_manager.max_pfn - 1));

Just wondering, is the behavior expected or is it a bug?

Thanks,
Zibin Liu</pre><br></div>