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 >