Re: [PATCH v2 1/5] arm64: dts: qcom: msm8996: Revamp reserved memory

From: Yassine Oudjana
Date: Tue Nov 02 2021 - 22:42:49 EST


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@xxxxxxxxxxxxxx>
> >
> > 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.

>
> 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.

>
> >
> > 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