On 19-07-27 09:33:10, Daniel Baluta wrote: > On Sat, Jul 27, 2019 at 9:19 AM Anson Huang <anson.huang@xxxxxxx> wrote: > > > > Hi, Daniel > > > > > Subject: Re: [PATCH 5/6] clk: imx8mq: Remove CLK_IS_CRITICAL flag for > > > IMX8MQ_CLK_TMU_ROOT > > > > > > Hi all, > > > > > > latest linux-next hangs at boot. > > > > > > commit fde50b96be821ac9673a7e00847cc4605bd88f34 (HEAD -> master, tag: > > > next-20190726, origin/master, origin/HEAD) > > > Author: Stephen Rothwell <sfr@xxxxxxxxxxxxxxxx> > > > Date: Fri Jul 26 15:18:02 2019 +1000 > > > > > > Add linux-next specific files for 20190726 > > > > > > Signed-off-by: Stephen Rothwell <sfr@xxxxxxxxxxxxxxxx> > > > > > > > > > I know this is crazy but reverting commit: > > > > > > commit 431bdd1df48ee2896ea9980d9153e3aeaf0c81ef (refs/bisect/bad) > > > Author: Anson Huang <Anson.Huang@xxxxxxx> > > > Date: Fri Jul 5 12:56:11 2019 +0800 > > > > > > clk: imx8mq: Remove CLK_IS_CRITICAL flag for IMX8MQ_CLK_TMU_ROOT > > > > > > IMX8MQ_CLK_TMU_ROOT is ONLY used for thermal module, the driver > > > should manage this clock, so no need to have CLK_IS_CRITICAL flag > > > set. > > > > > > > > > > > > makes the boot work again. > > > > > > Any idea? > > > > I just found if disabling SDMA1, then kernel can boot up, it does NOT make sense > > TMU clock is related to SDMA1, I will check with design and get back to you soon. > > > > Hi Anson, > > Applying Abel's patch: > > commit 8816c47db6a82f55bb4d64f62fd9dd3af680f0e4 (HEAD -> master) > Author: Abel Vesa <abel.vesa@xxxxxxx> > Date: Tue Jun 25 12:01:56 2019 +0300 > > clk: imx8mq: Mark AHB clock as critical > > Keep the AHB clock always on since there is no driver to control it and > all the other clocks that use it as parent rely on it being always enabled. > > > > The kernel boots up again. > > It make some sense. I don't understand though why having > IMX8MQ_CLK_TMU_ROOT as critical also "unhangs" the kernel. > OK, so this is how it works. By removing the critical flag from TMU, the AHB doesn't stay always on. With my patch the AHB is marked as critical and therefore stays on. The sdma1_clk has as parent the ipg_root which in turn has as parent the ahb clock. And I think what happens is some read from the sdma registers hangs because, for whatever reason, enabling the sdma1_clk doesn't propagate to enable the ahb clock. I might be wrong though. > thanks, > Daniel.