[PATCH] drm/amdgpu/mes: fetch fw version from firmware header
SRINIVASAN SHANMUGAM
srinivasan.shanmugam at amd.com
Mon Nov 4 15:24:50 UTC 2024
On 11/4/2024 8:51 PM, Alex Deucher wrote:
> 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
>
> Signed-off-by: Alex Deucher <alexander.deucher at amd.com>
> ---
> drivers/gpu/drm/amd/amdgpu/amdgpu_mes.c | 5 +++++
> drivers/gpu/drm/amd/amdgpu/amdgpu_mes.h | 1 +
> 2 files changed, 6 insertions(+)
>
> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_mes.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_mes.c
> index 83d0f731fb65..dc751bdac2cc 100644
> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_mes.c
> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_mes.c
> @@ -1591,6 +1591,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,
> @@ -1628,6 +1629,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;
> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_mes.h b/drivers/gpu/drm/amd/amdgpu/amdgpu_mes.h
> index 45e3508f0f8e..56f36182c9ba 100644
> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_mes.h
> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_mes.h
> @@ -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;
This is really needed to extract MES fw version, before fw gets loaded.
Reviewed-by: Srinivasan Shanmugam <srinivasan.shanmugam at amd.com>
More information about the amd-gfx
mailing list