On Mon, Jul 29, 2019 at 4:29 AM Anson Huang <anson.huang@xxxxxxx> wrote: > > Hi, Abel/Daniel > > > 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. > > > > I can explain why Abel's patch can fix this issue, the AHB clock is a MUST > always ON for system bus, while it does NOT have CLK_IS_CRITICAL flag set for now, > when SDMA1 is probed, it will enable its clock, and the clk path is sdma1_clk->ipg_root->ahb, > after SDMA1 probed done, it will disable its clock since no one use it, and it will trigger > the ahb clock to be OFF, as its usecount is added by 1 when probe and decreased by 1 after > SDMA1 probe done, so usecount=0 will trigger AHB clock to be OFF. > > So I think the best solution should be applying Abel's patch as you mentioned upper, the TMU > clock patch is NOT the root cause, it just triggers this issue accidently☹ > > But I saw Abel's AHB patch is still under discussion, so I think we need to speed it up and make > kernel boot up work for development. AHB/IPG are always critical for i.MX SoCs. Thanks Anson, Your explanation makes a lot of sense. We will take care today of Abel's patch. What do you think about Fabio's patch? I also think this is a valid patch: http://code.bulix.org/pd88jp-812381