2023-01-13 04:49:56

by Bjorn Andersson

[permalink] [raw]
Subject: [PATCH] arm64: dts: qcom: sc8280xp: Define CMA region for CRD and X13s

Booting the CRD needs roughly 64MB CMA, rather than relying on people
adding boot parameters etc define a region for this, to remove the
allocation errors from e.g. NVME.

While fixing the CRD define the same region for the X13s.

Signed-off-by: Bjorn Andersson <[email protected]>
---
arch/arm64/boot/dts/qcom/sc8280xp-crd.dts | 9 +++++++++
.../boot/dts/qcom/sc8280xp-lenovo-thinkpad-x13s.dts | 9 +++++++++
2 files changed, 18 insertions(+)

diff --git a/arch/arm64/boot/dts/qcom/sc8280xp-crd.dts b/arch/arm64/boot/dts/qcom/sc8280xp-crd.dts
index b29c02307839..e30a37c73b90 100644
--- a/arch/arm64/boot/dts/qcom/sc8280xp-crd.dts
+++ b/arch/arm64/boot/dts/qcom/sc8280xp-crd.dts
@@ -128,6 +128,15 @@ vreg_wwan: regulator-wwan {

regulator-boot-on;
};
+
+ reserved-memory {
+ linux,cma {
+ compatible = "shared-dma-pool";
+ size = <0x0 0x8000000>;
+ reusable;
+ linux,cma-default;
+ };
+ };
};

