Re: [PATCH 1/2] arm64: dts: qcom: sm8250: Disable Adreno and Venus by default

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Fri, Jun 11, 2021 at 4:35 AM Konrad Dybcio
<konrad.dybcio@xxxxxxxxxxxxxx> wrote:
>
> Components that rely on proprietary (not to mention signed!) firmware should
> not be enabled by default, as lack of the aforementioned firmware could cause
> various issues, from random errors to straight-up failing to boot.

I admit I probably don't test much without fw, but I think maybe
*that* is the issue to solve instead.

Taking a guess, I think the situation is that you have *some* of the
fw (ie. the unsigned parts coming from linux-firmware) but not
specifically the zap fw.  So adreno_zap_shader_load() returns -ENODEV,
which is interpreted to mean "this is a platform that doesn't need zap
to take GPU out of secure mode", and then things go boom when we try
to write RBBM_SECVID_TRUST_CNTL ?

Which I think is down to missing the "firmware-name" property in the
device specific dts

BR,
-R

> Signed-off-by: Konrad Dybcio <konrad.dybcio@xxxxxxxxxxxxxx>
> ---
>  arch/arm64/boot/dts/qcom/qrb5165-rb5.dts | 10 ++++++++++
>  arch/arm64/boot/dts/qcom/sm8250-hdk.dts  | 12 ++++++++++++
>  arch/arm64/boot/dts/qcom/sm8250-mtp.dts  | 10 ++++++++++
>  arch/arm64/boot/dts/qcom/sm8250.dtsi     |  6 ++++++
>  4 files changed, 38 insertions(+)
>
> diff --git a/arch/arm64/boot/dts/qcom/qrb5165-rb5.dts b/arch/arm64/boot/dts/qcom/qrb5165-rb5.dts
> index 5f41de20aa22..a5b742325261 100644
> --- a/arch/arm64/boot/dts/qcom/qrb5165-rb5.dts
> +++ b/arch/arm64/boot/dts/qcom/qrb5165-rb5.dts
> @@ -552,7 +552,13 @@ &dsi0_phy {
>         vdds-supply = <&vreg_l5a_0p88>;
>  };
>
> +&gmu {
> +       status = "okay";
> +};
> +
>  &gpu {
> +       status = "okay";
> +
>         zap-shader {
>                 memory-region = <&gpu_mem>;
>                 firmware-name = "qcom/sm8250/a650_zap.mbn";
> @@ -1352,6 +1358,10 @@ &vamacro {
>         qcom,dmic-sample-rate = <600000>;
>  };
>
> +&venus {
> +       status = "okay";
> +};
> +
>  /* PINCTRL - additions to nodes defined in sm8250.dtsi */
>  &qup_spi0_cs_gpio {
>         drive-strength = <6>;
> diff --git a/arch/arm64/boot/dts/qcom/sm8250-hdk.dts b/arch/arm64/boot/dts/qcom/sm8250-hdk.dts
> index c3a2c5aa6fe9..397359ee2f85 100644
> --- a/arch/arm64/boot/dts/qcom/sm8250-hdk.dts
> +++ b/arch/arm64/boot/dts/qcom/sm8250-hdk.dts
> @@ -365,6 +365,14 @@ vreg_l7f_1p8: ldo7 {
>         };
>  };
>
> +&gmu {
> +       status = "okay";
> +};
> +
> +&gpu {
> +       status = "okay";
> +};
> +
>  &qupv3_id_1 {
>         status = "okay";
>  };
> @@ -452,3 +460,7 @@ &usb_1_dwc3 {
>  &usb_2_dwc3 {
>         dr_mode = "host";
>  };
> +
> +&venus {
> +       status = "okay";
> +};
> diff --git a/arch/arm64/boot/dts/qcom/sm8250-mtp.dts b/arch/arm64/boot/dts/qcom/sm8250-mtp.dts
> index cfc4d1febe0f..062b944be91d 100644
> --- a/arch/arm64/boot/dts/qcom/sm8250-mtp.dts
> +++ b/arch/arm64/boot/dts/qcom/sm8250-mtp.dts
> @@ -465,7 +465,13 @@ &cdsp {
>         firmware-name = "qcom/sm8250/cdsp.mbn";
>  };
>
> +&gmu {
> +       status = "okay";
> +};
> +
>  &gpu {
> +       status = "okay";
> +
>         zap-shader {
>                 memory-region = <&gpu_mem>;
>                 firmware-name = "qcom/sm8250/a650_zap.mbn";
> @@ -691,3 +697,7 @@ &usb_2_qmpphy {
>         vdda-phy-supply = <&vreg_l9a_1p2>;
>         vdda-pll-supply = <&vreg_l18a_0p9>;
>  };
> +
> +&venus {
> +       status = "okay";
> +};
> diff --git a/arch/arm64/boot/dts/qcom/sm8250.dtsi b/arch/arm64/boot/dts/qcom/sm8250.dtsi
> index 4c0de12aaba6..fc1049c2bb11 100644
> --- a/arch/arm64/boot/dts/qcom/sm8250.dtsi
> +++ b/arch/arm64/boot/dts/qcom/sm8250.dtsi
> @@ -1746,6 +1746,8 @@ gpu: gpu@3d00000 {
>
>                         qcom,gmu = <&gmu>;
>
> +                       status = "disabled";
> +
>                         zap-shader {
>                                 memory-region = <&gpu_mem>;
>                         };
> @@ -1819,6 +1821,8 @@ gmu: gmu@3d6a000 {
>
>                         operating-points-v2 = <&gmu_opp_table>;
>
> +                       status = "disabled";
> +
>                         gmu_opp_table: opp-table {
>                                 compatible = "operating-points-v2";
>
> @@ -2323,6 +2327,8 @@ venus: video-codec@aa00000 {
>                                  <&videocc VIDEO_CC_MVS0C_CLK_ARES>;
>                         reset-names = "bus", "core";
>
> +                       status = "disabled";
> +
>                         video-decoder {
>                                 compatible = "venus-decoder";
>                         };
> --
> 2.32.0
>



[Index of Archives]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [Linux for Sparc]     [IETF Annouce]     [Security]     [Bugtraq]     [Linux MIPS]     [ECOS]     [Asterisk Internet PBX]     [Linux API]

  Powered by Linux