Commit 280807dd authored by Konrad Dybcio's avatar Konrad Dybcio Committed by Rob Clark
Browse files

drm/msm/a6xx: Print GMU core firmware version at boot



Log the version for informational purposes, such as for keeping track
of possible GMU fw-related failures in crash / CI logs.

Intentionally not implemented on the if (gmu->legacy) codepath, as
these registers seem not to be used on there.

Downstream additionally warns if the firmware version is too old for
a given GPU, but we already pair the binary to a given GPU, so let's
not go there at the moment.

Signed-off-by: default avatarKonrad Dybcio <konrad.dybcio@oss.qualcomm.com>
Reviewed-by: default avatarAkhil P Oommen <quic_akhilpo@quicinc.com>
Patchwork: https://patchwork.freedesktop.org/patch/629934/


Signed-off-by: default avatarRob Clark <robdclark@chromium.org>
parent bb5acdea
Loading
Loading
Loading
Loading
+7 −0
Original line number Diff line number Diff line
@@ -729,6 +729,7 @@ static int a6xx_gmu_fw_load(struct a6xx_gmu *gmu)
	const struct firmware *fw_image = adreno_gpu->fw[ADRENO_FW_GMU];
	const struct block_header *blk;
	u32 reg_offset;
	u32 ver;

	u32 itcm_base = 0x00000000;
	u32 dtcm_base = 0x00040000;
@@ -775,6 +776,12 @@ static int a6xx_gmu_fw_load(struct a6xx_gmu *gmu)
		}
	}

	ver = gmu_read(gmu, REG_A6XX_GMU_CORE_FW_VERSION);
	DRM_INFO("Loaded GMU firmware v%u.%u.%u\n",
		 FIELD_GET(A6XX_GMU_CORE_FW_VERSION_MAJOR__MASK, ver),
		 FIELD_GET(A6XX_GMU_CORE_FW_VERSION_MINOR__MASK, ver),
		 FIELD_GET(A6XX_GMU_CORE_FW_VERSION_STEP__MASK, ver));

	return 0;
}