From b26835a0110da53ce55b574218431b3892de01d6 Mon Sep 17 00:00:00 2001 From: Mikhail Nevskiy Date: Wed, 28 Oct 2026 19:59:56 +0300 Subject: [PATCH] arm: dts: mediatek: mt6589-lenovo-blade: move ramoops into 1 MiB of DRAM The SoC dtsi puts ramoops in 7 KiB of on-chip SRAM with 1 KiB records. That cannot hold a single oops: every panic ended with "pstore: backend (ramoops) writing error (-28)", and the record kept only the first lines of the trace. Reserve 1 MiB of DRAM right below LK's framebuffer instead (0xbf500000, next to framebuffer_reserved): 32 KiB dump records, 256 KiB of console, and ECC to tell a damaged record. LK and the kernel leave this memory alone across a warm reset. Tested on the Lenovo B8000-H (MT8389): after a forced panic and the watchdog reboot, /sys/fs/pstore held the whole oops. Not checked on the B8000-F or B6000, whose LK may use this range differently. Assisted-by: Claude:claude-opus-5-5 Signed-off-by: Mikhail Nevskiy --- .../boot/dts/mediatek/mt6589-lenovo-blade.dtsi | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/arch/arm/boot/dts/mediatek/mt6589-lenovo-blade.dtsi b/arch/arm/boot/dts/mediatek/mt6589-lenovo-blade.dtsi index 17ecda8b91541a..bf1ccec6dd21b9 100644 --- a/arch/arm/boot/dts/mediatek/mt6589-lenovo-blade.dtsi +++ b/arch/arm/boot/dts/mediatek/mt6589-lenovo-blade.dtsi @@ -29,6 +29,22 @@ ranges; + /* + * The SoC's ramoops in 7 KiB of SRAM cannot hold one oops. Use + * 1 MiB of DRAM right below LK's framebuffer instead, which LK + * and the kernel leave alone across a warm reset. + */ + /delete-node/ ramoops@10dc00; + + ramoops@bf500000 { + compatible = "ramoops"; + reg = <0xbf500000 0x100000>; + record-size = <0x8000>; + console-size = <0x40000>; + ecc-size = <16>; + no-map; + }; + framebuffer_reserved: memory@bf600000{ reg = <0xbf600000 0xa00000>; no-map;