Skip to content

Commit

Permalink
drm/amdgpu/mes: fetch fw version from firmware header
Browse files Browse the repository at this point in the history
We need this prior to the firmware being loaded so fetch
from the header.

v2: fetch directly from the firmware
v3: store both fw versions

Reviewed-by: Srinivasan Shanmugam <srinivasan.shanmugam@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
  • Loading branch information
Alex Deucher committed Nov 5, 2024
1 parent cfffd98 commit e89bd36
Show file tree
Hide file tree
Showing 2 changed files with 6 additions and 0 deletions.
5 changes: 5 additions & 0 deletions drivers/gpu/drm/amd/amdgpu/amdgpu_mes.c
Original file line number Diff line number Diff line change
Expand Up @@ -1594,6 +1594,7 @@ int amdgpu_mes_init_microcode(struct amdgpu_device *adev, int pipe)
char ucode_prefix[30];
char fw_name[50];
bool need_retry = false;
u32 *ucode_ptr;
int r;

amdgpu_ucode_ip_version_decode(adev, GC_HWIP, ucode_prefix,
Expand Down Expand Up @@ -1631,6 +1632,10 @@ int amdgpu_mes_init_microcode(struct amdgpu_device *adev, int pipe)
adev->mes.data_start_addr[pipe] =
le32_to_cpu(mes_hdr->mes_data_start_addr_lo) |
((uint64_t)(le32_to_cpu(mes_hdr->mes_data_start_addr_hi)) << 32);
ucode_ptr = (u32 *)(adev->mes.fw[pipe]->data +
sizeof(union amdgpu_firmware_header));
adev->mes.fw_version[pipe] =
le32_to_cpu(ucode_ptr[24]) & AMDGPU_MES_VERSION_MASK;

if (adev->firmware.load_type == AMDGPU_FW_LOAD_PSP) {
int ucode, ucode_data;
Expand Down
1 change: 1 addition & 0 deletions drivers/gpu/drm/amd/amdgpu/amdgpu_mes.h
Original file line number Diff line number Diff line change
Expand Up @@ -75,6 +75,7 @@ struct amdgpu_mes {

uint32_t sched_version;
uint32_t kiq_version;
uint32_t fw_version[AMDGPU_MAX_MES_PIPES];
bool enable_legacy_queue_map;

uint32_t total_max_queue;
Expand Down

0 comments on commit e89bd36

Please sign in to comment.