Message ID | 20210331140223.3771449-1-dmitry.baryshkov@linaro.org (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | drm/msm: a6xx: fix version check for the A650 SQE microcode | expand |
fixing Jordan's email so he actually sees this On Wed, Mar 31, 2021 at 7:02 AM Dmitry Baryshkov <dmitry.baryshkov@linaro.org> wrote: > > I suppose the microcode version check for a650 is incorrect. It checks > for the version 1.95, while the firmware released have major version of 0: > 0.91 (vulnerable), 0.99 (fixing the issue). > > Lower version requirements to accept firmware 0.99. > > Fixes: 8490f02a3ca4 ("drm/msm: a6xx: Make sure the SQE microcode is safe") > Cc: Akhil P Oommen <akhilpo@codeaurora.org> > Cc: Jordan Crouse <jcrouse@codeaurora.org> > Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org> > --- > drivers/gpu/drm/msm/adreno/a6xx_gpu.c | 6 +++--- > 1 file changed, 3 insertions(+), 3 deletions(-) > > diff --git a/drivers/gpu/drm/msm/adreno/a6xx_gpu.c b/drivers/gpu/drm/msm/adreno/a6xx_gpu.c > index cb2df8736ca8..896b47dc9c85 100644 > --- a/drivers/gpu/drm/msm/adreno/a6xx_gpu.c > +++ b/drivers/gpu/drm/msm/adreno/a6xx_gpu.c > @@ -567,17 +567,17 @@ static bool a6xx_ucode_check_version(struct a6xx_gpu *a6xx_gpu, > } else { > /* > * a650 tier targets don't need whereami but still need to be > - * equal to or newer than 1.95 for other security fixes > + * equal to or newer than 0.95 for other security fixes > */ > if (adreno_is_a650(adreno_gpu)) { > - if ((buf[0] & 0xfff) >= 0x195) { > + if ((buf[0] & 0xfff) >= 0x095) { > ret = true; > goto out; > } > > DRM_DEV_ERROR(&gpu->pdev->dev, > "a650 SQE ucode is too old. Have version %x need at least %x\n", > - buf[0] & 0xfff, 0x195); > + buf[0] & 0xfff, 0x095); > } > > /* > -- > 2.30.2 >
On Wed, Mar 31, 2021 at 05:02:23PM +0300, Dmitry Baryshkov wrote: > I suppose the microcode version check for a650 is incorrect. It checks > for the version 1.95, while the firmware released have major version of 0: > 0.91 (vulnerable), 0.99 (fixing the issue). > > Lower version requirements to accept firmware 0.99. Ugh, my ugly. .95 is the actual version that fixed it but since .99 is what is going into the l-f repo it is fine to use that as a baseline. Acked-by: Jordan Crouse <jordan@cosmicpenguin.net> > Fixes: 8490f02a3ca4 ("drm/msm: a6xx: Make sure the SQE microcode is safe") > Cc: Akhil P Oommen <akhilpo@codeaurora.org> > Cc: Jordan Crouse <jcrouse@codeaurora.org> > Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org> > --- > drivers/gpu/drm/msm/adreno/a6xx_gpu.c | 6 +++--- > 1 file changed, 3 insertions(+), 3 deletions(-) > > diff --git a/drivers/gpu/drm/msm/adreno/a6xx_gpu.c b/drivers/gpu/drm/msm/adreno/a6xx_gpu.c > index cb2df8736ca8..896b47dc9c85 100644 > --- a/drivers/gpu/drm/msm/adreno/a6xx_gpu.c > +++ b/drivers/gpu/drm/msm/adreno/a6xx_gpu.c > @@ -567,17 +567,17 @@ static bool a6xx_ucode_check_version(struct a6xx_gpu *a6xx_gpu, > } else { > /* > * a650 tier targets don't need whereami but still need to be > - * equal to or newer than 1.95 for other security fixes > + * equal to or newer than 0.95 for other security fixes > */ > if (adreno_is_a650(adreno_gpu)) { > - if ((buf[0] & 0xfff) >= 0x195) { > + if ((buf[0] & 0xfff) >= 0x095) { > ret = true; > goto out; > } > > DRM_DEV_ERROR(&gpu->pdev->dev, > "a650 SQE ucode is too old. Have version %x need at least %x\n", > - buf[0] & 0xfff, 0x195); > + buf[0] & 0xfff, 0x095); > } > > /* > -- > 2.30.2 > > _______________________________________________ > dri-devel mailing list > dri-devel@lists.freedesktop.org > https://lists.freedesktop.org/mailman/listinfo/dri-devel
diff --git a/drivers/gpu/drm/msm/adreno/a6xx_gpu.c b/drivers/gpu/drm/msm/adreno/a6xx_gpu.c index cb2df8736ca8..896b47dc9c85 100644 --- a/drivers/gpu/drm/msm/adreno/a6xx_gpu.c +++ b/drivers/gpu/drm/msm/adreno/a6xx_gpu.c @@ -567,17 +567,17 @@ static bool a6xx_ucode_check_version(struct a6xx_gpu *a6xx_gpu, } else { /* * a650 tier targets don't need whereami but still need to be - * equal to or newer than 1.95 for other security fixes + * equal to or newer than 0.95 for other security fixes */ if (adreno_is_a650(adreno_gpu)) { - if ((buf[0] & 0xfff) >= 0x195) { + if ((buf[0] & 0xfff) >= 0x095) { ret = true; goto out; } DRM_DEV_ERROR(&gpu->pdev->dev, "a650 SQE ucode is too old. Have version %x need at least %x\n", - buf[0] & 0xfff, 0x195); + buf[0] & 0xfff, 0x095); } /*
I suppose the microcode version check for a650 is incorrect. It checks for the version 1.95, while the firmware released have major version of 0: 0.91 (vulnerable), 0.99 (fixing the issue). Lower version requirements to accept firmware 0.99. Fixes: 8490f02a3ca4 ("drm/msm: a6xx: Make sure the SQE microcode is safe") Cc: Akhil P Oommen <akhilpo@codeaurora.org> Cc: Jordan Crouse <jcrouse@codeaurora.org> Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org> --- drivers/gpu/drm/msm/adreno/a6xx_gpu.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-)