Document that ipa on qcm2290 uses version 4.2, the same
as sc7180.
Signed-off-by: Wojciech Slenska <wojciech.slenska@gmail.com>
---
Documentation/devicetree/bindings/net/qcom,ipa.yaml | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/Documentation/devicetree/bindings/net/qcom,ipa.yaml b/Documentation/devicetree/bindings/net/qcom,ipa.yaml
index 53cae71d9957..ea44d02d1e5c 100644
--- a/Documentation/devicetree/bindings/net/qcom,ipa.yaml
+++ b/Documentation/devicetree/bindings/net/qcom,ipa.yaml
@@ -58,6 +58,10 @@ properties:
- enum:
- qcom,sm8650-ipa
- const: qcom,sm8550-ipa
+ - items:
+ - enum:
+ - qcom,qcm2290-ipa
+ - const: qcom,sc7180-ipa
reg:
items:
--
2.34.1
On 20/12/2024 08:35, Wojciech Slenska wrote: > Document that ipa on qcm2290 uses version 4.2, the same > as sc7180. > > Signed-off-by: Wojciech Slenska <wojciech.slenska@gmail.com> > --- > Documentation/devicetree/bindings/net/qcom,ipa.yaml | 4 ++++ > 1 file changed, 4 insertions(+) > > diff --git a/Documentation/devicetree/bindings/net/qcom,ipa.yaml b/Documentation/devicetree/bindings/net/qcom,ipa.yaml > index 53cae71d9957..ea44d02d1e5c 100644 > --- a/Documentation/devicetree/bindings/net/qcom,ipa.yaml > +++ b/Documentation/devicetree/bindings/net/qcom,ipa.yaml > @@ -58,6 +58,10 @@ properties: > - enum: > - qcom,sm8650-ipa > - const: qcom,sm8550-ipa > + - items: > + - enum: > + - qcom,qcm2290-ipa > + - const: qcom,sc7180-ipa > We usually keep such lists between each other ordered by fallback, so this should go before sm8550-fallback-list. With that change: Acked-by: Krzysztof Kozlowski <krzk@kernel.org> Best regards, Krzysztof
On 12/21/24 9:44 PM, Krzysztof Kozlowski wrote: > On 20/12/2024 08:35, Wojciech Slenska wrote: >> Document that ipa on qcm2290 uses version 4.2, the same >> as sc7180. >> >> Signed-off-by: Wojciech Slenska <wojciech.slenska@gmail.com> >> --- >> Documentation/devicetree/bindings/net/qcom,ipa.yaml | 4 ++++ >> 1 file changed, 4 insertions(+) >> >> diff --git a/Documentation/devicetree/bindings/net/qcom,ipa.yaml b/Documentation/devicetree/bindings/net/qcom,ipa.yaml >> index 53cae71d9957..ea44d02d1e5c 100644 >> --- a/Documentation/devicetree/bindings/net/qcom,ipa.yaml >> +++ b/Documentation/devicetree/bindings/net/qcom,ipa.yaml >> @@ -58,6 +58,10 @@ properties: >> - enum: >> - qcom,sm8650-ipa >> - const: qcom,sm8550-ipa >> + - items: >> + - enum: >> + - qcom,qcm2290-ipa >> + - const: qcom,sc7180-ipa >> > We usually keep such lists between each other ordered by fallback, so > this should go before sm8550-fallback-list. > > With that change: > > Acked-by: Krzysztof Kozlowski <krzk@kernel.org> (half a year later) I've now sent a series that resolves the issue described in the other branch of this thread. Feel free to pick up this binding Krzysztof/Rob/Kuba. Patch 2 will need an update and some prerequisite changes. Wojciech, you'll need: https://lore.kernel.org/linux-arm-msm/20250523-topic-ipa_imem-v1-0-b5d536291c7f@oss.qualcomm.com https://lore.kernel.org/linux-arm-msm/20250523-topic-ipa_mem_dts-v1-0-f7aa94fac1ab@oss.qualcomm.com https://github.com/quic-kdybcio/linux/commits/topic/ipa_qcm2290 and a snippet like -----------o<----------------------------------- qcom,smem-state-names = "ipa-clock-enabled-valid", "ipa-clock-enabled"; + sram = <&ipa_modem_tables>; + status = "disabled"; -----------o<----------------------------------- added to your DT change please let me know if it works with the above if you're not interested anymore or don't have the board on hand, I can take up your patch, preserving your authorship ofc Konrad
pt., 23 maj 2025 o 01:30 Konrad Dybcio
<konrad.dybcio@oss.qualcomm.com> napisał(a):
>
> On 12/21/24 9:44 PM, Krzysztof Kozlowski wrote:
> > On 20/12/2024 08:35, Wojciech Slenska wrote:
> >> Document that ipa on qcm2290 uses version 4.2, the same
> >> as sc7180.
> >>
> >> Signed-off-by: Wojciech Slenska <wojciech.slenska@gmail.com>
> >> ---
> >> Documentation/devicetree/bindings/net/qcom,ipa.yaml | 4 ++++
> >> 1 file changed, 4 insertions(+)
> >>
> >> diff --git a/Documentation/devicetree/bindings/net/qcom,ipa.yaml b/Documentation/devicetree/bindings/net/qcom,ipa.yaml
> >> index 53cae71d9957..ea44d02d1e5c 100644
> >> --- a/Documentation/devicetree/bindings/net/qcom,ipa.yaml
> >> +++ b/Documentation/devicetree/bindings/net/qcom,ipa.yaml
> >> @@ -58,6 +58,10 @@ properties:
> >> - enum:
> >> - qcom,sm8650-ipa
> >> - const: qcom,sm8550-ipa
> >> + - items:
> >> + - enum:
> >> + - qcom,qcm2290-ipa
> >> + - const: qcom,sc7180-ipa
> >>
> > We usually keep such lists between each other ordered by fallback, so
> > this should go before sm8550-fallback-list.
> >
> > With that change:
> >
> > Acked-by: Krzysztof Kozlowski <krzk@kernel.org>
>
> (half a year later)
>
> I've now sent a series that resolves the issue described in the
> other branch of this thread. Feel free to pick up this binding
> Krzysztof/Rob/Kuba.
>
>
>
> Patch 2 will need an update and some prerequisite changes.
> Wojciech, you'll need:
>
> https://lore.kernel.org/linux-arm-msm/20250523-topic-ipa_imem-v1-0-b5d536291c7f@oss.qualcomm.com
> https://lore.kernel.org/linux-arm-msm/20250523-topic-ipa_mem_dts-v1-0-f7aa94fac1ab@oss.qualcomm.com
> https://github.com/quic-kdybcio/linux/commits/topic/ipa_qcm2290
>
> and a snippet like
>
> -----------o<-----------------------------------
> qcom,smem-state-names = "ipa-clock-enabled-valid",
> "ipa-clock-enabled";
>
> + sram = <&ipa_modem_tables>;
> +
> status = "disabled";
> -----------o<-----------------------------------
>
> added to your DT change
>
> please let me know if it works with the above
>
> if you're not interested anymore or don't have the board on hand,
> I can take up your patch, preserving your authorship ofc
>
> Konrad
Hello Konrad,
I have applied your patches on top of the 6.15 kernel.
I used the following:
Konrad Dybcio: arm64: dts: qcom: qcm2290: Explicitly describe the IPA IMEM slice
Konrad Dybcio: dt-bindings: sram: qcom,imem: Document QCM2290 IMEM
Konrad Dybcio: net: ipa: Grab IMEM slice base/size from DTS
Konrad Dybcio: dt-bindings: net: qcom,ipa: Add sram property for
describing IMEM slice
Konrad Dybcio: dt-bindings: sram: qcom,imem: Allow modem-tables
Konrad Dybcio: net: ipa: Make the SMEM item ID constant
Two corrections were needed:
1. A small change in the DTS:
- reg = <0x0c100000 0x2a000>;
- ranges = <0x0 0x0c100000 0x2a000>;
+ reg = <0 0x0c100000 0 0x2a000>;
+ ranges = <0 0 0x0c100000 0x2a000>;
This was necessary because, in the original version, the following line:
ret = of_address_to_resource(ipa_slice_np, 0, res);
returns -22
2. I also made a small modification here, because local variables were
not used in the function call. However, this issue has already been
reported.
- ret = ipa_imem_init(ipa, mem_data->imem_addr, mem_data->imem_size);
+ dev_err(dev, "ipa_imem_init %0x %0x\n", imem_base, imem_size);
+ ret = ipa_imem_init(ipa, imem_base, imem_size);
Results
With these corrections, everything works perfectly.
dmesg:
[ 0.832180] platform 5840000.ipa: Adding to iommu group 3
[ 5.798469] ipa 5840000.ipa: ipa_imem_init c123000 2000
[ 5.829216] ipa 5840000.ipa: IPA driver initialized
[ 5.929674] ipa 5840000.ipa: IPA driver setup completed successfully
[ 8.039075] ipa 5840000.ipa: received modem starting event
[ 8.374774] ipa 5840000.ipa: received modem running event
Ipa is visible in ifaces:
5: qmapmux0.0@rmnet_ipa0: <UP,LOWER_UP> mtu 1496 qdisc pfifo_fast
state UNKNOWN group default qlen 1000
link/[519]
inet 10.86.101.79/27 brd 10.86.101.95 scope global qmapmux0.0
valid_lft forever preferred_lft forever
inet6 fe80::a8dc:ccff:feb3:e683/64 scope link proto kernel_ll
valid_lft forever preferred_lft forever
Speedtest is also working fine:
$ speedtest
...
Testing download
speed................................................................................
Download: 8.62 Mbit/s
Testing upload speed......................................................................................................
Upload: 0.42 Mbit/s
Once your changes have been integrated, I will resubmit my patches.
BR
Wojtek
On 5/26/25 9:39 PM, Wojciech Sleńska wrote: > pt., 23 maj 2025 o 01:30 Konrad Dybcio > <konrad.dybcio@oss.qualcomm.com> napisał(a): >> >> On 12/21/24 9:44 PM, Krzysztof Kozlowski wrote: >>> On 20/12/2024 08:35, Wojciech Slenska wrote: >>>> Document that ipa on qcm2290 uses version 4.2, the same >>>> as sc7180. >>>> >>>> Signed-off-by: Wojciech Slenska <wojciech.slenska@gmail.com> >>>> --- >>>> Documentation/devicetree/bindings/net/qcom,ipa.yaml | 4 ++++ >>>> 1 file changed, 4 insertions(+) >>>> >>>> diff --git a/Documentation/devicetree/bindings/net/qcom,ipa.yaml b/Documentation/devicetree/bindings/net/qcom,ipa.yaml >>>> index 53cae71d9957..ea44d02d1e5c 100644 >>>> --- a/Documentation/devicetree/bindings/net/qcom,ipa.yaml >>>> +++ b/Documentation/devicetree/bindings/net/qcom,ipa.yaml >>>> @@ -58,6 +58,10 @@ properties: >>>> - enum: >>>> - qcom,sm8650-ipa >>>> - const: qcom,sm8550-ipa >>>> + - items: >>>> + - enum: >>>> + - qcom,qcm2290-ipa >>>> + - const: qcom,sc7180-ipa >>>> >>> We usually keep such lists between each other ordered by fallback, so >>> this should go before sm8550-fallback-list. >>> >>> With that change: >>> >>> Acked-by: Krzysztof Kozlowski <krzk@kernel.org> >> >> (half a year later) >> >> I've now sent a series that resolves the issue described in the >> other branch of this thread. Feel free to pick up this binding >> Krzysztof/Rob/Kuba. >> >> >> >> Patch 2 will need an update and some prerequisite changes. >> Wojciech, you'll need: >> >> https://lore.kernel.org/linux-arm-msm/20250523-topic-ipa_imem-v1-0-b5d536291c7f@oss.qualcomm.com >> https://lore.kernel.org/linux-arm-msm/20250523-topic-ipa_mem_dts-v1-0-f7aa94fac1ab@oss.qualcomm.com >> https://github.com/quic-kdybcio/linux/commits/topic/ipa_qcm2290 >> >> and a snippet like >> >> -----------o<----------------------------------- >> qcom,smem-state-names = "ipa-clock-enabled-valid", >> "ipa-clock-enabled"; >> >> + sram = <&ipa_modem_tables>; >> + >> status = "disabled"; >> -----------o<----------------------------------- >> >> added to your DT change >> >> please let me know if it works with the above >> >> if you're not interested anymore or don't have the board on hand, >> I can take up your patch, preserving your authorship ofc >> >> Konrad > > Hello Konrad, > > I have applied your patches on top of the 6.15 kernel. > I used the following: > Konrad Dybcio: arm64: dts: qcom: qcm2290: Explicitly describe the IPA IMEM slice > Konrad Dybcio: dt-bindings: sram: qcom,imem: Document QCM2290 IMEM > Konrad Dybcio: net: ipa: Grab IMEM slice base/size from DTS > Konrad Dybcio: dt-bindings: net: qcom,ipa: Add sram property for > describing IMEM slice > Konrad Dybcio: dt-bindings: sram: qcom,imem: Allow modem-tables > Konrad Dybcio: net: ipa: Make the SMEM item ID constant > > Two corrections were needed: > 1. A small change in the DTS: > - reg = <0x0c100000 0x2a000>; > - ranges = <0x0 0x0c100000 0x2a000>; > + reg = <0 0x0c100000 0 0x2a000>; > + ranges = <0 0 0x0c100000 0x2a000>; > > This was necessary because, in the original version, the following line: > ret = of_address_to_resource(ipa_slice_np, 0, res); > returns -22 Ouch! thanks for noticing this and for all the testing Konrad
pt., 23 maj 2025 o 01:30 Konrad Dybcio <konrad.dybcio@oss.qualcomm.com> napisał(a): > > On 12/21/24 9:44 PM, Krzysztof Kozlowski wrote: > > On 20/12/2024 08:35, Wojciech Slenska wrote: > >> Document that ipa on qcm2290 uses version 4.2, the same > >> as sc7180. > >> > >> Signed-off-by: Wojciech Slenska <wojciech.slenska@gmail.com> > >> --- > >> Documentation/devicetree/bindings/net/qcom,ipa.yaml | 4 ++++ > >> 1 file changed, 4 insertions(+) > >> > >> diff --git a/Documentation/devicetree/bindings/net/qcom,ipa.yaml b/Documentation/devicetree/bindings/net/qcom,ipa.yaml > >> index 53cae71d9957..ea44d02d1e5c 100644 > >> --- a/Documentation/devicetree/bindings/net/qcom,ipa.yaml > >> +++ b/Documentation/devicetree/bindings/net/qcom,ipa.yaml > >> @@ -58,6 +58,10 @@ properties: > >> - enum: > >> - qcom,sm8650-ipa > >> - const: qcom,sm8550-ipa > >> + - items: > >> + - enum: > >> + - qcom,qcm2290-ipa > >> + - const: qcom,sc7180-ipa > >> > > We usually keep such lists between each other ordered by fallback, so > > this should go before sm8550-fallback-list. > > > > With that change: > > > > Acked-by: Krzysztof Kozlowski <krzk@kernel.org> > > (half a year later) > > I've now sent a series that resolves the issue described in the > other branch of this thread. Feel free to pick up this binding > Krzysztof/Rob/Kuba. > > > > Patch 2 will need an update and some prerequisite changes. > Wojciech, you'll need: > > https://lore.kernel.org/linux-arm-msm/20250523-topic-ipa_imem-v1-0-b5d536291c7f@oss.qualcomm.com > https://lore.kernel.org/linux-arm-msm/20250523-topic-ipa_mem_dts-v1-0-f7aa94fac1ab@oss.qualcomm.com > https://github.com/quic-kdybcio/linux/commits/topic/ipa_qcm2290 > > and a snippet like > > -----------o<----------------------------------- > qcom,smem-state-names = "ipa-clock-enabled-valid", > "ipa-clock-enabled"; > > + sram = <&ipa_modem_tables>; > + > status = "disabled"; > -----------o<----------------------------------- > > added to your DT change > > please let me know if it works with the above > > if you're not interested anymore or don't have the board on hand, > I can take up your patch, preserving your authorship ofc > > Konrad Hello Konrad, Thank you very much for your input. IPA is working stable and without any issues in my project, which is using the QCM2290. I will integrate and test your changes, and once they are submitted, I will resend my patch. Wojtek
On 20.12.2024 8:35 AM, Wojciech Slenska wrote: > Document that ipa on qcm2290 uses version 4.2, the same > as sc7180. > > Signed-off-by: Wojciech Slenska <wojciech.slenska@gmail.com> > --- FWIW this needs some more work on the Linux side, the IPA driver currently hardcodes a reference to IMEM, which has a different base between these two SoCs. The IMEM region doesn't seem to be used as of current, but things will explode the second it is. A long overdue update would be to make the IPA driver consume a syscon/memory-region-like property pointing to IMEM (or a slice of it, maybe Alex knows what it was supposed to be used for). Konrad
On 12/20/24 7:25 AM, Konrad Dybcio wrote: > On 20.12.2024 8:35 AM, Wojciech Slenska wrote: >> Document that ipa on qcm2290 uses version 4.2, the same >> as sc7180. >> >> Signed-off-by: Wojciech Slenska <wojciech.slenska@gmail.com> >> --- > > FWIW this needs some more work on the Linux side, the IPA driver > currently hardcodes a reference to IMEM, which has a different > base between these two SoCs. Everything currently assumes the IPA version dictates many things. That works, so far. But a lot of these fixed/hard-coded definitions (per version) could be changed for specific implementations--they just haven't needed to be. > The IMEM region doesn't seem to be used as of current, but things > will explode the second it is. > > A long overdue update would be to make the IPA driver consume > a syscon/memory-region-like property pointing to IMEM (or a slice > of it, maybe Alex knows what it was supposed to be used for). Yes, we talked about this last year, or the year before. Konrad's patches to put this in DT is the right solution. It doesn't matter that it's six months later. I really appreciate the improvement. -Alex > > Konrad
On 12/20/24 7:25 AM, Konrad Dybcio wrote: > On 20.12.2024 8:35 AM, Wojciech Slenska wrote: >> Document that ipa on qcm2290 uses version 4.2, the same >> as sc7180. >> >> Signed-off-by: Wojciech Slenska <wojciech.slenska@gmail.com> >> --- > > FWIW this needs some more work on the Linux side, the IPA driver > currently hardcodes a reference to IMEM, which has a different > base between these two SoCs. I have only glanced at this so far. At the moment I don't know whether this device uses a different range in IMEM, but Konrad's message suggests it does. And if so, he's correct: the IMEM range needs to be defined differently (perhaps in Device Tree) so that different SoCs using the same version of IPA but different IMEM ranges can function correctly. Downstream code should be consulted to determine this, and as of now I have not done that. -Alex > The IMEM region doesn't seem to be used as of current, but things > will explode the second it is. > > A long overdue update would be to make the IPA driver consume > a syscon/memory-region-like property pointing to IMEM (or a slice > of it, maybe Alex knows what it was supposed to be used for). > > Konrad
© 2016 - 2026 Red Hat, Inc.