&apps_rsc {
diff --git a/arch/arm64/boot/dts/qcom/sc8280xp-lenovo-thinkpad-x13s.dts b/arch/arm64/boot/dts/qcom/sc8280xp-lenovo-thinkpad-x13s.dts
index 78e61a8184c5..5bfd1f0b2a24 100644
--- a/arch/arm64/boot/dts/qcom/sc8280xp-lenovo-thinkpad-x13s.dts
+++ b/arch/arm64/boot/dts/qcom/sc8280xp-lenovo-thinkpad-x13s.dts
@@ -153,6 +153,15 @@ vreg_wwan: regulator-wwan {
regulator-boot-on;
};

+ reserved-memory {
+ linux,cma {
+ compatible = "shared-dma-pool";
+ size = <0x0 0x8000000>;
+ reusable;
+ linux,cma-default;
+ };
+ };
+
thermal-zones {
skin-temp-thermal {
polling-delay-passive = <250>;
--
2.37.3


2023-01-13 15:30:03

by Konrad Dybcio

[permalink] [raw]
Subject: Re: [PATCH] arm64: dts: qcom: sc8280xp: Define CMA region for CRD and X13s



On 13.01.2023 05:10, Bjorn Andersson wrote:
> Booting the CRD needs roughly 64MB CMA, rather than relying on people
> adding boot parameters etc define a region for this, to remove the
> allocation errors from e.g. NVME.
>
> While fixing the CRD define the same region for the X13s.
>
> Signed-off-by: Bjorn Andersson <[email protected]>
> ---
So, to reiterate, the NVMe needs ~64M of contiguous RAM for
$reasons and without this patch, it is not guaranteed that
it can always find such a block which causes issues and
adding a CMA region resolves that, is that correct?

Konrad
> arch/arm64/boot/dts/qcom/sc8280xp-crd.dts | 9 +++++++++
> .../boot/dts/qcom/sc8280xp-lenovo-thinkpad-x13s.dts | 9 +++++++++
> 2 files changed, 18 insertions(+)
>
> diff --git a/arch/arm64/boot/dts/qcom/sc8280xp-crd.dts b/arch/arm64/boot/dts/qcom/sc8280xp-crd.dts
> index b29c02307839..e30a37c73b90 100644
> --- a/arch/arm64/boot/dts/qcom/sc8280xp-crd.dts
> +++ b/arch/arm64/boot/dts/qcom/sc8280xp-crd.dts
> @@ -128,6 +128,15 @@ vreg_wwan: regulator-wwan {
>
> regulator-boot-on;
> };
> +
> + reserved-memory {
> + linux,cma {
> + compatible = "shared-dma-pool";
> + size = <0x0 0x8000000>;
> + reusable;
> + linux,cma-default;
> + };
> + };
> };
>
> &apps_rsc {
> diff --git a/arch/arm64/boot/dts/qcom/sc8280xp-lenovo-thinkpad-x13s.dts b/arch/arm64/boot/dts/qcom/sc8280xp-lenovo-thinkpad-x13s.dts
> index 78e61a8184c5..5bfd1f0b2a24 100644
> --- a/arch/arm64/boot/dts/qcom/sc8280xp-lenovo-thinkpad-x13s.dts
> +++ b/arch/arm64/boot/dts/qcom/sc8280xp-lenovo-thinkpad-x13s.dts
> @@ -153,6 +153,15 @@ vreg_wwan: regulator-wwan {
> regulator-boot-on;
> };
>
> + reserved-memory {
> + linux,cma {
> + compatible = "shared-dma-pool";
> + size = <0x0 0x8000000>;
> + reusable;
> + linux,cma-default;
> + };
> + };
> +
> thermal-zones {
> skin-temp-thermal {
> polling-delay-passive = <250>;

2023-01-13 20:35:18

by Andrew Halaney

[permalink] [raw]
Subject: Re: [PATCH] arm64: dts: qcom: sc8280xp: Define CMA region for CRD and X13s

On Thu, Jan 12, 2023 at 08:10:25PM -0800, Bjorn Andersson wrote:
> Booting the CRD needs roughly 64MB CMA, rather than relying on people
> adding boot parameters etc define a region for this, to remove the
> allocation errors from e.g. NVME.
>
> While fixing the CRD define the same region for the X13s.
>
> Signed-off-by: Bjorn Andersson <[email protected]>

Tested-by: Andrew Halaney <[email protected]> # sc8280xp-lenovo-thinkpad-x13s

I'm not sure if I've seen this issue in the past, but booting with this
applied isn't showing any obvious problems like described in the commit.
It would be nice as Konrad said to be a little more explicit about what
you were seeing without this, but that's my personal opinion.

> ---
> arch/arm64/boot/dts/qcom/sc8280xp-crd.dts | 9 +++++++++
> .../boot/dts/qcom/sc8280xp-lenovo-thinkpad-x13s.dts | 9 +++++++++
> 2 files changed, 18 insertions(+)
>
> diff --git a/arch/arm64/boot/dts/qcom/sc8280xp-crd.dts b/arch/arm64/boot/dts/qcom/sc8280xp-crd.dts
> index b29c02307839..e30a37c73b90 100644
> --- a/arch/arm64/boot/dts/qcom/sc8280xp-crd.dts
> +++ b/arch/arm64/boot/dts/qcom/sc8280xp-crd.dts
> @@ -128,6 +128,15 @@ vreg_wwan: regulator-wwan {
>
> regulator-boot-on;
> };
> +
> + reserved-memory {
> + linux,cma {
> + compatible = "shared-dma-pool";
> + size = <0x0 0x8000000>;
> + reusable;
> + linux,cma-default;
> + };
> + };
> };
>
> &apps_rsc {
> diff --git a/arch/arm64/boot/dts/qcom/sc8280xp-lenovo-thinkpad-x13s.dts b/arch/arm64/boot/dts/qcom/sc8280xp-lenovo-thinkpad-x13s.dts
> index 78e61a8184c5..5bfd1f0b2a24 100644
> --- a/arch/arm64/boot/dts/qcom/sc8280xp-lenovo-thinkpad-x13s.dts
> +++ b/arch/arm64/boot/dts/qcom/sc8280xp-lenovo-thinkpad-x13s.dts
> @@ -153,6 +153,15 @@ vreg_wwan: regulator-wwan {
> regulator-boot-on;
> };
>
> + reserved-memory {
> + linux,cma {
> + compatible = "shared-dma-pool";
> + size = <0x0 0x8000000>;
> + reusable;
> + linux,cma-default;
> + };
> + };
> +
> thermal-zones {
> skin-temp-thermal {
> polling-delay-passive = <250>;
> --
> 2.37.3
>

2023-01-15 04:22:55

by Manivannan Sadhasivam

[permalink] [raw]
Subject: Re: [PATCH] arm64: dts: qcom: sc8280xp: Define CMA region for CRD and X13s

On Thu, Jan 12, 2023 at 08:10:25PM -0800, Bjorn Andersson wrote:
> Booting the CRD needs roughly 64MB CMA, rather than relying on people
> adding boot parameters etc define a region for this, to remove the
> allocation errors from e.g. NVME.
>
> While fixing the CRD define the same region for the X13s.
>
> Signed-off-by: Bjorn Andersson <[email protected]>

Reviewed-by: Manivannan Sadhasivam <[email protected]>

Thanks,
Mani

> ---
> arch/arm64/boot/dts/qcom/sc8280xp-crd.dts | 9 +++++++++
> .../boot/dts/qcom/sc8280xp-lenovo-thinkpad-x13s.dts | 9 +++++++++
> 2 files changed, 18 insertions(+)
>
> diff --git a/arch/arm64/boot/dts/qcom/sc8280xp-crd.dts b/arch/arm64/boot/dts/qcom/sc8280xp-crd.dts
> index b29c02307839..e30a37c73b90 100644
> --- a/arch/arm64/boot/dts/qcom/sc8280xp-crd.dts
> +++ b/arch/arm64/boot/dts/qcom/sc8280xp-crd.dts
> @@ -128,6 +128,15 @@ vreg_wwan: regulator-wwan {
>
> regulator-boot-on;
> };
> +
> + reserved-memory {
> + linux,cma {
> + compatible = "shared-dma-pool";
> + size = <0x0 0x8000000>;
> + reusable;
> + linux,cma-default;
> + };
> + };
> };
>
> &apps_rsc {
> diff --git a/arch/arm64/boot/dts/qcom/sc8280xp-lenovo-thinkpad-x13s.dts b/arch/arm64/boot/dts/qcom/sc8280xp-lenovo-thinkpad-x13s.dts
> index 78e61a8184c5..5bfd1f0b2a24 100644
> --- a/arch/arm64/boot/dts/qcom/sc8280xp-lenovo-thinkpad-x13s.dts
> +++ b/arch/arm64/boot/dts/qcom/sc8280xp-lenovo-thinkpad-x13s.dts
> @@ -153,6 +153,15 @@ vreg_wwan: regulator-wwan {
> regulator-boot-on;
> };
>
> + reserved-memory {
> + linux,cma {
> + compatible = "shared-dma-pool";
> + size = <0x0 0x8000000>;
> + reusable;
> + linux,cma-default;
> + };
> + };
> +
> thermal-zones {
> skin-temp-thermal {
> polling-delay-passive = <250>;
> --
> 2.37.3
>

--
மணிவண்ணன் சதாசிவம்

2023-01-17 02:35:00

by Bjorn Andersson

[permalink] [raw]
Subject: Re: [PATCH] arm64: dts: qcom: sc8280xp: Define CMA region for CRD and X13s

On Fri, Jan 13, 2023 at 03:17:05PM +0100, Konrad Dybcio wrote:
>
>
> On 13.01.2023 05:10, Bjorn Andersson wrote:
> > Booting the CRD needs roughly 64MB CMA, rather than relying on people
> > adding boot parameters etc define a region for this, to remove the
> > allocation errors from e.g. NVME.
> >
> > While fixing the CRD define the same region for the X13s.
> >
> > Signed-off-by: Bjorn Andersson <[email protected]>
> > ---
> So, to reiterate, the NVMe needs ~64M of contiguous RAM for
> $reasons and without this patch, it is not guaranteed that
> it can always find such a block which causes issues and
> adding a CMA region resolves that, is that correct?
>

That's correct, $reasons being that NVMe complains about failures to
allocate CMA memory. I'll post a v2 with this in the commit message.

Thanks,
Bjorn

> Konrad
> > arch/arm64/boot/dts/qcom/sc8280xp-crd.dts | 9 +++++++++
> > .../boot/dts/qcom/sc8280xp-lenovo-thinkpad-x13s.dts | 9 +++++++++
> > 2 files changed, 18 insertions(+)
> >
> > diff --git a/arch/arm64/boot/dts/qcom/sc8280xp-crd.dts b/arch/arm64/boot/dts/qcom/sc8280xp-crd.dts
> > index b29c02307839..e30a37c73b90 100644
> > --- a/arch/arm64/boot/dts/qcom/sc8280xp-crd.dts
> > +++ b/arch/arm64/boot/dts/qcom/sc8280xp-crd.dts
> > @@ -128,6 +128,15 @@ vreg_wwan: regulator-wwan {
> >
> > regulator-boot-on;
> > };
> > +
> > + reserved-memory {
> > + linux,cma {
> > + compatible = "shared-dma-pool";
> > + size = <0x0 0x8000000>;
> > + reusable;
> > + linux,cma-default;
> > + };
> > + };
> > };
> >
> > &apps_rsc {
> > diff --git a/arch/arm64/boot/dts/qcom/sc8280xp-lenovo-thinkpad-x13s.dts b/arch/arm64/boot/dts/qcom/sc8280xp-lenovo-thinkpad-x13s.dts
> > index 78e61a8184c5..5bfd1f0b2a24 100644
> > --- a/arch/arm64/boot/dts/qcom/sc8280xp-lenovo-thinkpad-x13s.dts
> > +++ b/arch/arm64/boot/dts/qcom/sc8280xp-lenovo-thinkpad-x13s.dts
> > @@ -153,6 +153,15 @@ vreg_wwan: regulator-wwan {
> > regulator-boot-on;
> > };
> >
> > + reserved-memory {
> > + linux,cma {
> > + compatible = "shared-dma-pool";
> > + size = <0x0 0x8000000>;
> > + reusable;
> > + linux,cma-default;
> > + };
> > + };
> > +
> > thermal-zones {
> > skin-temp-thermal {
> > polling-delay-passive = <250>;