[PATCH] arm64: dts: qcom: sdm845: Define guard pages within the rmtfs region

David Heidelberg via B4 Relay posted 1 patch 3 months, 3 weeks ago
arch/arm64/boot/dts/qcom/sdm845-lg-common.dtsi      | 17 +++--------------
arch/arm64/boot/dts/qcom/sdm845-oneplus-common.dtsi | 18 +++---------------
2 files changed, 6 insertions(+), 29 deletions(-)
[PATCH] arm64: dts: qcom: sdm845: Define guard pages within the rmtfs region
Posted by David Heidelberg via B4 Relay 3 months, 3 weeks ago
From: David Heidelberg <david@ixit.cz>

Use qcom,use-guard-pages property instead of polluting device-tree with
lower and upper rmtfs guard nodes.

No functional change intended.

cosmetic: set name the node rmtfs-region.

Signed-off-by: David Heidelberg <david@ixit.cz>
---
Tested on OnePlus 6T.
---
 arch/arm64/boot/dts/qcom/sdm845-lg-common.dtsi      | 17 +++--------------
 arch/arm64/boot/dts/qcom/sdm845-oneplus-common.dtsi | 18 +++---------------
 2 files changed, 6 insertions(+), 29 deletions(-)

diff --git a/arch/arm64/boot/dts/qcom/sdm845-lg-common.dtsi b/arch/arm64/boot/dts/qcom/sdm845-lg-common.dtsi
index 99dafc6716e76..83b98bad19dd2 100644
--- a/arch/arm64/boot/dts/qcom/sdm845-lg-common.dtsi
+++ b/arch/arm64/boot/dts/qcom/sdm845-lg-common.dtsi
@@ -99,26 +99,15 @@ memory@9d400000 {
 			no-map;
 		};
 
