Re: [RFC] clk: meson: t7: Intermittent boot instability and memory corruption on VIM4
From: Brian Masney
Date: Mon Aug 24 2026 - 11:39:55 EST
Hi Lucas,
On Sun, Aug 23, 2026 at 04:40:42PM +0100, Lucas Tanure wrote:
> While testing mainline Linux on the Khadas VIM4 (Amlogic A311D2 / T7), I am
> hitting intermittent system instability, storage loss, and memory corruption
> during boot, unless I append clk_ignore_unused to the kernel command line.
>
> Because the failure is intermittent, I am running 100-reboot test campaigns
> to bisect the remaining clocks and isolate which clocks are critical and
> cannot be safely disabled.
>
> As testing takes significant time over serial console, I wanted to check if
> Amlogic or the maintainers could shed light on this:
>
> Are there specific T7 clocks or hardware domains that must remain
> critical/protected even without an explicit in-kernel consumer?
>
> Current clocks being disabled that don't kill the board on a test run:
>
> [ 0.380313] clk: Disabling unused clocks
> [ 0.380413] clk: Disabled unused clock: rtc_dualdiv
> [ 0.380718] clk: Disabled unused clock: rtc_duandiv_in
> [ 0.381377] clk: Unprepared unused clock: a73_div16
> [ 0.381972] clk: Unprepared unused clock: cpu_div16
> [ 0.382605] clk: Unprepared unused clock: f50m
> [ 0.383174] clk: Unprepared unused clock: fixed_pll_dco
> [ 0.383786] clk: Unprepared unused clock: hdmi_pll_osc
> [ 0.384416] clk: Unprepared unused clock: sys1_pll_osc
> [ 0.385056] clk: Unprepared unused clock: earc_osc
> [ 0.385652] clk: Unprepared unused clock: pcie_refclk_osc
> [ 0.386323] clk: Unprepared unused clock: eth_pll_osc
> [ 0.386961] clk: Unprepared unused clock: pcie_osc
> [ 0.387548] clk: Unprepared unused clock: mclk_pll_osc
> [ 0.388187] clk: Unprepared unused clock: usb_pll1_osc
> [ 0.388826] clk: Unprepared unused clock: usb_pll0_osc
> [ 0.389465] clk: Unprepared unused clock: tcon_pll_osc
> [ 0.390105] clk: Unprepared unused clock: top_pll_osc
> [ 0.390738] clk: Unprepared unused clock: aud_pll_osc
> [ 0.391361] clk: Unprepared unused clock: ddr_pll_osc
>
> I am not forcing any clock to be disabled; I am forcing all clocks to stay
> on and letting them be disabled if unused one by one.
>
> Any guidance or hints on required platform clocks would be greatly
> appreciated.
I have an outstanding series that disables unused clocks via the
sync_state callback:
https://lore.kernel.org/linux-clk/20260626-clk-sync-state-v1-0-4156d8196dc8@xxxxxxxxxx/
Be sure to not have clk_ignore_unused in your kernel command line.
I suggest comparing the list of which clocks are disabled with that
series against your list of clocks above.
Brian