[RFC] clk: meson: t7: Intermittent boot instability and memory corruption on VIM4

Lucas Tanure tanure at linux.com
Wed Aug 26 02:57:33 PDT 2026


On 26/08/2026 10:02, Neil Armstrong wrote:
> On 8/23/26 17:40, Lucas Tanure wrote:
>> Hi,
>>
>> 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
> 
> Those could be used by low power stuff aswell, not only RTC
> 
>> [    0.381377] clk: Unprepared unused clock: a73_div16
>> [    0.381972] clk: Unprepared unused clock: cpu_div16
> 
> Those should probably be left enabled if they're used by the DVFS code
> 
>> [    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.
> 
> It's hard to say, this is dependent on each family, Amlogic should be 
> able to help here.
Yes, Amlogic, please help.>
> You list some clocks, but I don't understand you say that it's stable 
> only if you have clk_ignore_unused, so how did you get this clock list ?
I got this list when I add logs to the clock framework and run without 
clk_ignore_unused.
> 
> Neil
> 
>>
>> Thanks,
>> Lucas Tanure
> 




More information about the linux-amlogic mailing list