-		/* rmtfs lower guard */
-		memory@f0800000 {
-			reg = <0 0xf0800000 0 0x1000>;
-			no-map;
-		};
-
-		rmtfs_mem: memory@f0801000 {
+		rmtfs_mem: rmtfs-region@f0800000 {
 			compatible = "qcom,rmtfs-mem";
-			reg = <0 0xf0801000 0 0x200000>;
+			reg = <0 0xf0800000 0 0x202000>;
+			qcom,use-guard-pages;
 			no-map;
 
 			qcom,client-id = <1>;
 			qcom,vmid = <QCOM_SCM_VMID_MSS_MSA>;
 		};
-
-		/* rmtfs upper guard */
-		memory@f0a01000 {
-			reg = <0 0xf0a01000 0 0x1000>;
-			no-map;
-		};
 	};
 
 	gpio-keys {
diff --git a/arch/arm64/boot/dts/qcom/sdm845-oneplus-common.dtsi b/arch/arm64/boot/dts/qcom/sdm845-oneplus-common.dtsi
index dcfffb271fcf3..61d63003fa371 100644
--- a/arch/arm64/boot/dts/qcom/sdm845-oneplus-common.dtsi
+++ b/arch/arm64/boot/dts/qcom/sdm845-oneplus-common.dtsi
@@ -75,32 +75,20 @@ key-vol-up {
 	};
 
 	reserved-memory {
-		/*
-		 * The rmtfs_mem needs to be guarded due to "XPU limitations"
-		 * it is otherwise possible for an allocation adjacent to the
-		 * rmtfs_mem region to trigger an XPU violation, causing a crash.
-		 */
-		rmtfs_lower_guard: rmtfs-lower-guard@f5b00000 {
-			no-map;
-			reg = <0 0xf5b00000 0 0x1000>;
-		};
 		/*
 		 * The rmtfs memory region in downstream is 'dynamically allocated'
 		 * but given the same address every time. Hard code it as this address is
 		 * where the modem firmware expects it to be.
 		 */
-		rmtfs_mem: rmtfs-mem@f5b01000 {
+		rmtfs_mem: rmtfs-region@f5b00000 {
 			compatible = "qcom,rmtfs-mem";
-			reg = <0 0xf5b01000 0 0x200000>;
+			reg = <0 0xf5b00000 0 0x202000>;
+			qcom,use-guard-pages;
 			no-map;
 
 			qcom,client-id = <1>;
 			qcom,vmid = <QCOM_SCM_VMID_MSS_MSA>;
 		};
-		rmtfs_upper_guard: rmtfs-upper-guard@f5d01000 {
-			no-map;
-			reg = <0 0xf5d01000 0 0x1000>;
-		};
 
 		/*
 		 * It seems like reserving the old rmtfs_mem region is also needed to prevent

---
base-commit: 606da5bb165594c052ee11de79bf05bc38bc1aa6
change-id: 20251020-sdm845-use-guard-pages-9c2b2fa0b71e

Best regards,
-- 
David Heidelberg <david@ixit.cz>
Re: [PATCH] arm64: dts: qcom: sdm845: Define guard pages within the rmtfs region
Posted by Bjorn Andersson 3 months, 2 weeks ago
On Mon, 20 Oct 2025 23:12:56 +0200, David Heidelberg wrote:
> Use qcom,use-guard-pages property instead of polluting device-tree with
> lower and upper rmtfs guard nodes.
> 
> No functional change intended.
> 
> cosmetic: set name the node rmtfs-region.
> 
> [...]

Applied, thanks!

[1/1] arm64: dts: qcom: sdm845: Define guard pages within the rmtfs region
      commit: ab9a2c821ad229c4e8dd48b0126e40cc85a8cd51

Best regards,
-- 
Bjorn Andersson <andersson@kernel.org>
Re: [PATCH] arm64: dts: qcom: sdm845: Define guard pages within the rmtfs region
Posted by Konrad Dybcio 3 months, 2 weeks ago
On 10/20/25 11:12 PM, David Heidelberg via B4 Relay wrote:
> From: David Heidelberg <david@ixit.cz>
> 
> Use qcom,use-guard-pages property instead of polluting device-tree with
> lower and upper rmtfs guard nodes.
> 
> No functional change intended.
> 
> cosmetic: set name the node rmtfs-region.
> 
> Signed-off-by: David Heidelberg <david@ixit.cz>
> ---

Reviewed-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>

Konrad
Re: [PATCH] arm64: dts: qcom: sdm845: Define guard pages within the rmtfs region
Posted by Paul Sajna 3 months, 2 weeks ago
October 20, 2025 at 9:12 PM, "David Heidelberg via B4 Relay" <devnull+david.ixit.cz@kernel.org mailto:devnull+david.ixit.cz@kernel.org?to=%22David%20Heidelberg%20via%20B4%20Relay%22%20%3Cdevnull%2Bdavid.ixit.cz%40kernel.org%3E > wrote:


> 
> From: David Heidelberg <david@ixit.cz>
> 
> Use qcom,use-guard-pages property instead of polluting device-tree with
> lower and upper rmtfs guard nodes.
> 
> No functional change intended.
> 
> cosmetic: set name the node rmtfs-region.
> 
> Signed-off-by: David Heidelberg <david@ixit.cz>
> ---
> Tested on OnePlus 6T.
> ---
>  arch/arm64/boot/dts/qcom/sdm845-lg-common.dtsi | 17 +++--------------
>  arch/arm64/boot/dts/qcom/sdm845-oneplus-common.dtsi | 18 +++---------------
>  2 files changed, 6 insertions(+), 29 deletions(-)
> 
> diff --git a/arch/arm64/boot/dts/qcom/sdm845-lg-common.dtsi b/arch/arm64/boot/dts/qcom/sdm845-lg-common.dtsi
> index 99dafc6716e76..83b98bad19dd2 100644
> --- a/arch/arm64/boot/dts/qcom/sdm845-lg-common.dtsi
> +++ b/arch/arm64/boot/dts/qcom/sdm845-lg-common.dtsi
> @@ -99,26 +99,15 @@ memory@9d400000 {
>  no-map;
>  };
>  
> - /* rmtfs lower guard */
> - memory@f0800000 {
> - reg = <0 0xf0800000 0 0x1000>;
> - no-map;
> - };
> -
> - rmtfs_mem: memory@f0801000 {
> + rmtfs_mem: rmtfs-region@f0800000 {
>  compatible = "qcom,rmtfs-mem";
> - reg = <0 0xf0801000 0 0x200000>;
> + reg = <0 0xf0800000 0 0x202000>;
> + qcom,use-guard-pages;
>  no-map;
>  
>  qcom,client-id = <1>;
>  qcom,vmid = <QCOM_SCM_VMID_MSS_MSA>;
>  };
> -
> - /* rmtfs upper guard */
> - memory@f0a01000 {
> - reg = <0 0xf0a01000 0 0x1000>;
> - no-map;
> - };
>  };
>  
>  gpio-keys {
> diff --git a/arch/arm64/boot/dts/qcom/sdm845-oneplus-common.dtsi b/arch/arm64/boot/dts/qcom/sdm845-oneplus-common.dtsi
> index dcfffb271fcf3..61d63003fa371 100644
> --- a/arch/arm64/boot/dts/qcom/sdm845-oneplus-common.dtsi
> +++ b/arch/arm64/boot/dts/qcom/sdm845-oneplus-common.dtsi
> @@ -75,32 +75,20 @@ key-vol-up {
>  };
>  
>  reserved-memory {
> - /*
> - * The rmtfs_mem needs to be guarded due to "XPU limitations"
> - * it is otherwise possible for an allocation adjacent to the
> - * rmtfs_mem region to trigger an XPU violation, causing a crash.
> - */
> - rmtfs_lower_guard: rmtfs-lower-guard@f5b00000 {
> - no-map;
> - reg = <0 0xf5b00000 0 0x1000>;
> - };
>  /*
>  * The rmtfs memory region in downstream is 'dynamically allocated'
>  * but given the same address every time. Hard code it as this address is
>  * where the modem firmware expects it to be.
>  */
> - rmtfs_mem: rmtfs-mem@f5b01000 {
> + rmtfs_mem: rmtfs-region@f5b00000 {
>  compatible = "qcom,rmtfs-mem";
> - reg = <0 0xf5b01000 0 0x200000>;
> + reg = <0 0xf5b00000 0 0x202000>;
> + qcom,use-guard-pages;
>  no-map;
>  
>  qcom,client-id = <1>;
>  qcom,vmid = <QCOM_SCM_VMID_MSS_MSA>;
>  };
> - rmtfs_upper_guard: rmtfs-upper-guard@f5d01000 {
> - no-map;
> - reg = <0 0xf5d01000 0 0x1000>;
> - };
>  
>  /*
>  * It seems like reserving the old rmtfs_mem region is also needed to prevent
> 
> ---
> base-commit: 606da5bb165594c052ee11de79bf05bc38bc1aa6
> change-id: 20251020-sdm845-use-guard-pages-9c2b2fa0b71e
> 
> Best regards,
> -- 
> David Heidelberg <david@ixit.cz>
>

I tried something similar before and didn't have much luck with it. I'll test your patch when I have time.
Re: [PATCH] arm64: dts: qcom: sdm845: Define guard pages within the rmtfs region
Posted by Paul Sajna 3 months, 2 weeks ago
October 21, 2025 at 2:49 AM, "Paul Sajna" <sajattack@postmarketos.org mailto:sajattack@postmarketos.org?to=%22Paul%20Sajna%22%20%3Csajattack%40postmarketos.org%3E > wrote:
> I tried something similar before and didn't have much luck with it. I'll test your patch when I have time.

Your version works as far as I can tell. 
ModemManager always reports sim-missing on judyln, so I can't fully test it, but no crashes and qrtr-lookup shows rmtfs is working.

Tested-By: Paul Sajna <sajattack@postmarketos.org>