Re: [PATCH v2 7/7] arm64: dts: qcom: sm8250: add interconnect nodes

Jonathan Marek
2020-07-28T02:44:56Z

On 7/24/20 12:55 PM, Sibi Sankar wrote:
> On 2020-07-24 20:06, Jonathan Marek wrote:
>> On 7/24/20 10:13 AM, Sibi Sankar wrote:
>>> Hey Jonathan,
>>>
>>> Thanks for the patch! Please use the
>>> suggested register space definitions
>>> instead.
>>>
>>
>> Thanks for the suggestions, I was unsure what to use for the sizes.
>> The reg field is unused by the upstream driver so it is hard to figure
>> out.
>>
>> However, I'm not sure about some of your suggestions for the base
>> address. For example, for "mc_virt" you suggest 0x0163d000, and I have
>> 0x09100000. In the downstream dts, "mc_virt-base" is 0x9100000 and
>> qcom,base-offset for fab_mc_virt is 0. Do you have an explanation for
>> why your suggestion is so different?
>
> AFAIK for providers with virt suffix the
> register space definition is just an
> arbitrary choice and doesn't matter.
> Since mc_virt was just re-using gem_noc
> address space I suggested we stick to
> how it was done on sc7180 i.e place it
> between system_noc and aggre1_noc.
>

I sent a v3 with most of your suggestions applied as-is, except for:
- sm8150: aggre2_noc, reduced size to 0x20000 to avoid overlap with
compute_noc region
- sm8250: compute_noc, reduced size to 0xa180 to avoid overlap with
mmss_noc region (could have been 0xd000, but 0xa180 makes it match the
region in the downstream dts, so seemed more likely to be correct)

I did notice other inconsistencies, but since this is unused by the
upstream driver I don't want to think about it too much..

