[PATCH v3] arm64: dts: qcom: sm6125: enlarge reserved_mem1
From: Roman Linev
Date: Mon Oct 26 2026 - 13:46:08 EST
reserved_mem1@46200000 is sized 0x2d00000 (45 MiB) in the SoC dtsi, so it
ends at 0x48f00000, while camera_mem begins at 0x4ab00000. The reference
firmware memory map for sm6125 reserves 0x4900000 (73 MiB) at this base,
ending exactly where camera_mem starts, so the 28 MiB in between belongs to
firmware and not to the kernel. The dtsi nevertheless leaves that span as
normal System RAM and hands it to the page allocator.
Every sm6125 board inherits this reservation and none of them overrides it
or places another region in the gap, so size it for the firmware map in the
common dtsi.
On laurel-sprout the mismatch is observable: page-cache pressure eventually
reaches the span, and a store into it never completes, which hard-locks the
machine. Before this change the board wedged at roughly one lockup per
59 MiB of buffered reads; after enlarging the region the same workload ran
691 GiB of buffered reads with no lockups. Booting with CONFIG_MEMTEST=y
and memtest=1 sweeps 17 free ranges with no bad ranges reported and skips
0x46200000..0x4ab00000 entirely, confirming the carveout is out of the page
allocator's pool.
The downstream laurel_sprout device tree describes the same base as
removed_region@46200000 with a size of 0x4900000, so the reserved bytes are
not a new claim about this hardware family.
Signed-off-by: Roman Linev <admin@xxxxxxxx>
---
Changes in v3 (from Konrad's review of v2):
- Move the reservation into the common SoC dtsi, as the size follows the
reference firmware map and applies to every sm6125 board. The v2
board-level &reserved_mem1 override is dropped; v3 touches no board file.
- State that no sm6125 board overrides this region or places another region
in 0x48f00000..0x4ab00000, and that all four affected boards build with
the enlarged span ending exactly at camera_mem.
v2: https://lore.kernel.org/r/20260824155535.335494-1-admin@xxxxxxxx
v1: https://lore.kernel.org/r/20260821032541.1856299-1-admin@xxxxxxxx
---
arch/arm64/boot/dts/qcom/sm6125.dtsi | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/arch/arm64/boot/dts/qcom/sm6125.dtsi b/arch/arm64/boot/dts/qcom/sm6125.dtsi
index 86de156..fb126db 100644
--- a/arch/arm64/boot/dts/qcom/sm6125.dtsi
+++ b/arch/arm64/boot/dts/qcom/sm6125.dtsi
@@ -282,7 +282,7 @@ smem_mem: memory@46000000 {
};
reserved_mem1: memory@46200000 {
- reg = <0x0 0x46200000 0x0 0x2d00000>;
+ reg = <0x0 0x46200000 0x0 0x4900000>;
no-map;
};