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.

Here is the background:
 * gfxhub_v2_1_setup_vmid_config() enables GPU clients to use GPUVM
VMIDs to access memory.

The code related to this questions is below:

 324               WREG32_SOC15_OFFSET(GC, 0, mmGCVM_CONTEXT1_CNTL,
 325                                   i * hub->ctx_distance, tmp);

 326               WREG32_SOC15_OFFSET(GC, 0,
mmGCVM_CONTEXT1_PAGE_TABLE_START_ADDR_LO32,
 327                                   i * hub->ctx_addr_distance, 0);
 328               WREG32_SOC15_OFFSET(GC, 0,
mmGCVM_CONTEXT1_PAGE_TABLE_START_ADDR_HI32,
 329                                   i * hub->ctx_addr_distance, 0);
 330               WREG32_SOC15_OFFSET(GC, 0,
mmGCVM_CONTEXT1_PAGE_TABLE_END_ADDR_LO32,
 331                                   i * hub->ctx_addr_distance,
 332
lower_32_bits(adev->vm_manager.max_pfn - 1));
 333               WREG32_SOC15_OFFSET(GC, 0,
mmGCVM_CONTEXT1_PAGE_TABLE_END_ADDR_HI32,
 334                                   i * hub->ctx_addr_distance,
 335
upper_32_bits(adev->vm_manager.max_pfn - 1));

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

Thanks,
Zibin Liu

Reply via email to