drm/amdgpu: Init mcm_addr look up table

Encode mcm address look up table in SPX mode
as a temp solution.

v2: fill in when interface is ready (Alex)

Signed-off-by: Hawking Zhang <Hawking.Zhang@amd.com>
Reviewed-by: Likun Gao <Likun.Gao@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
This commit is contained in:
Hawking Zhang 2025-06-12 21:52:19 +08:00 committed by Alex Deucher
parent 2d70a10dd1
commit e7820045fd
3 changed files with 12 additions and 0 deletions

View File

@ -39,6 +39,7 @@ struct amdgpu_imu_funcs {
int (*switch_compute_partition)(struct amdgpu_device *adev,
int num_xccs_per_xcp,
int compute_partition_mode);
void (*init_mcm_addr_lut)(struct amdgpu_device *adev);
};
struct imu_rlc_ram_golden {

View File

@ -2666,6 +2666,11 @@ static void gfx_v12_1_init_golden_registers(struct amdgpu_device *adev)
gfx_v12_1_xcc_enable_atomics(adev, i);
gfx_v12_1_xcc_setup_tcp_thrashing_ctrl(adev, i);
}
if (adev->gfx.imu.funcs &&
adev->gfx.imu.funcs->init_mcm_addr_lut &&
amdgpu_emu_mode)
adev->gfx.imu.funcs->init_mcm_addr_lut(adev);
}
static int gfx_v12_1_hw_init(struct amdgpu_ip_block *ip_block)

View File

@ -153,8 +153,14 @@ static int imu_v12_1_switch_compute_partition(struct amdgpu_device *adev,
return 0;
}
static void imu_v12_1_init_mcm_addr_lut(struct amdgpu_device *adev)
{
/* todo: fill in when interface is ready */
}
const struct amdgpu_imu_funcs gfx_v12_1_imu_funcs = {
.init_microcode = imu_v12_1_init_microcode,
.load_microcode = imu_v12_1_load_microcode,
.switch_compute_partition = imu_v12_1_switch_compute_partition,
.init_mcm_addr_lut = imu_v12_1_init_mcm_addr_lut,
};