* [PATCH v2 0/4] drm/msm: use firmware-name to find zap fw @ 2020-01-12 19:53 Rob Clark 2020-01-12 19:53 ` [PATCH v2 3/4] dt-bindings: drm/msm/gpu: Document firmware-name Rob Clark 2020-01-12 19:54 ` [PATCH v2 4/4] arm64: dts: sdm845: move gpu zap nodes to per-device dts Rob Clark 0 siblings, 2 replies; 4+ messages in thread From: Rob Clark @ 2020-01-12 19:53 UTC (permalink / raw) To: dri-devel Cc: freedreno, linux-arm-msm, Jordan Crouse, Sharat Masetty, Bjorn Andersson, Rob Clark, Brian Masney, open list:OPEN FIRMWARE AND FLATTENED DEVICE TREE BINDINGS, Douglas Anderson, Fabio Estevam, Greg Kroah-Hartman, open list, Thomas Gleixner From: Rob Clark <robdclark@chromium.org> For devices which use zap fw to take the GPU out of secure mode on reset, the firmware is likely to be signed with a device specific key. Meaning that we can't have a single filesystem (or /lib/firmware) that works on multiple devices. So allow a firmware-name to be specified in the zap-shader node in dt. This moves the zap-shader node out of the core sdm845.dtsi and into per- device dts files. Which also removes the need for /delete-node/ in sdm845-cheza.dtsi (as cheza devices do not use zap). This aligns with how Bjorn has been handling the similar situation with adsp/cdsp/mpss fw: https://patchwork.kernel.org/patch/11160089/ Rob Clark (4): drm/msm: support firmware-name for zap fw (v2) drm/msm: allow zapfw to not be specified in gpulist dt-bindings: drm/msm/gpu: Document firmware-name arm64: dts: sdm845: move gpu zap nodes to per-device dts .../devicetree/bindings/display/msm/gpu.txt | 3 ++ arch/arm64/boot/dts/qcom/sdm845-cheza.dtsi | 1 - arch/arm64/boot/dts/qcom/sdm845-db845c.dts | 7 +++ arch/arm64/boot/dts/qcom/sdm845-mtp.dts | 7 +++ arch/arm64/boot/dts/qcom/sdm845.dtsi | 6 +-- .../boot/dts/qcom/sdm850-lenovo-yoga-c630.dts | 7 +++ drivers/gpu/drm/msm/adreno/adreno_gpu.c | 50 +++++++++++++++---- 7 files changed, 64 insertions(+), 17 deletions(-) -- 2.24.1 ^ permalink raw reply [flat|nested] 4+ messages in thread
* [PATCH v2 3/4] dt-bindings: drm/msm/gpu: Document firmware-name 2020-01-12 19:53 [PATCH v2 0/4] drm/msm: use firmware-name to find zap fw Rob Clark @ 2020-01-12 19:53 ` Rob Clark 2020-01-12 19:54 ` [PATCH v2 4/4] arm64: dts: sdm845: move gpu zap nodes to per-device dts Rob Clark 1 sibling, 0 replies; 4+ messages in thread From: Rob Clark @ 2020-01-12 19:53 UTC (permalink / raw) To: dri-devel Cc: freedreno, linux-arm-msm, Jordan Crouse, Sharat Masetty, Bjorn Andersson, Rob Clark, Rob Clark, Sean Paul, David Airlie, Daniel Vetter, Rob Herring, Mark Rutland, open list:OPEN FIRMWARE AND FLATTENED DEVICE TREE BINDINGS, open list From: Rob Clark <robdclark@chromium.org> The firmware-name property in the zap node can be used to specify a device specific zap firmware. Signed-off-by: Rob Clark <robdclark@chromium.org> Reviewed-by: Bjorn Andersson <bjorn.andersson@linaro.org> --- Documentation/devicetree/bindings/display/msm/gpu.txt | 3 +++ 1 file changed, 3 insertions(+) diff --git a/Documentation/devicetree/bindings/display/msm/gpu.txt b/Documentation/devicetree/bindings/display/msm/gpu.txt index 3e6cd3f64a78..7edc298a15f2 100644 --- a/Documentation/devicetree/bindings/display/msm/gpu.txt +++ b/Documentation/devicetree/bindings/display/msm/gpu.txt @@ -33,6 +33,8 @@ Required properties: - zap-shader: For a5xx and a6xx devices this node contains a memory-region that points to reserved memory to store the zap shader that can be used to help bring the GPU out of secure mode. +- firmware-name: optional property of the 'zap-shader' node, listing the + relative path of the device specific zap firmware. Example 3xx/4xx/a5xx: @@ -85,6 +87,7 @@ Example a6xx (with GMU): zap-shader { memory-region = <&zap_shader_region>; + firmware-name = "qcom/LENOVO/81JL/qcdxkmsuc850.mbn" }; }; }; -- 2.24.1 ^ permalink raw reply related [flat|nested] 4+ messages in thread
* [PATCH v2 4/4] arm64: dts: sdm845: move gpu zap nodes to per-device dts 2020-01-12 19:53 [PATCH v2 0/4] drm/msm: use firmware-name to find zap fw Rob Clark 2020-01-12 19:53 ` [PATCH v2 3/4] dt-bindings: drm/msm/gpu: Document firmware-name Rob Clark @ 2020-01-12 19:54 ` Rob Clark 2020-01-13 18:45 ` Bjorn Andersson 1 sibling, 1 reply; 4+ messages in thread From: Rob Clark @ 2020-01-12 19:54 UTC (permalink / raw) To: dri-devel Cc: freedreno, linux-arm-msm, Jordan Crouse, Sharat Masetty, Bjorn Andersson, Rob Clark, Andy Gross, Rob Herring, Mark Rutland, open list:OPEN FIRMWARE AND FLATTENED DEVICE TREE BINDINGS, open list From: Rob Clark <robdclark@chromium.org> We want to specify per-device firmware-name, so move the zap node into the .dts file for individual boards/devices. This lets us get rid of the /delete-node/ for cheza, which does not use zap. Signed-off-by: Rob Clark <robdclark@chromium.org> --- v2: use 'sdm845' for subdir for devices that use test-key signed fw arch/arm64/boot/dts/qcom/sdm845-cheza.dtsi | 1 - arch/arm64/boot/dts/qcom/sdm845-db845c.dts | 7 +++++++ arch/arm64/boot/dts/qcom/sdm845-mtp.dts | 7 +++++++ arch/arm64/boot/dts/qcom/sdm845.dtsi | 6 +----- arch/arm64/boot/dts/qcom/sdm850-lenovo-yoga-c630.dts | 7 +++++++ 5 files changed, 22 insertions(+), 6 deletions(-) diff --git a/arch/arm64/boot/dts/qcom/sdm845-cheza.dtsi b/arch/arm64/boot/dts/qcom/sdm845-cheza.dtsi index 9a4ff57fc877..2db79c1ecdac 100644 --- a/arch/arm64/boot/dts/qcom/sdm845-cheza.dtsi +++ b/arch/arm64/boot/dts/qcom/sdm845-cheza.dtsi @@ -165,7 +165,6 @@ panel_in_edp: endpoint { /delete-node/ &venus_mem; /delete-node/ &cdsp_mem; /delete-node/ &cdsp_pas; -/delete-node/ &zap_shader; /delete-node/ &gpu_mem; /* Increase the size from 120 MB to 128 MB */ diff --git a/arch/arm64/boot/dts/qcom/sdm845-db845c.dts b/arch/arm64/boot/dts/qcom/sdm845-db845c.dts index d100f46791a6..6cd9201ffbbd 100644 --- a/arch/arm64/boot/dts/qcom/sdm845-db845c.dts +++ b/arch/arm64/boot/dts/qcom/sdm845-db845c.dts @@ -352,6 +352,13 @@ &gcc { <GCC_QSPI_CNOC_PERIPH_AHB_CLK>; }; +&gpu { + zap-shader { + memory-region = <&gpu_mem>; + firmware-name = "qcom/sdm845/a630_zap.mbn"; + }; +}; + &pm8998_gpio { vol_up_pin_a: vol-up-active { pins = "gpio6"; diff --git a/arch/arm64/boot/dts/qcom/sdm845-mtp.dts b/arch/arm64/boot/dts/qcom/sdm845-mtp.dts index c57548b7b250..09ad37b0dd71 100644 --- a/arch/arm64/boot/dts/qcom/sdm845-mtp.dts +++ b/arch/arm64/boot/dts/qcom/sdm845-mtp.dts @@ -360,6 +360,13 @@ &gcc { <GCC_LPASS_SWAY_CLK>; }; +&gpu { + zap-shader { + memory-region = <&gpu_mem>; + firmware-name = "qcom/sdm845/a630_zap.mbn"; + }; +}; + &i2c10 { status = "okay"; clock-frequency = <400000>; diff --git a/arch/arm64/boot/dts/qcom/sdm845.dtsi b/arch/arm64/boot/dts/qcom/sdm845.dtsi index ddb1f23c936f..601c57cc9b6d 100644 --- a/arch/arm64/boot/dts/qcom/sdm845.dtsi +++ b/arch/arm64/boot/dts/qcom/sdm845.dtsi @@ -2804,7 +2804,7 @@ dsi1_phy: dsi-phy@ae96400 { }; }; - gpu@5000000 { + gpu: gpu@5000000 { compatible = "qcom,adreno-630.2", "qcom,adreno"; #stream-id-cells = <16>; @@ -2824,10 +2824,6 @@ gpu@5000000 { qcom,gmu = <&gmu>; - zap_shader: zap-shader { - memory-region = <&gpu_mem>; - }; - gpu_opp_table: opp-table { compatible = "operating-points-v2"; diff --git a/arch/arm64/boot/dts/qcom/sdm850-lenovo-yoga-c630.dts b/arch/arm64/boot/dts/qcom/sdm850-lenovo-yoga-c630.dts index 13dc619687f3..b255be3a4a0a 100644 --- a/arch/arm64/boot/dts/qcom/sdm850-lenovo-yoga-c630.dts +++ b/arch/arm64/boot/dts/qcom/sdm850-lenovo-yoga-c630.dts @@ -245,6 +245,13 @@ &gcc { <GCC_QSPI_CNOC_PERIPH_AHB_CLK>; }; +&gpu { + zap-shader { + memory-region = <&gpu_mem>; + firmware-name = "qcom/LENOVO/81JL/qcdxkmsuc850.mbn"; + }; +}; + &i2c1 { status = "okay"; clock-frequency = <400000>; -- 2.24.1 ^ permalink raw reply related [flat|nested] 4+ messages in thread
* Re: [PATCH v2 4/4] arm64: dts: sdm845: move gpu zap nodes to per-device dts 2020-01-12 19:54 ` [PATCH v2 4/4] arm64: dts: sdm845: move gpu zap nodes to per-device dts Rob Clark @ 2020-01-13 18:45 ` Bjorn Andersson 0 siblings, 0 replies; 4+ messages in thread From: Bjorn Andersson @ 2020-01-13 18:45 UTC (permalink / raw) To: Rob Clark Cc: dri-devel, freedreno, linux-arm-msm, Jordan Crouse, Sharat Masetty, Rob Clark, Andy Gross, Rob Herring, Mark Rutland, open list:OPEN FIRMWARE AND FLATTENED DEVICE TREE BINDINGS, open list On Sun 12 Jan 11:54 PST 2020, Rob Clark wrote: > From: Rob Clark <robdclark@chromium.org> > > We want to specify per-device firmware-name, so move the zap node into > the .dts file for individual boards/devices. This lets us get rid of > the /delete-node/ for cheza, which does not use zap. > Reviewed-by: Bjorn Andersson <bjorn.andersson@linaro.org> > Signed-off-by: Rob Clark <robdclark@chromium.org> > --- > v2: use 'sdm845' for subdir for devices that use test-key signed fw > > arch/arm64/boot/dts/qcom/sdm845-cheza.dtsi | 1 - > arch/arm64/boot/dts/qcom/sdm845-db845c.dts | 7 +++++++ > arch/arm64/boot/dts/qcom/sdm845-mtp.dts | 7 +++++++ > arch/arm64/boot/dts/qcom/sdm845.dtsi | 6 +----- > arch/arm64/boot/dts/qcom/sdm850-lenovo-yoga-c630.dts | 7 +++++++ > 5 files changed, 22 insertions(+), 6 deletions(-) > > diff --git a/arch/arm64/boot/dts/qcom/sdm845-cheza.dtsi b/arch/arm64/boot/dts/qcom/sdm845-cheza.dtsi > index 9a4ff57fc877..2db79c1ecdac 100644 > --- a/arch/arm64/boot/dts/qcom/sdm845-cheza.dtsi > +++ b/arch/arm64/boot/dts/qcom/sdm845-cheza.dtsi > @@ -165,7 +165,6 @@ panel_in_edp: endpoint { > /delete-node/ &venus_mem; > /delete-node/ &cdsp_mem; > /delete-node/ &cdsp_pas; > -/delete-node/ &zap_shader; > /delete-node/ &gpu_mem; > > /* Increase the size from 120 MB to 128 MB */ > diff --git a/arch/arm64/boot/dts/qcom/sdm845-db845c.dts b/arch/arm64/boot/dts/qcom/sdm845-db845c.dts > index d100f46791a6..6cd9201ffbbd 100644 > --- a/arch/arm64/boot/dts/qcom/sdm845-db845c.dts > +++ b/arch/arm64/boot/dts/qcom/sdm845-db845c.dts > @@ -352,6 +352,13 @@ &gcc { > <GCC_QSPI_CNOC_PERIPH_AHB_CLK>; > }; > > +&gpu { > + zap-shader { > + memory-region = <&gpu_mem>; > + firmware-name = "qcom/sdm845/a630_zap.mbn"; > + }; > +}; > + > &pm8998_gpio { > vol_up_pin_a: vol-up-active { > pins = "gpio6"; > diff --git a/arch/arm64/boot/dts/qcom/sdm845-mtp.dts b/arch/arm64/boot/dts/qcom/sdm845-mtp.dts > index c57548b7b250..09ad37b0dd71 100644 > --- a/arch/arm64/boot/dts/qcom/sdm845-mtp.dts > +++ b/arch/arm64/boot/dts/qcom/sdm845-mtp.dts > @@ -360,6 +360,13 @@ &gcc { > <GCC_LPASS_SWAY_CLK>; > }; > > +&gpu { > + zap-shader { > + memory-region = <&gpu_mem>; > + firmware-name = "qcom/sdm845/a630_zap.mbn"; > + }; > +}; > + > &i2c10 { > status = "okay"; > clock-frequency = <400000>; > diff --git a/arch/arm64/boot/dts/qcom/sdm845.dtsi b/arch/arm64/boot/dts/qcom/sdm845.dtsi > index ddb1f23c936f..601c57cc9b6d 100644 > --- a/arch/arm64/boot/dts/qcom/sdm845.dtsi > +++ b/arch/arm64/boot/dts/qcom/sdm845.dtsi > @@ -2804,7 +2804,7 @@ dsi1_phy: dsi-phy@ae96400 { > }; > }; > > - gpu@5000000 { > + gpu: gpu@5000000 { > compatible = "qcom,adreno-630.2", "qcom,adreno"; > #stream-id-cells = <16>; > > @@ -2824,10 +2824,6 @@ gpu@5000000 { > > qcom,gmu = <&gmu>; > > - zap_shader: zap-shader { > - memory-region = <&gpu_mem>; > - }; > - > gpu_opp_table: opp-table { > compatible = "operating-points-v2"; > > diff --git a/arch/arm64/boot/dts/qcom/sdm850-lenovo-yoga-c630.dts b/arch/arm64/boot/dts/qcom/sdm850-lenovo-yoga-c630.dts > index 13dc619687f3..b255be3a4a0a 100644 > --- a/arch/arm64/boot/dts/qcom/sdm850-lenovo-yoga-c630.dts > +++ b/arch/arm64/boot/dts/qcom/sdm850-lenovo-yoga-c630.dts > @@ -245,6 +245,13 @@ &gcc { > <GCC_QSPI_CNOC_PERIPH_AHB_CLK>; > }; > > +&gpu { > + zap-shader { > + memory-region = <&gpu_mem>; > + firmware-name = "qcom/LENOVO/81JL/qcdxkmsuc850.mbn"; > + }; > +}; > + > &i2c1 { > status = "okay"; > clock-frequency = <400000>; > -- > 2.24.1 > ^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2020-01-13 18:45 UTC | newest] Thread overview: 4+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2020-01-12 19:53 [PATCH v2 0/4] drm/msm: use firmware-name to find zap fw Rob Clark 2020-01-12 19:53 ` [PATCH v2 3/4] dt-bindings: drm/msm/gpu: Document firmware-name Rob Clark 2020-01-12 19:54 ` [PATCH v2 4/4] arm64: dts: sdm845: move gpu zap nodes to per-device dts Rob Clark 2020-01-13 18:45 ` Bjorn Andersson
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox