Re: [RFC] clk: meson: t7: Intermittent boot instability and memory corruption on VIM4
From: Lucas Tanure
Date: Wed Aug 26 2026 - 06:21:43 EST
On 24/08/2026 16:29, Brian Masney wrote:
Hi Lucas,Thanks for the input, it did not solve the issue. I am going to produce the list with a diff in disabled clocks with and without our change, but
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.
it did not solve the issue.
Brian