>>
>>> On 2020-07-13 21:11, Jonathan Marek wrote:
>>>> Add the interconnect dts nodes for sm8250.
>>>>
>>>> Signed-off-by: Jonathan Marek <jonathan@marek.ca>
>>>> ---
>>>>  arch/arm64/boot/dts/qcom/sm8250.dtsi | 82 ++++++++++++++++++++++++++++
>>>>  1 file changed, 82 insertions(+)
>>>>
>>>> diff --git a/arch/arm64/boot/dts/qcom/sm8250.dtsi
>>>> b/arch/arm64/boot/dts/qcom/sm8250.dtsi
>>>> index 636e2196138c..dfc1b7fa7d85 100644
>>>> --- a/arch/arm64/boot/dts/qcom/sm8250.dtsi
>>>> +++ b/arch/arm64/boot/dts/qcom/sm8250.dtsi
>>>> @@ -11,6 +11,7 @@
>>>>  #include <dt-bindings/power/qcom-aoss-qmp.h>
>>>>  #include <dt-bindings/power/qcom-rpmpd.h>
>>>>  #include <dt-bindings/soc/qcom,rpmh-rsc.h>
>>>> +#include <dt-bindings/interconnect/qcom,sm8250.h>
>>>
>>> please fix ^^ sort order
>>>
>>>>
>>>>  / {
>>>>      interrupt-parent = <&intc>;
>>>> @@ -978,6 +979,55 @@ spi13: spi@a94000 {
>>>>              };
>>>>          };
>>>>
>>>> +        config_noc: interconnect@1500000 {
>>>> +            compatible = "qcom,sm8250-config-noc";
>>>> +            reg = <0 0x01500000 0 0x1000>;
>>>
>>> 0x01500000 0xa580
>>>
>>>> +            #interconnect-cells = <1>;
>>>> +            qcom,bcm-voters = <&apps_bcm_voter>;
>>>> +        };
>>>> +
>>>> +        ipa_virt: interconnect@1620000 {
>>>> +            compatible = "qcom,sm8250-ipa-virt";
>>>> +            reg = <0 0x01620000 0 0x1000>;
>>>
>>> 0x01e00000 0x1000
>>>
>>>> +            #interconnect-cells = <1>;
>>>> +            qcom,bcm-voters = <&apps_bcm_voter>;
>>>> +        };
>>>> +
>>>> +        system_noc: interconnect@1632000 {
>>>> +            compatible = "qcom,sm8250-system-noc";
>>>> +            reg = <0 0x01632000 0 0x1000>;
>>>
>>> 0x01620000 0x1C200
>>>
>>>> +            #interconnect-cells = <1>;
>>>> +            qcom,bcm-voters = <&apps_bcm_voter>;
>>>> +        };
>>>> +
>>>> +        aggre1_noc: interconnect@16e2000 {
>>>> +            compatible = "qcom,sm8250-aggre1-noc";
>>>> +            reg = <0 0x016e2000 0 0x1000>;
>>>
>>> 0x016e0000 0x1f180
>>>
>>>> +            #interconnect-cells = <1>;
>>>> +            qcom,bcm-voters = <&apps_bcm_voter>;
>>>> +        };
>>>> +
>>>> +        aggre2_noc: interconnect@1703000 {
>>>> +            compatible = "qcom,sm8250-aggre2-noc";
>>>> +            reg = <0 0x01703000 0 0x1000>;
>>>
>>> 0x01700000 0x33000
>>>
>>>> +            #interconnect-cells = <1>;
>>>> +            qcom,bcm-voters = <&apps_bcm_voter>;
>>>> +        };
>>>> +
>>>> +        compute_noc: interconnect@1733000 {
>>>> +            compatible = "qcom,sm8250-compute-noc";
>>>> +            reg = <0 0x01733000 0 0x1000>;
>>>
>>> 0x01733000 0xd180
>>>
>>>> +            #interconnect-cells = <1>;
>>>> +            qcom,bcm-voters = <&apps_bcm_voter>;
>>>> +        };
>>>> +
>>>> +        mmss_noc: interconnect@174a000 {
>>>> +            compatible = "qcom,sm8250-mmss-noc";
>>>> +            reg = <0 0x0174a000 0 0x1000>;
>>>
>>> 0x01740000 0x1f080
>>>
>>>> +            #interconnect-cells = <1>;
>>>> +            qcom,bcm-voters = <&apps_bcm_voter>;
>>>> +        };
>>>> +
>>>>          ufs_mem_hc: ufshc@1d84000 {
>>>>              compatible = "qcom,sm8250-ufshc", "qcom,ufshc",
>>>>                       "jedec,ufs-2.0";
>>>> @@ -1364,6 +1414,34 @@ usb_2_ssphy: lane@88eb200 {
>>>>              };
>>>>          };
>>>>
>>>> +        dc_noc: interconnect@90c0000 {
>>>> +            compatible = "qcom,sm8250-dc-noc";
>>>> +            reg = <0 0x090c0000 0 0x1000>;
>>>
>>> 0x090c0000 0x4200
>>>
>>>> +            #interconnect-cells = <1>;
>>>> +            qcom,bcm-voters = <&apps_bcm_voter>;
>>>> +        };
>>>> +
>>>> +        mc_virt: interconnect@9100000 {
>>>> +            compatible = "qcom,sm8250-mc-virt";
>>>> +            reg = <0 0x09100000 0 0x1000>;
>>>
>>> 0x0163d000 0x1000
>>>
>>>> +            #interconnect-cells = <1>;
>>>> +            qcom,bcm-voters = <&apps_bcm_voter>;
>>>> +        };
>>>> +
>>>> +        gem_noc: interconnect@9121000 {
>>>> +            compatible = "qcom,sm8250-gem-noc";
>>>> +            reg = <0 0x09121000 0 0x1000>;
>>>
>>> 0x09100000 0xb4000
>>>
>>>> +            #interconnect-cells = <1>;
>>>> +            qcom,bcm-voters = <&apps_bcm_voter>;
>>>> +        };
>>>> +
>>>> +        npu_noc: interconnect@9990000 {
>>>> +            compatible = "qcom,sm8250-npu-noc";
>>>> +            reg = <0 0x09990000 0 0x1000>;
>>>
>>> 0x09990000 0x1600
>>>
>>>> +            #interconnect-cells = <1>;
>>>> +            qcom,bcm-voters = <&apps_bcm_voter>;
>>>> +        };
>>>> +
>>>>          usb_1: usb@a6f8800 {
>>>>              compatible = "qcom,sm8250-dwc3", "qcom,dwc3";
>>>>              reg = <0 0x0a6f8800 0 0x400>;
>>>> @@ -2359,6 +2437,10 @@ rpmhpd_opp_turbo_l1: opp10 {
>>>>                      };
>>>>                  };
>>>>              };
>>>> +
>>>> +            apps_bcm_voter: bcm_voter {
>>>> +                compatible = "qcom,bcm-voter";
>>>> +            };
>>>>          };
>>>>      };
>>>
>