From: Puranam V G Tejaswi <quic_pvgtejas@quicinc.com>
Add gpu and gmu nodes for sa8775p chipset. As of now all
SKUs have the same GPU fmax, so there is no requirement of
speed bin support.
Signed-off-by: Puranam V G Tejaswi <quic_pvgtejas@quicinc.com>
Signed-off-by: Akhil P Oommen <akhilpo@oss.qualcomm.com>
Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
---
arch/arm64/boot/dts/qcom/lemans.dtsi | 116 +++++++++++++++++++++++++++++++++++
1 file changed, 116 insertions(+)
diff --git a/arch/arm64/boot/dts/qcom/lemans.dtsi b/arch/arm64/boot/dts/qcom/lemans.dtsi
index 8ceb59742a9fc6562b2c38731ddabe3a549f7f35..8eac8d4719db9230105ad93ac22287850b6b007c 100644
--- a/arch/arm64/boot/dts/qcom/lemans.dtsi
+++ b/arch/arm64/boot/dts/qcom/lemans.dtsi
@@ -1097,6 +1097,18 @@ ipcc: mailbox@408000 {
#mbox-cells = <2>;
};
+ qfprom: efuse@784000 {
+ compatible = "qcom,sa8775p-qfprom", "qcom,qfprom";
+ reg = <0x0 0x00784000 0x0 0x2410>;
+ #address-cells = <1>;
+ #size-cells = <1>;
+
+ gpu_speed_bin: gpu_speed_bin@240c {
+ reg = <0x240c 0x1>;
+ bits = <0 8>;
+ };
+ };
+
gpi_dma2: dma-controller@800000 {
compatible = "qcom,sa8775p-gpi-dma", "qcom,sm6350-gpi-dma";
reg = <0x0 0x00800000 0x0 0x60000>;
@@ -4093,6 +4105,110 @@ tcsr: syscon@1fc0000 {
reg = <0x0 0x1fc0000 0x0 0x30000>;
};
+ gpu: gpu@3d00000 {
+ compatible = "qcom,adreno-663.0", "qcom,adreno";
+ reg = <0x0 0x03d00000 0x0 0x40000>,
+ <0x0 0x03d9e000 0x0 0x1000>,
+ <0x0 0x03d61000 0x0 0x800>;
+ reg-names = "kgsl_3d0_reg_memory",
+ "cx_mem",
+ "cx_dbgc";
+ interrupts = <GIC_SPI 300 IRQ_TYPE_LEVEL_HIGH>;
+ iommus = <&adreno_smmu 0 0xc00>,
+ <&adreno_smmu 1 0xc00>;
+ operating-points-v2 = <&gpu_opp_table>;
+ qcom,gmu = <&gmu>;
+ interconnects = <&gem_noc MASTER_GFX3D QCOM_ICC_TAG_ALWAYS
+ &mc_virt SLAVE_EBI1 QCOM_ICC_TAG_ALWAYS>;
+ interconnect-names = "gfx-mem";
+ #cooling-cells = <2>;
+
+ status = "disabled";
+
+ gpu_zap_shader: zap-shader {
+ memory-region = <&pil_gpu_mem>;
+ };
+
+ gpu_opp_table: opp-table {
+ compatible = "operating-points-v2";
+
+ opp-405000000 {
+ opp-hz = /bits/ 64 <405000000>;
+ opp-level = <RPMH_REGULATOR_LEVEL_SVS_L1>;
+ opp-peak-kBps = <5285156>;
+ opp-supported-hw = <0x3>;
+ };
+
+ opp-530000000 {
+ opp-hz = /bits/ 64 <530000000>;
+ opp-level = <RPMH_REGULATOR_LEVEL_NOM>;
+ opp-peak-kBps = <12484375>;
+ opp-supported-hw = <0x2>;
+ };
+
+ opp-676000000 {
+ opp-hz = /bits/ 64 <676000000>;
+ opp-level = <RPMH_REGULATOR_LEVEL_NOM>;
+ opp-peak-kBps = <8171875>;
+ opp-supported-hw = <0x1>;
+ };
+
+ opp-778000000 {
+ opp-hz = /bits/ 64 <778000000>;
+ opp-level = <RPMH_REGULATOR_LEVEL_TURBO>;
+ opp-peak-kBps = <10687500>;
+ opp-supported-hw = <0x1>;
+ };
+
+ opp-800000000 {
+ opp-hz = /bits/ 64 <800000000>;
+ opp-level = <RPMH_REGULATOR_LEVEL_TURBO_L1>;
+ opp-peak-kBps = <12484375>;
+ opp-supported-hw = <0x1>;
+ };
+ };
+ };
+
+ gmu: gmu@3d6a000 {
+ compatible = "qcom,adreno-gmu-663.0", "qcom,adreno-gmu";
+ reg = <0x0 0x03d6a000 0x0 0x34000>,
+ <0x0 0x03de0000 0x0 0x10000>,
+ <0x0 0x0b290000 0x0 0x10000>;
+ reg-names = "gmu", "rscc", "gmu_pdc";
+ interrupts = <GIC_SPI 304 IRQ_TYPE_LEVEL_HIGH>,
+ <GIC_SPI 305 IRQ_TYPE_LEVEL_HIGH>;
+ interrupt-names = "hfi", "gmu";
+ clocks = <&gpucc GPU_CC_CX_GMU_CLK>,
+ <&gpucc GPU_CC_CXO_CLK>,
+ <&gcc GCC_DDRSS_GPU_AXI_CLK>,
+ <&gcc GCC_GPU_MEMNOC_GFX_CLK>,
+ <&gpucc GPU_CC_AHB_CLK>,
+ <&gpucc GPU_CC_HUB_CX_INT_CLK>,
+ <&gpucc GPU_CC_HLOS1_VOTE_GPU_SMMU_CLK>;
+ clock-names = "gmu",
+ "cxo",
+ "axi",
+ "memnoc",
+ "ahb",
+ "hub",
+ "smmu_vote";
+ power-domains = <&gpucc GPU_CC_CX_GDSC>,
+ <&gpucc GPU_CC_GX_GDSC>;
+ power-domain-names = "cx",
+ "gx";
+ iommus = <&adreno_smmu 5 0xc00>;
+ operating-points-v2 = <&gmu_opp_table>;
+
+ gmu_opp_table: opp-table {
+ compatible = "operating-points-v2";
+
+ opp-200000000 {
+ opp-hz = /bits/ 64 <200000000>;
+ opp-level = <RPMH_REGULATOR_LEVEL_MIN_SVS>;
+ };
+ };
+ };
+
gpucc: clock-controller@3d90000 {
compatible = "qcom,sa8775p-gpucc";
reg = <0x0 0x03d90000 0x0 0xa000>;
--
2.50.1
On 8/21/25 8:55 PM, Akhil P Oommen wrote: > From: Puranam V G Tejaswi <quic_pvgtejas@quicinc.com> > > Add gpu and gmu nodes for sa8775p chipset. As of now all > SKUs have the same GPU fmax, so there is no requirement of > speed bin support. > > Signed-off-by: Puranam V G Tejaswi <quic_pvgtejas@quicinc.com> > Signed-off-by: Akhil P Oommen <akhilpo@oss.qualcomm.com> > Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org> > --- > arch/arm64/boot/dts/qcom/lemans.dtsi | 116 +++++++++++++++++++++++++++++++++++ > 1 file changed, 116 insertions(+) > > diff --git a/arch/arm64/boot/dts/qcom/lemans.dtsi b/arch/arm64/boot/dts/qcom/lemans.dtsi > index 8ceb59742a9fc6562b2c38731ddabe3a549f7f35..8eac8d4719db9230105ad93ac22287850b6b007c 100644 > --- a/arch/arm64/boot/dts/qcom/lemans.dtsi > +++ b/arch/arm64/boot/dts/qcom/lemans.dtsi > @@ -1097,6 +1097,18 @@ ipcc: mailbox@408000 { > #mbox-cells = <2>; > }; > > + qfprom: efuse@784000 { > + compatible = "qcom,sa8775p-qfprom", "qcom,qfprom"; > + reg = <0x0 0x00784000 0x0 0x2410>; len = 0x3000 [...] > + gmu: gmu@3d6a000 { > + compatible = "qcom,adreno-gmu-663.0", "qcom,adreno-gmu"; > + reg = <0x0 0x03d6a000 0x0 0x34000>, This bleeds into GPU_CC, len should be 0x26000 > + <0x0 0x03de0000 0x0 0x10000>, > + <0x0 0x0b290000 0x0 0x10000>; > + reg-names = "gmu", "rscc", "gmu_pdc"; > + interrupts = <GIC_SPI 304 IRQ_TYPE_LEVEL_HIGH>, > + <GIC_SPI 305 IRQ_TYPE_LEVEL_HIGH>; > + interrupt-names = "hfi", "gmu"; > + clocks = <&gpucc GPU_CC_CX_GMU_CLK>, > + <&gpucc GPU_CC_CXO_CLK>, > + <&gcc GCC_DDRSS_GPU_AXI_CLK>, > + <&gcc GCC_GPU_MEMNOC_GFX_CLK>, > + <&gpucc GPU_CC_AHB_CLK>, > + <&gpucc GPU_CC_HUB_CX_INT_CLK>, > + <&gpucc GPU_CC_HLOS1_VOTE_GPU_SMMU_CLK>; This clock only belongs in the SMMU node > + clock-names = "gmu", > + "cxo", > + "axi", > + "memnoc", > + "ahb", > + "hub", > + "smmu_vote"; > + power-domains = <&gpucc GPU_CC_CX_GDSC>, > + <&gpucc GPU_CC_GX_GDSC>; > + power-domain-names = "cx", > + "gx"; > + iommus = <&adreno_smmu 5 0xc00>; > + operating-points-v2 = <&gmu_opp_table>; > + > + gmu_opp_table: opp-table { > + compatible = "operating-points-v2"; > + > + opp-200000000 { > + opp-hz = /bits/ 64 <200000000>; 500 MHz @ RPMH_REGULATOR_LEVEL_SVS, 200 isn't even present in the clock driver Konrad
On 9/3/2025 5:56 PM, Konrad Dybcio wrote: > On 8/21/25 8:55 PM, Akhil P Oommen wrote: >> From: Puranam V G Tejaswi <quic_pvgtejas@quicinc.com> >> >> Add gpu and gmu nodes for sa8775p chipset. As of now all >> SKUs have the same GPU fmax, so there is no requirement of >> speed bin support. >> >> Signed-off-by: Puranam V G Tejaswi <quic_pvgtejas@quicinc.com> >> Signed-off-by: Akhil P Oommen <akhilpo@oss.qualcomm.com> >> Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org> >> --- >> arch/arm64/boot/dts/qcom/lemans.dtsi | 116 +++++++++++++++++++++++++++++++++++ >> 1 file changed, 116 insertions(+) >> >> diff --git a/arch/arm64/boot/dts/qcom/lemans.dtsi b/arch/arm64/boot/dts/qcom/lemans.dtsi >> index 8ceb59742a9fc6562b2c38731ddabe3a549f7f35..8eac8d4719db9230105ad93ac22287850b6b007c 100644 >> --- a/arch/arm64/boot/dts/qcom/lemans.dtsi >> +++ b/arch/arm64/boot/dts/qcom/lemans.dtsi >> @@ -1097,6 +1097,18 @@ ipcc: mailbox@408000 { >> #mbox-cells = <2>; >> }; >> >> + qfprom: efuse@784000 { >> + compatible = "qcom,sa8775p-qfprom", "qcom,qfprom"; >> + reg = <0x0 0x00784000 0x0 0x2410>; > > len = 0x3000 My bad. I missed these additional comments in this thread. Will extend this range to keep it 4K aligned. > > [...] > >> + gmu: gmu@3d6a000 { >> + compatible = "qcom,adreno-gmu-663.0", "qcom,adreno-gmu"; >> + reg = <0x0 0x03d6a000 0x0 0x34000>, > > This bleeds into GPU_CC, len should be 0x26000 > >> + <0x0 0x03de0000 0x0 0x10000>, >> + <0x0 0x0b290000 0x0 0x10000>; >> + reg-names = "gmu", "rscc", "gmu_pdc"; >> + interrupts = <GIC_SPI 304 IRQ_TYPE_LEVEL_HIGH>, >> + <GIC_SPI 305 IRQ_TYPE_LEVEL_HIGH>; >> + interrupt-names = "hfi", "gmu"; >> + clocks = <&gpucc GPU_CC_CX_GMU_CLK>, >> + <&gpucc GPU_CC_CXO_CLK>, >> + <&gcc GCC_DDRSS_GPU_AXI_CLK>, >> + <&gcc GCC_GPU_MEMNOC_GFX_CLK>, >> + <&gpucc GPU_CC_AHB_CLK>, >> + <&gpucc GPU_CC_HUB_CX_INT_CLK>, >> + <&gpucc GPU_CC_HLOS1_VOTE_GPU_SMMU_CLK>; > > This clock only belongs in the SMMU node Not really. This is recommended for A663 GPU like other A660 based GPUs. I know it is not intuitive. Similarly, we used to vote GMU clk for GPU SMMU earlier. > >> + clock-names = "gmu", >> + "cxo", >> + "axi", >> + "memnoc", >> + "ahb", >> + "hub", >> + "smmu_vote"; >> + power-domains = <&gpucc GPU_CC_CX_GDSC>, >> + <&gpucc GPU_CC_GX_GDSC>; >> + power-domain-names = "cx", >> + "gx"; >> + iommus = <&adreno_smmu 5 0xc00>; >> + operating-points-v2 = <&gmu_opp_table>; >> + >> + gmu_opp_table: opp-table { >> + compatible = "operating-points-v2"; >> + >> + opp-200000000 { >> + opp-hz = /bits/ 64 <200000000>; > > 500 MHz @ RPMH_REGULATOR_LEVEL_SVS, 200 isn't even present in the clock driver > Ack. I guess this is fine. Hopefully GMU won't explode. :) -Akhil > Konrad
On Wed, Sep 03, 2025 at 02:26:30PM +0200, Konrad Dybcio wrote: > On 8/21/25 8:55 PM, Akhil P Oommen wrote: > > From: Puranam V G Tejaswi <quic_pvgtejas@quicinc.com> > > > > Add gpu and gmu nodes for sa8775p chipset. As of now all > > SKUs have the same GPU fmax, so there is no requirement of > > speed bin support. > > > > Signed-off-by: Puranam V G Tejaswi <quic_pvgtejas@quicinc.com> > > Signed-off-by: Akhil P Oommen <akhilpo@oss.qualcomm.com> > > Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org> > > --- > > arch/arm64/boot/dts/qcom/lemans.dtsi | 116 +++++++++++++++++++++++++++++++++++ > > 1 file changed, 116 insertions(+) > > > > diff --git a/arch/arm64/boot/dts/qcom/lemans.dtsi b/arch/arm64/boot/dts/qcom/lemans.dtsi > > index 8ceb59742a9fc6562b2c38731ddabe3a549f7f35..8eac8d4719db9230105ad93ac22287850b6b007c 100644 > > --- a/arch/arm64/boot/dts/qcom/lemans.dtsi > > +++ b/arch/arm64/boot/dts/qcom/lemans.dtsi > > @@ -1097,6 +1097,18 @@ ipcc: mailbox@408000 { > > #mbox-cells = <2>; > > }; > > > > + qfprom: efuse@784000 { > > + compatible = "qcom,sa8775p-qfprom", "qcom,qfprom"; > > + reg = <0x0 0x00784000 0x0 0x2410>; > > len = 0x3000 > > [...] > > > + gmu: gmu@3d6a000 { > > + compatible = "qcom,adreno-gmu-663.0", "qcom,adreno-gmu"; > > + reg = <0x0 0x03d6a000 0x0 0x34000>, > > This bleeds into GPU_CC, len should be 0x26000 gpucc is in the middle of GMU, see other platforms. > > > + <0x0 0x03de0000 0x0 0x10000>, > > + <0x0 0x0b290000 0x0 0x10000>; > > + reg-names = "gmu", "rscc", "gmu_pdc"; > > + interrupts = <GIC_SPI 304 IRQ_TYPE_LEVEL_HIGH>, > > + <GIC_SPI 305 IRQ_TYPE_LEVEL_HIGH>; > > + interrupt-names = "hfi", "gmu"; > > + clocks = <&gpucc GPU_CC_CX_GMU_CLK>, > > + <&gpucc GPU_CC_CXO_CLK>, > > + <&gcc GCC_DDRSS_GPU_AXI_CLK>, > > + <&gcc GCC_GPU_MEMNOC_GFX_CLK>, > > + <&gpucc GPU_CC_AHB_CLK>, > > + <&gpucc GPU_CC_HUB_CX_INT_CLK>, > > + <&gpucc GPU_CC_HLOS1_VOTE_GPU_SMMU_CLK>; > > This clock only belongs in the SMMU node > > > + clock-names = "gmu", > > + "cxo", > > + "axi", > > + "memnoc", > > + "ahb", > > + "hub", > > + "smmu_vote"; > > + power-domains = <&gpucc GPU_CC_CX_GDSC>, > > + <&gpucc GPU_CC_GX_GDSC>; > > + power-domain-names = "cx", > > + "gx"; > > + iommus = <&adreno_smmu 5 0xc00>; > > + operating-points-v2 = <&gmu_opp_table>; > > + > > + gmu_opp_table: opp-table { > > + compatible = "operating-points-v2"; > > + > > + opp-200000000 { > > + opp-hz = /bits/ 64 <200000000>; > > 500 MHz @ RPMH_REGULATOR_LEVEL_SVS, 200 isn't even present in the clock driver > > Konrad -- With best wishes Dmitry
On 9/3/25 2:39 PM, Dmitry Baryshkov wrote: > On Wed, Sep 03, 2025 at 02:26:30PM +0200, Konrad Dybcio wrote: >> On 8/21/25 8:55 PM, Akhil P Oommen wrote: >>> From: Puranam V G Tejaswi <quic_pvgtejas@quicinc.com> >>> >>> Add gpu and gmu nodes for sa8775p chipset. As of now all >>> SKUs have the same GPU fmax, so there is no requirement of >>> speed bin support. >>> >>> Signed-off-by: Puranam V G Tejaswi <quic_pvgtejas@quicinc.com> >>> Signed-off-by: Akhil P Oommen <akhilpo@oss.qualcomm.com> >>> Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org> >>> --- >>> arch/arm64/boot/dts/qcom/lemans.dtsi | 116 +++++++++++++++++++++++++++++++++++ >>> 1 file changed, 116 insertions(+) >>> >>> diff --git a/arch/arm64/boot/dts/qcom/lemans.dtsi b/arch/arm64/boot/dts/qcom/lemans.dtsi >>> index 8ceb59742a9fc6562b2c38731ddabe3a549f7f35..8eac8d4719db9230105ad93ac22287850b6b007c 100644 >>> --- a/arch/arm64/boot/dts/qcom/lemans.dtsi >>> +++ b/arch/arm64/boot/dts/qcom/lemans.dtsi >>> @@ -1097,6 +1097,18 @@ ipcc: mailbox@408000 { >>> #mbox-cells = <2>; >>> }; >>> >>> + qfprom: efuse@784000 { >>> + compatible = "qcom,sa8775p-qfprom", "qcom,qfprom"; >>> + reg = <0x0 0x00784000 0x0 0x2410>; >> >> len = 0x3000 >> >> [...] >> >>> + gmu: gmu@3d6a000 { >>> + compatible = "qcom,adreno-gmu-663.0", "qcom,adreno-gmu"; >>> + reg = <0x0 0x03d6a000 0x0 0x34000>, >> >> This bleeds into GPU_CC, len should be 0x26000 > > gpucc is in the middle of GMU, see other platforms. This is not the case here Konrad
On Wed, Sep 03, 2025 at 03:36:34PM +0200, Konrad Dybcio wrote: > On 9/3/25 2:39 PM, Dmitry Baryshkov wrote: > > On Wed, Sep 03, 2025 at 02:26:30PM +0200, Konrad Dybcio wrote: > >> On 8/21/25 8:55 PM, Akhil P Oommen wrote: > >>> From: Puranam V G Tejaswi <quic_pvgtejas@quicinc.com> > >>> > >>> Add gpu and gmu nodes for sa8775p chipset. As of now all > >>> SKUs have the same GPU fmax, so there is no requirement of > >>> speed bin support. > >>> > >>> Signed-off-by: Puranam V G Tejaswi <quic_pvgtejas@quicinc.com> > >>> Signed-off-by: Akhil P Oommen <akhilpo@oss.qualcomm.com> > >>> Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org> > >>> --- > >>> arch/arm64/boot/dts/qcom/lemans.dtsi | 116 +++++++++++++++++++++++++++++++++++ > >>> 1 file changed, 116 insertions(+) > >>> > >>> diff --git a/arch/arm64/boot/dts/qcom/lemans.dtsi b/arch/arm64/boot/dts/qcom/lemans.dtsi > >>> index 8ceb59742a9fc6562b2c38731ddabe3a549f7f35..8eac8d4719db9230105ad93ac22287850b6b007c 100644 > >>> --- a/arch/arm64/boot/dts/qcom/lemans.dtsi > >>> +++ b/arch/arm64/boot/dts/qcom/lemans.dtsi > >>> @@ -1097,6 +1097,18 @@ ipcc: mailbox@408000 { > >>> #mbox-cells = <2>; > >>> }; > >>> > >>> + qfprom: efuse@784000 { > >>> + compatible = "qcom,sa8775p-qfprom", "qcom,qfprom"; > >>> + reg = <0x0 0x00784000 0x0 0x2410>; > >> > >> len = 0x3000 > >> > >> [...] > >> > >>> + gmu: gmu@3d6a000 { > >>> + compatible = "qcom,adreno-gmu-663.0", "qcom,adreno-gmu"; > >>> + reg = <0x0 0x03d6a000 0x0 0x34000>, > >> > >> This bleeds into GPU_CC, len should be 0x26000 > > > > gpucc is in the middle of GMU, see other platforms. > > This is not the case here Why? I think GPU CC is a part of the GMU by design: GMU accesses GPU CC registers directly from the firmware. -- With best wishes Dmitry
On 9/3/25 4:00 PM, Dmitry Baryshkov wrote: > On Wed, Sep 03, 2025 at 03:36:34PM +0200, Konrad Dybcio wrote: >> On 9/3/25 2:39 PM, Dmitry Baryshkov wrote: >>> On Wed, Sep 03, 2025 at 02:26:30PM +0200, Konrad Dybcio wrote: >>>> On 8/21/25 8:55 PM, Akhil P Oommen wrote: >>>>> From: Puranam V G Tejaswi <quic_pvgtejas@quicinc.com> >>>>> >>>>> Add gpu and gmu nodes for sa8775p chipset. As of now all >>>>> SKUs have the same GPU fmax, so there is no requirement of >>>>> speed bin support. >>>>> >>>>> Signed-off-by: Puranam V G Tejaswi <quic_pvgtejas@quicinc.com> >>>>> Signed-off-by: Akhil P Oommen <akhilpo@oss.qualcomm.com> >>>>> Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org> >>>>> --- >>>>> arch/arm64/boot/dts/qcom/lemans.dtsi | 116 +++++++++++++++++++++++++++++++++++ >>>>> 1 file changed, 116 insertions(+) >>>>> >>>>> diff --git a/arch/arm64/boot/dts/qcom/lemans.dtsi b/arch/arm64/boot/dts/qcom/lemans.dtsi >>>>> index 8ceb59742a9fc6562b2c38731ddabe3a549f7f35..8eac8d4719db9230105ad93ac22287850b6b007c 100644 >>>>> --- a/arch/arm64/boot/dts/qcom/lemans.dtsi >>>>> +++ b/arch/arm64/boot/dts/qcom/lemans.dtsi >>>>> @@ -1097,6 +1097,18 @@ ipcc: mailbox@408000 { >>>>> #mbox-cells = <2>; >>>>> }; >>>>> >>>>> + qfprom: efuse@784000 { >>>>> + compatible = "qcom,sa8775p-qfprom", "qcom,qfprom"; >>>>> + reg = <0x0 0x00784000 0x0 0x2410>; >>>> >>>> len = 0x3000 >>>> >>>> [...] >>>> >>>>> + gmu: gmu@3d6a000 { >>>>> + compatible = "qcom,adreno-gmu-663.0", "qcom,adreno-gmu"; >>>>> + reg = <0x0 0x03d6a000 0x0 0x34000>, >>>> >>>> This bleeds into GPU_CC, len should be 0x26000 >>> >>> gpucc is in the middle of GMU, see other platforms. >> >> This is not the case here > > Why? I think GPU CC is a part of the GMU by design: GMU accesses GPU CC > registers directly from the firmware. Correct, however this is only a similarly sounding argument - the DT describes the hardware from the main Arm cluster POV. The GMU Cortex-M core has its own address map etc. Konrad
On 9/3/2025 8:44 PM, Konrad Dybcio wrote: > On 9/3/25 4:00 PM, Dmitry Baryshkov wrote: >> On Wed, Sep 03, 2025 at 03:36:34PM +0200, Konrad Dybcio wrote: >>> On 9/3/25 2:39 PM, Dmitry Baryshkov wrote: >>>> On Wed, Sep 03, 2025 at 02:26:30PM +0200, Konrad Dybcio wrote: >>>>> On 8/21/25 8:55 PM, Akhil P Oommen wrote: >>>>>> From: Puranam V G Tejaswi <quic_pvgtejas@quicinc.com> >>>>>> >>>>>> Add gpu and gmu nodes for sa8775p chipset. As of now all >>>>>> SKUs have the same GPU fmax, so there is no requirement of >>>>>> speed bin support. >>>>>> >>>>>> Signed-off-by: Puranam V G Tejaswi <quic_pvgtejas@quicinc.com> >>>>>> Signed-off-by: Akhil P Oommen <akhilpo@oss.qualcomm.com> >>>>>> Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org> >>>>>> --- >>>>>> arch/arm64/boot/dts/qcom/lemans.dtsi | 116 +++++++++++++++++++++++++++++++++++ >>>>>> 1 file changed, 116 insertions(+) >>>>>> >>>>>> diff --git a/arch/arm64/boot/dts/qcom/lemans.dtsi b/arch/arm64/boot/dts/qcom/lemans.dtsi >>>>>> index 8ceb59742a9fc6562b2c38731ddabe3a549f7f35..8eac8d4719db9230105ad93ac22287850b6b007c 100644 >>>>>> --- a/arch/arm64/boot/dts/qcom/lemans.dtsi >>>>>> +++ b/arch/arm64/boot/dts/qcom/lemans.dtsi >>>>>> @@ -1097,6 +1097,18 @@ ipcc: mailbox@408000 { >>>>>> #mbox-cells = <2>; >>>>>> }; >>>>>> >>>>>> + qfprom: efuse@784000 { >>>>>> + compatible = "qcom,sa8775p-qfprom", "qcom,qfprom"; >>>>>> + reg = <0x0 0x00784000 0x0 0x2410>; >>>>> >>>>> len = 0x3000 >>>>> >>>>> [...] >>>>> >>>>>> + gmu: gmu@3d6a000 { >>>>>> + compatible = "qcom,adreno-gmu-663.0", "qcom,adreno-gmu"; >>>>>> + reg = <0x0 0x03d6a000 0x0 0x34000>, >>>>> >>>>> This bleeds into GPU_CC, len should be 0x26000 >>>> >>>> gpucc is in the middle of GMU, see other platforms. >>> >>> This is not the case here >> >> Why? I think GPU CC is a part of the GMU by design: GMU accesses GPU CC >> registers directly from the firmware. > > Correct, however this is only a similarly sounding argument - the DT > describes the hardware from the main Arm cluster POV. The GMU Cortex-M > core has its own address map etc. We have been keeping GPUCC region in the GMU's reg range in all chipsets for the purpose of coredump. Can we leave this as is until we have a mechanism to dump these into gpu coredump (via gpucc driver??)? I recall you proposed something similar sometime back. -Akhil > > Konrad
On Sat, Sep 6, 2025 at 1:56 PM Akhil P Oommen <akhilpo@oss.qualcomm.com> wrote: > > On 9/3/2025 8:44 PM, Konrad Dybcio wrote: > > On 9/3/25 4:00 PM, Dmitry Baryshkov wrote: > >> On Wed, Sep 03, 2025 at 03:36:34PM +0200, Konrad Dybcio wrote: > >>> On 9/3/25 2:39 PM, Dmitry Baryshkov wrote: > >>>> On Wed, Sep 03, 2025 at 02:26:30PM +0200, Konrad Dybcio wrote: > >>>>> On 8/21/25 8:55 PM, Akhil P Oommen wrote: > >>>>>> From: Puranam V G Tejaswi <quic_pvgtejas@quicinc.com> > >>>>>> > >>>>>> Add gpu and gmu nodes for sa8775p chipset. As of now all > >>>>>> SKUs have the same GPU fmax, so there is no requirement of > >>>>>> speed bin support. > >>>>>> > >>>>>> Signed-off-by: Puranam V G Tejaswi <quic_pvgtejas@quicinc.com> > >>>>>> Signed-off-by: Akhil P Oommen <akhilpo@oss.qualcomm.com> > >>>>>> Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org> > >>>>>> --- > >>>>>> arch/arm64/boot/dts/qcom/lemans.dtsi | 116 +++++++++++++++++++++++++++++++++++ > >>>>>> 1 file changed, 116 insertions(+) > >>>>>> > >>>>>> diff --git a/arch/arm64/boot/dts/qcom/lemans.dtsi b/arch/arm64/boot/dts/qcom/lemans.dtsi > >>>>>> index 8ceb59742a9fc6562b2c38731ddabe3a549f7f35..8eac8d4719db9230105ad93ac22287850b6b007c 100644 > >>>>>> --- a/arch/arm64/boot/dts/qcom/lemans.dtsi > >>>>>> +++ b/arch/arm64/boot/dts/qcom/lemans.dtsi > >>>>>> @@ -1097,6 +1097,18 @@ ipcc: mailbox@408000 { > >>>>>> #mbox-cells = <2>; > >>>>>> }; > >>>>>> > >>>>>> + qfprom: efuse@784000 { > >>>>>> + compatible = "qcom,sa8775p-qfprom", "qcom,qfprom"; > >>>>>> + reg = <0x0 0x00784000 0x0 0x2410>; > >>>>> > >>>>> len = 0x3000 > >>>>> > >>>>> [...] > >>>>> > >>>>>> + gmu: gmu@3d6a000 { > >>>>>> + compatible = "qcom,adreno-gmu-663.0", "qcom,adreno-gmu"; > >>>>>> + reg = <0x0 0x03d6a000 0x0 0x34000>, > >>>>> > >>>>> This bleeds into GPU_CC, len should be 0x26000 > >>>> > >>>> gpucc is in the middle of GMU, see other platforms. > >>> > >>> This is not the case here > >> > >> Why? I think GPU CC is a part of the GMU by design: GMU accesses GPU CC > >> registers directly from the firmware. > > > > Correct, however this is only a similarly sounding argument - the DT > > describes the hardware from the main Arm cluster POV. The GMU Cortex-M > > core has its own address map etc. but the firmware is part of how the hardware appears to the main arm cluster > We have been keeping GPUCC region in the GMU's reg range in all chipsets > for the purpose of coredump. > > Can we leave this as is until we have a mechanism to dump these into gpu > coredump (via gpucc driver??)? I recall you proposed something similar > sometime back. IMO we should keep this in the GMU range.. if in the future we have some other mechanism to dump gpucc state, then for future platforms we can start using that (ie. new dt but old kernel should be a thing we at least pretend to try to keep working), but for current/past platforms we should stick with keeping this in the GMU's range BR, -R > -Akhil > > > > > Konrad >
On 9/7/25 1:02 AM, Rob Clark wrote: > On Sat, Sep 6, 2025 at 1:56 PM Akhil P Oommen <akhilpo@oss.qualcomm.com> wrote: >> >> On 9/3/2025 8:44 PM, Konrad Dybcio wrote: >>> On 9/3/25 4:00 PM, Dmitry Baryshkov wrote: >>>> On Wed, Sep 03, 2025 at 03:36:34PM +0200, Konrad Dybcio wrote: >>>>> On 9/3/25 2:39 PM, Dmitry Baryshkov wrote: >>>>>> On Wed, Sep 03, 2025 at 02:26:30PM +0200, Konrad Dybcio wrote: >>>>>>> On 8/21/25 8:55 PM, Akhil P Oommen wrote: >>>>>>>> From: Puranam V G Tejaswi <quic_pvgtejas@quicinc.com> >>>>>>>> >>>>>>>> Add gpu and gmu nodes for sa8775p chipset. As of now all >>>>>>>> SKUs have the same GPU fmax, so there is no requirement of >>>>>>>> speed bin support. >>>>>>>> >>>>>>>> Signed-off-by: Puranam V G Tejaswi <quic_pvgtejas@quicinc.com> >>>>>>>> Signed-off-by: Akhil P Oommen <akhilpo@oss.qualcomm.com> >>>>>>>> Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org> >>>>>>>> --- >>>>>>>> arch/arm64/boot/dts/qcom/lemans.dtsi | 116 +++++++++++++++++++++++++++++++++++ >>>>>>>> 1 file changed, 116 insertions(+) >>>>>>>> >>>>>>>> diff --git a/arch/arm64/boot/dts/qcom/lemans.dtsi b/arch/arm64/boot/dts/qcom/lemans.dtsi >>>>>>>> index 8ceb59742a9fc6562b2c38731ddabe3a549f7f35..8eac8d4719db9230105ad93ac22287850b6b007c 100644 >>>>>>>> --- a/arch/arm64/boot/dts/qcom/lemans.dtsi >>>>>>>> +++ b/arch/arm64/boot/dts/qcom/lemans.dtsi >>>>>>>> @@ -1097,6 +1097,18 @@ ipcc: mailbox@408000 { >>>>>>>> #mbox-cells = <2>; >>>>>>>> }; >>>>>>>> >>>>>>>> + qfprom: efuse@784000 { >>>>>>>> + compatible = "qcom,sa8775p-qfprom", "qcom,qfprom"; >>>>>>>> + reg = <0x0 0x00784000 0x0 0x2410>; >>>>>>> >>>>>>> len = 0x3000 >>>>>>> >>>>>>> [...] >>>>>>> >>>>>>>> + gmu: gmu@3d6a000 { >>>>>>>> + compatible = "qcom,adreno-gmu-663.0", "qcom,adreno-gmu"; >>>>>>>> + reg = <0x0 0x03d6a000 0x0 0x34000>, >>>>>>> >>>>>>> This bleeds into GPU_CC, len should be 0x26000 >>>>>> >>>>>> gpucc is in the middle of GMU, see other platforms. >>>>> >>>>> This is not the case here >>>> >>>> Why? I think GPU CC is a part of the GMU by design: GMU accesses GPU CC >>>> registers directly from the firmware. >>> >>> Correct, however this is only a similarly sounding argument - the DT >>> describes the hardware from the main Arm cluster POV. The GMU Cortex-M >>> core has its own address map etc. > > but the firmware is part of how the hardware appears to the main arm cluster > >> We have been keeping GPUCC region in the GMU's reg range in all chipsets >> for the purpose of coredump. >> >> Can we leave this as is until we have a mechanism to dump these into gpu >> coredump (via gpucc driver??)? I recall you proposed something similar >> sometime back. > > IMO we should keep this in the GMU range.. if in the future we have > some other mechanism to dump gpucc state, then for future platforms we > can start using that (ie. new dt but old kernel should be a thing we > at least pretend to try to keep working), but for current/past > platforms we should stick with keeping this in the GMU's range Eh, right, sorry, we discussed this with I think x1e, let's keep it as-is until more infra is in place Konrad
On 8/22/2025 12:25 AM, Akhil P Oommen wrote: > From: Puranam V G Tejaswi <quic_pvgtejas@quicinc.com> > > Add gpu and gmu nodes for sa8775p chipset. As of now all > SKUs have the same GPU fmax, so there is no requirement of > speed bin support. > > Signed-off-by: Puranam V G Tejaswi <quic_pvgtejas@quicinc.com> > Signed-off-by: Akhil P Oommen <akhilpo@oss.qualcomm.com> > Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org> Dmitry, FYI, I retained your R-b tag. -Akhil > --- > arch/arm64/boot/dts/qcom/lemans.dtsi | 116 +++++++++++++++++++++++++++++++++++ > 1 file changed, 116 insertions(+) > > diff --git a/arch/arm64/boot/dts/qcom/lemans.dtsi b/arch/arm64/boot/dts/qcom/lemans.dtsi > index 8ceb59742a9fc6562b2c38731ddabe3a549f7f35..8eac8d4719db9230105ad93ac22287850b6b007c 100644 > --- a/arch/arm64/boot/dts/qcom/lemans.dtsi > +++ b/arch/arm64/boot/dts/qcom/lemans.dtsi > @@ -1097,6 +1097,18 @@ ipcc: mailbox@408000 { > #mbox-cells = <2>; > }; > > + qfprom: efuse@784000 { > + compatible = "qcom,sa8775p-qfprom", "qcom,qfprom"; > + reg = <0x0 0x00784000 0x0 0x2410>; > + #address-cells = <1>; > + #size-cells = <1>; > + > + gpu_speed_bin: gpu_speed_bin@240c { > + reg = <0x240c 0x1>; > + bits = <0 8>; > + }; > + }; > + > gpi_dma2: dma-controller@800000 { > compatible = "qcom,sa8775p-gpi-dma", "qcom,sm6350-gpi-dma"; > reg = <0x0 0x00800000 0x0 0x60000>; > @@ -4093,6 +4105,110 @@ tcsr: syscon@1fc0000 { > reg = <0x0 0x1fc0000 0x0 0x30000>; > }; > > + gpu: gpu@3d00000 { > + compatible = "qcom,adreno-663.0", "qcom,adreno"; > + reg = <0x0 0x03d00000 0x0 0x40000>, > + <0x0 0x03d9e000 0x0 0x1000>, > + <0x0 0x03d61000 0x0 0x800>; > + reg-names = "kgsl_3d0_reg_memory", > + "cx_mem", > + "cx_dbgc"; > + interrupts = <GIC_SPI 300 IRQ_TYPE_LEVEL_HIGH>; > + iommus = <&adreno_smmu 0 0xc00>, > + <&adreno_smmu 1 0xc00>; > + operating-points-v2 = <&gpu_opp_table>; > + qcom,gmu = <&gmu>; > + interconnects = <&gem_noc MASTER_GFX3D QCOM_ICC_TAG_ALWAYS > + &mc_virt SLAVE_EBI1 QCOM_ICC_TAG_ALWAYS>; > + interconnect-names = "gfx-mem"; > + #cooling-cells = <2>; > + > + status = "disabled"; > + > + gpu_zap_shader: zap-shader { > + memory-region = <&pil_gpu_mem>; > + }; > + > + gpu_opp_table: opp-table { > + compatible = "operating-points-v2"; > + > + opp-405000000 { > + opp-hz = /bits/ 64 <405000000>; > + opp-level = <RPMH_REGULATOR_LEVEL_SVS_L1>; > + opp-peak-kBps = <5285156>; > + opp-supported-hw = <0x3>; > + }; > + > + opp-530000000 { > + opp-hz = /bits/ 64 <530000000>; > + opp-level = <RPMH_REGULATOR_LEVEL_NOM>; > + opp-peak-kBps = <12484375>; > + opp-supported-hw = <0x2>; > + }; > + > + opp-676000000 { > + opp-hz = /bits/ 64 <676000000>; > + opp-level = <RPMH_REGULATOR_LEVEL_NOM>; > + opp-peak-kBps = <8171875>; > + opp-supported-hw = <0x1>; > + }; > + > + opp-778000000 { > + opp-hz = /bits/ 64 <778000000>; > + opp-level = <RPMH_REGULATOR_LEVEL_TURBO>; > + opp-peak-kBps = <10687500>; > + opp-supported-hw = <0x1>; > + }; > + > + opp-800000000 { > + opp-hz = /bits/ 64 <800000000>; > + opp-level = <RPMH_REGULATOR_LEVEL_TURBO_L1>; > + opp-peak-kBps = <12484375>; > + opp-supported-hw = <0x1>; > + }; > + }; > + }; > + > + gmu: gmu@3d6a000 { > + compatible = "qcom,adreno-gmu-663.0", "qcom,adreno-gmu"; > + reg = <0x0 0x03d6a000 0x0 0x34000>, > + <0x0 0x03de0000 0x0 0x10000>, > + <0x0 0x0b290000 0x0 0x10000>; > + reg-names = "gmu", "rscc", "gmu_pdc"; > + interrupts = <GIC_SPI 304 IRQ_TYPE_LEVEL_HIGH>, > + <GIC_SPI 305 IRQ_TYPE_LEVEL_HIGH>; > + interrupt-names = "hfi", "gmu"; > + clocks = <&gpucc GPU_CC_CX_GMU_CLK>, > + <&gpucc GPU_CC_CXO_CLK>, > + <&gcc GCC_DDRSS_GPU_AXI_CLK>, > + <&gcc GCC_GPU_MEMNOC_GFX_CLK>, > + <&gpucc GPU_CC_AHB_CLK>, > + <&gpucc GPU_CC_HUB_CX_INT_CLK>, > + <&gpucc GPU_CC_HLOS1_VOTE_GPU_SMMU_CLK>; > + clock-names = "gmu", > + "cxo", > + "axi", > + "memnoc", > + "ahb", > + "hub", > + "smmu_vote"; > + power-domains = <&gpucc GPU_CC_CX_GDSC>, > + <&gpucc GPU_CC_GX_GDSC>; > + power-domain-names = "cx", > + "gx"; > + iommus = <&adreno_smmu 5 0xc00>; > + operating-points-v2 = <&gmu_opp_table>; > + > + gmu_opp_table: opp-table { > + compatible = "operating-points-v2"; > + > + opp-200000000 { > + opp-hz = /bits/ 64 <200000000>; > + opp-level = <RPMH_REGULATOR_LEVEL_MIN_SVS>; > + }; > + }; > + }; > + > gpucc: clock-controller@3d90000 { > compatible = "qcom,sa8775p-gpucc"; > reg = <0x0 0x03d90000 0x0 0xa000>; >
On Fri, Aug 22, 2025 at 12:36:47AM +0530, Akhil P Oommen wrote: > On 8/22/2025 12:25 AM, Akhil P Oommen wrote: > > From: Puranam V G Tejaswi <quic_pvgtejas@quicinc.com> > > > > Add gpu and gmu nodes for sa8775p chipset. As of now all > > SKUs have the same GPU fmax, so there is no requirement of > > speed bin support. > > > > Signed-off-by: Puranam V G Tejaswi <quic_pvgtejas@quicinc.com> > > Signed-off-by: Akhil P Oommen <akhilpo@oss.qualcomm.com> > > Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org> > > Dmitry, > > FYI, I retained your R-b tag. Sure -- With best wishes Dmitry
© 2016 - 2025 Red Hat, Inc.