Messages in this thread |  | | Subject | Re: [PATCH v2 1/5] arm64: dts: qcom: msm8996: Revamp reserved memory | From | Dmitry Baryshkov <> | Date | Wed, 3 Nov 2021 16:55:08 +0300 |
| |
On 03/11/2021 05:42, Yassine Oudjana wrote: > On Wed, 2021-11-03 at 03:50 +0400, Dmitry Baryshkov wrote: >> On 24/10/2021 06:04, Bjorn Andersson wrote: >>> On Sun 26 Sep 14:06 CDT 2021, Yassine Oudjana wrote: >>> >>>> Fix a total overlap between zap_shader_region and slpi_region, and rename >>>> all regions to match the naming convention in other Qualcomm SoC device trees. >>>> >>>> Signed-off-by: Yassine Oudjana <y.oudjana@protonmail.com> >>> >>> FYI, I like this series, but I held off applying it because I wanted to >>> verify that the shuffling of the memory regions works on the existing >>> 8996 boards. >>> >>> Unfortunately it didn't work, either with or without the shuffling on >>> the db820c - and I've not found the time to figure out why that is. I >>> hope to get back to this shortly (or that someone else will figure it >>> out and provide a tested-by) >> >> I gave this a test too on my db820c. Usually the board MSS will crash >> after ~0.1 - 0.15 seconds after booting up, then during recovery the >> board will crash/reboot somewhere at the end of q6v5_mss_load() (and >> typically after successful q6v5_rmb_mba_wait() call. > >> Occasionally (approximately 1 of 20) the MSS will not crash, presenting >> PDS service to the userspace. Even in this state it doesn't seem to be >> able to lock the gps location (but this might be related to the big UART >> mezzanine sitting on top of the board). > > I've had MSS crash on xiaomi-scorpio too, but far less often. It seemed > like some sort of race condition, as it only happened when ADSP and MSS > were booted at the same time. To workaround this, I delayed loading of > the rmtfs service to leave some time between booting ADSP and MSS.
For the tests to get 1:20 I've disabled ADSP (and WiFi/BT) completely. Without that I think I never got MSS to boot successfully. I think this is some kind of power/regulators/clock with ADSP and MSS draining too much power.
Note to myself: check rmtfs/partitions usage on db820c.
> >> >> Unfortunately there seem to be no SLPI firmware for the db820c, so I can >> not test slpi. >> >> A notice regarding the patchset itself. It looks like pil_q6v5_mss.c >> driver misses mx and cx proxy power domains for the MSS_MSM8996 case. > > I didn't notice that. I guess they stay on and MSS is able to boot > anyway. I'll add them similar to PATCH 2/5.
Thanks!
> >> >>> >>> Regards, >>> Bjorn >>> >>>> --- >>>> .../dts/qcom/msm8996-sony-xperia-tone.dtsi | 18 ++++-- >>>> .../boot/dts/qcom/msm8996-xiaomi-common.dtsi | 18 +++--- >>>> arch/arm64/boot/dts/qcom/msm8996.dtsi | 63 ++++++++++--------- >>>> 3 files changed, 55 insertions(+), 44 deletions(-) >>>> >>>> diff --git a/arch/arm64/boot/dts/qcom/msm8996-sony-xperia-tone.dtsi b/arch/arm64/boot/dts/qcom/msm8996-sony-xperia-tone.dtsi >>>> index 507396c4d23b..4c26e66f0610 100644 >>>> --- a/arch/arm64/boot/dts/qcom/msm8996-sony-xperia-tone.dtsi >>>> +++ b/arch/arm64/boot/dts/qcom/msm8996-sony-xperia-tone.dtsi >>>> @@ -13,9 +13,10 @@ >>>> #include <dt-bindings/pinctrl/qcom,pmic-gpio.h> >>>> #include <dt-bindings/pinctrl/qcom,pmic-mpp.h> >>>> >>>> -/delete-node/ &slpi_region; >>>> -/delete-node/ &venus_region; >>>> -/delete-node/ &zap_shader_region; >>>> +/delete-node/ &adsp_mem; >>>> +/delete-node/ &slpi_mem; >>>> +/delete-node/ &venus_mem; >>>> +/delete-node/ &gpu_mem; >>>> >>>> / { >>>> qcom,msm-id = <246 0x30001>; /* MSM8996 V3.1 (Final) */ >>>> @@ -46,18 +47,23 @@ cont_splash_mem: memory@83401000 { >>>> no-map; >>>> }; >>>> >>>> - zap_shader_region: gpu@90400000 { >>>> + adsp_mem: adsp@8ea00000 { >>>> + reg = <0x0 0x8ea00000 0x0 0x1a00000>; >>>> + no-map; >>>> + }; >>>> + >>>> + gpu_mem: gpu@90400000 { >>>> compatible = "shared-dma-pool"; >>>> reg = <0x0 0x90400000 0x0 0x2000>; >>>> no-map; >>>> }; >>>> >>>> - slpi_region: memory@90500000 { >>>> + slpi_mem: memory@90500000 { >>>> reg = <0 0x90500000 0 0xa00000>; >>>> no-map; >>>> }; >>>> >>>> - venus_region: memory@90f00000 { >>>> + venus_mem: memory@90f00000 { >>>> reg = <0 0x90f00000 0 0x500000>; >>>> no-map; >>>> }; >>>> diff --git a/arch/arm64/boot/dts/qcom/msm8996-xiaomi-common.dtsi b/arch/arm64/boot/dts/qcom/msm8996-xiaomi-common.dtsi >>>> index d239b01b8505..a5e7bccadba2 100644 >>>> --- a/arch/arm64/boot/dts/qcom/msm8996-xiaomi-common.dtsi >>>> +++ b/arch/arm64/boot/dts/qcom/msm8996-xiaomi-common.dtsi >>>> @@ -66,32 +66,32 @@ memory@88800000 { >>>> >>>> /* This platform has all PIL regions offset by 0x1400000 */ >>>> /delete-node/ mpss@88800000; >>>> - mpss_region: mpss@89c00000 { >>>> + mpss_mem: mpss@89c00000 { >>>> reg = <0x0 0x89c00000 0x0 0x6200000>; >>>> no-map; >>>> }; >>>> >>>> /delete-node/ adsp@8ea00000; >>>> - adsp_region: adsp@8ea00000 { >>>> + adsp_mem: adsp@8fe00000 { >>>> reg = <0x0 0x8fe00000 0x0 0x1b00000>; >>>> no-map; >>>> }; >>>> >>>> - /delete-node/ slpi@90b00000; >>>> - slpi_region: slpi@91900000 { >>>> + /delete-node/ slpi@90500000; >>>> + slpi_mem: slpi@91900000 { >>>> reg = <0x0 0x91900000 0x0 0xa00000>; >>>> no-map; >>>> }; >>>> >>>> - /delete-node/ gpu@8f200000; >>>> - zap_shader_region: gpu@92300000 { >>>> + /delete-node/ gpu@90f00000; >>>> + gpu_mem: gpu@92300000 { >>>> compatible = "shared-dma-pool"; >>>> reg = <0x0 0x92300000 0x0 0x2000>; >>>> no-map; >>>> }; >>>> >>>> /delete-node/ venus@91000000; >>>> - venus_region: venus@90400000 { >>>> + venus_mem: venus@92400000 { >>>> reg = <0x0 0x92400000 0x0 0x500000>; >>>> no-map; >>>> }; >>>> @@ -107,7 +107,7 @@ ramoops@92900000 { >>>> pmsg-size = <0x40000>; >>>> }; >>>> >>>> - /delete-node/ rmtfs@86700000; >>>> + /delete-node/ rmtfs; >>>> rmtfs@f6c00000 { >>>> compatible = "qcom,rmtfs-mem"; >>>> reg = <0 0xf6c00000 0 0x200000>; >>>> @@ -118,7 +118,7 @@ rmtfs@f6c00000 { >>>> }; >>>> >>>> /delete-node/ mba@91500000; >>>> - mba_region: mba@f6f00000 { >>>> + mba_mem: mba@f6f00000 { >>>> reg = <0x0 0xf6f00000 0x0 0x100000>; >>>> no-map; >>>> }; >>>> diff --git a/arch/arm64/boot/dts/qcom/msm8996.dtsi b/arch/arm64/boot/dts/qcom/msm8996.dtsi >>>> index eb3ec5ff46eb..1495fff6ffc9 100644 >>>> --- a/arch/arm64/boot/dts/qcom/msm8996.dtsi >>>> +++ b/arch/arm64/boot/dts/qcom/msm8996.dtsi >>>> @@ -384,60 +384,65 @@ reserved-memory { >>>> #size-cells = <2>; >>>> ranges; >>>> >>>> - mba_region: mba@91500000 { >>>> - reg = <0x0 0x91500000 0x0 0x200000>; >>>> + hyp_mem: memory@85800000 { >>>> + reg = <0x0 0x85800000 0x0 0x600000>; >>>> no-map; >>>> }; >>>> >>>> - slpi_region: slpi@90b00000 { >>>> - reg = <0x0 0x90b00000 0x0 0xa00000>; >>>> + xbl_mem: memory@85e00000 { >>>> + reg = <0x0 0x85e00000 0x0 0x200000>; >>>> no-map; >>>> }; >>>> >>>> - venus_region: venus@90400000 { >>>> - reg = <0x0 0x90400000 0x0 0x700000>; >>>> + smem_mem: smem-mem@86000000 { >>>> + reg = <0x0 0x86000000 0x0 0x200000>; >>>> no-map; >>>> }; >>>> >>>> - adsp_region: adsp@8ea00000 { >>>> - reg = <0x0 0x8ea00000 0x0 0x1a00000>; >>>> + tz_mem: memory@86200000 { >>>> + reg = <0x0 0x86200000 0x0 0x2600000>; >>>> no-map; >>>> }; >>>> >>>> - mpss_region: mpss@88800000 { >>>> - reg = <0x0 0x88800000 0x0 0x6200000>; >>>> + rmtfs_mem: rmtfs { >>>> + compatible = "qcom,rmtfs-mem"; >>>> + >>>> + size = <0x0 0x200000>; >>>> + alloc-ranges = <0x0 0xa0000000 0x0 0x2000000>; >>>> no-map; >>>> + >>>> + qcom,client-id = <1>; >>>> + qcom,vmid = <15>; >>>> }; >>>> >>>> - smem_mem: smem-mem@86000000 { >>>> - reg = <0x0 0x86000000 0x0 0x200000>; >>>> + mpss_mem: mpss@88800000 { >>>> + reg = <0x0 0x88800000 0x0 0x6200000>; >>>> no-map; >>>> }; >>>> >>>> - memory@85800000 { >>>> - reg = <0x0 0x85800000 0x0 0x800000>; >>>> + adsp_mem: adsp@8ea00000 { >>>> + reg = <0x0 0x8ea00000 0x0 0x1b00000>; >>>> no-map; >>>> }; >>>> >>>> - memory@86200000 { >>>> - reg = <0x0 0x86200000 0x0 0x2600000>; >>>> + slpi_mem: slpi@90500000 { >>>> + reg = <0x0 0x90500000 0x0 0xa00000>; >>>> no-map; >>>> }; >>>> >>>> - rmtfs@86700000 { >>>> - compatible = "qcom,rmtfs-mem"; >>>> - >>>> - size = <0x0 0x200000>; >>>> - alloc-ranges = <0x0 0xa0000000 0x0 0x2000000>; >>>> + gpu_mem: gpu@90f00000 { >>>> + compatible = "shared-dma-pool"; >>>> + reg = <0x0 0x90f00000 0x0 0x100000>; >>>> no-map; >>>> + }; >>>> >>>> - qcom,client-id = <1>; >>>> - qcom,vmid = <15>; >>>> + venus_mem: venus@91000000 { >>>> + reg = <0x0 0x91000000 0x0 0x500000>; >>>> + no-map; >>>> }; >>>> >>>> - zap_shader_region: gpu@8f200000 { >>>> - compatible = "shared-dma-pool"; >>>> - reg = <0x0 0x90b00000 0x0 0xa00000>; >>>> + mba_mem: mba@91500000 { >>>> + reg = <0x0 0x91500000 0x0 0x200000>; >>>> no-map; >>>> }; >>>> }; >>>> @@ -1013,7 +1018,7 @@ opp-133000000 { >>>> }; >>>> >>>> zap-shader { >>>> - memory-region = <&zap_shader_region>; >>>> + memory-region = <&gpu_mem>; >>>> }; >>>> }; >>>> >>>> @@ -2001,7 +2006,7 @@ venus: video-codec@c00000 { >>>> <&venus_smmu 0x2c>, >>>> <&venus_smmu 0x2d>, >>>> <&venus_smmu 0x31>; >>>> - memory-region = <&venus_region>; >>>> + memory-region = <&venus_mem>; >>>> status = "disabled"; >>>> >>>> video-decoder { >>>> @@ -3008,7 +3013,7 @@ adsp_pil: remoteproc@9300000 { >>>> clocks = <&xo_board>; >>>> clock-names = "xo"; >>>> >>>> - memory-region = <&adsp_region>; >>>> + memory-region = <&adsp_mem>; >>>> >>>> qcom,smem-states = <&smp2p_adsp_out 0>; >>>> qcom,smem-state-names = "stop"; >>>> -- >>>> 2.33.0 >>>> >>>> >> >> >> -- >> With best wishes >> Dmitry > > >
-- With best wishes Dmitry
|  |