[PATCH 2/2] drm/amdgpu: Add fw minimum version check for usermode queue
Alex Deucher
alexdeucher at gmail.com
Thu Apr 10 13:31:43 UTC 2025
On Thu, Apr 10, 2025 at 7:48 AM Arvind Yadav <Arvind.Yadav at amd.com> wrote:
>
> This patch is load usermode queue based on FW support for gfx12.
> CP Ucode FW Vesion: [PFP = 2840, ME = 2780, MEC = 2600, MES = 123]
>
> Cc: Alex Deucher <alexander.deucher at amd.com>
> Cc: Christian Koenig <christian.koenig at amd.com>
> Cc: Shashank Sharma <shashank.sharma at amd.com>
> Cc: Sunil Khatri <sunil.khatri at amd.com>
> Signed-off-by: Arvind Yadav <Arvind.Yadav at amd.com>
> ---
> drivers/gpu/drm/amd/amdgpu/gfx_v12_0.c | 15 ++++++++++++++-
> 1 file changed, 14 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/gpu/drm/amd/amdgpu/gfx_v12_0.c b/drivers/gpu/drm/amd/amdgpu/gfx_v12_0.c
> index 3d87e445270e..c31c96fc13f0 100644
> --- a/drivers/gpu/drm/amd/amdgpu/gfx_v12_0.c
> +++ b/drivers/gpu/drm/amd/amdgpu/gfx_v12_0.c
> @@ -69,6 +69,10 @@
> #define regCP_HQD_PERSISTENT_STATE_DEFAULT 0x0be05501
> #define regCP_HQD_IB_CONTROL_DEFAULT 0x00300000
>
> +#define GFX12_ME_FW_MIN_VERSION 0x00000adc
> +#define GFX12_PFP_FW_MIN_VERSION 0x00000b18
> +#define GFX12_MEC_FW_MIN_VERSION 0x00000bea
> +#define GFX12_MES_FW_MIN_VERSION 0x0000007b
>
> MODULE_FIRMWARE("amdgpu/gc_12_0_0_pfp.bin");
> MODULE_FIRMWARE("amdgpu/gc_12_0_0_me.bin");
> @@ -1383,6 +1387,15 @@ static void gfx_v12_0_alloc_ip_dump(struct amdgpu_device *adev)
> }
> }
>
> +static bool gfx_v12_0_is_userq_supported(struct amdgpu_device *adev)
> +{
> + return (adev->gfx.me_fw_version >= GFX12_ME_FW_MIN_VERSION &&
> + adev->gfx.pfp_fw_version >= GFX12_PFP_FW_MIN_VERSION &&
> + adev->gfx.mec_fw_version >= GFX12_MEC_FW_MIN_VERSION &&
> + adev->mes.fw_version[0] >= GFX12_MES_FW_MIN_VERSION);
> +}
> +
> +
> static int gfx_v12_0_sw_init(struct amdgpu_ip_block *ip_block)
> {
> int i, j, k, r, ring_id = 0;
> @@ -1418,7 +1431,7 @@ static int gfx_v12_0_sw_init(struct amdgpu_ip_block *ip_block)
> case IP_VERSION(12, 0, 1):
> #ifdef CONFIG_DRM_AMDGPU_NAVI3X_USERQ
> /* add firmware version checks here */
> - if (0) {
> + if (gfx_v12_0_is_userq_supported(adev)) {
I would just check the firmware versions directly here rather than
adding a helper function. The fw versions will be different for other
GFX11 chips. Also no need to define macros for the versions for the
same reasons. there will likely be different versions for each gfx11
IP version.
Alex
> adev->userq_funcs[AMDGPU_HW_IP_GFX] = &userq_mes_funcs;
> adev->userq_funcs[AMDGPU_HW_IP_COMPUTE] = &userq_mes_funcs;
> }
> --
> 2.34.1
>
More information about the amd-gfx
mailing list