From 7faa3baa89fb1ee0f183e4cbe2c996c1e91c9d7d Mon Sep 17 00:00:00 2001 From: Stefan Date: Mon, 24 Aug 2026 20:03:17 +0200 Subject: [PATCH] arm64: dts: qcom: talkman: move ramoops below CMA The octagon ramoops window at 0xb0000000 sits in HLOS DRAM without no-map. On Talkman, WP BootMgr reuses that region across a sysrq reset, so /sys/fs/pstore is empty on the next Linux boot. Delete that node on Talkman and reserve 1 MiB at 0xd9d00000, immediately below the high-bank reserved range at 0xd9e00000 on the 3 GiB map. Use no-map so Linux does not allocate the pages, a console buffer so hangs still leave dmesg, and max-reason EMERG so sysrq-b dumps show up as dmesg-ramoops-0. Cityman keeps the octagon default. --- .../msm8992-msft-lumia-octagon-talkman.dts | 28 +++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/arch/arm64/boot/dts/qcom/msm8992-msft-lumia-octagon-talkman.dts b/arch/arm64/boot/dts/qcom/msm8992-msft-lumia-octagon-talkman.dts index 8933b53694e8e3..c5b33219aa8262 100644 --- a/arch/arm64/boot/dts/qcom/msm8992-msft-lumia-octagon-talkman.dts +++ b/arch/arm64/boot/dts/qcom/msm8992-msft-lumia-octagon-talkman.dts @@ -13,4 +13,32 @@ model = "Microsoft Lumia 950"; compatible = "microsoft,talkman", "qcom,msm8992"; chassis-type = "handset"; + + reserved-memory { + /* + * Octagon's ramoops@b0000000 sits in HLOS DRAM without + * no-map. On Talkman, WP BootMgr reuses that window across + * a PS_HOLD reset, so the next Linux boot sees an empty + * /sys/fs/pstore. 0xd9d00000 is 1 MiB immediately below the + * high-bank reserved range that starts at 0xd9e00000 on the + * 3 GiB map. no-map keeps Linux from allocating the pages. + * console-size records printk without an oops. max-reason + * EMERG includes sysrq-b / restart dumps. + * + * Cityman keeps the octagon default. + */ + /delete-node/ ramoops@b0000000; + + ramoops@d9d00000 { + compatible = "ramoops"; + reg = <0x0 0xd9d00000 0x0 0x100000>; + no-map; + record-size = <0x20000>; + console-size = <0x80000>; + pmsg-size = <0x20000>; + ecc-size = <0>; + mem-type = <1>; + max-reason = <3>; + }; + }; };