Message ID | 20210611113514.27173-1-konrad.dybcio@somainline.org (mailing list archive) |
---|---|
State | Superseded |
Headers | show |
Series | [1/2] arm64: dts: qcom: sm8250: Disable Adreno and Venus by default | expand |
On Fri, Jun 11, 2021 at 4:35 AM Konrad Dybcio <konrad.dybcio@somainline.org> 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@somainline.org> > --- > 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 >
On 11.06.2021 20:54, Rob Clark wrote: > On Fri, Jun 11, 2021 at 4:35 AM Konrad Dybcio > <konrad.dybcio@somainline.org> 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 ? While we're not yet there to test that out on A6xx-equipped platforms, my experience with lack ofAdreno firmware so far has been like so: no ZAP, wrong ZAP address in the DT, bad ZAP - either a lockup or a reboot no pm4/pfp - mostly a sane failing route with GPU just not activating after all, yet still I can recall having some problems that I probably won't be able to reproduce right now no GMU fw - as stated before, can't really test properly just yet Konrad
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"; };
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. Signed-off-by: Konrad Dybcio <konrad.dybcio@somainline.org> --- 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(+)