Short version: barebox always reparents the ldb_di[01] clocks to pll5_video_div. Due to a hardware erratum, this can trigger a glitch that causes LDB lock up. Thus: 1) remove the automatic reparenting, like the kernel now does and mark the affected clocks read only, so assigned-clock-parents can't affect them 2) parse assigned-clock-parents in the clk-imx6 code as well, but there use a convoluted non-glitchy work around to apply them Long version available alongside v1 here: https://www.spinics.net/lists/u-boot-v2/msg37658.html and in the commit messages of the patches. v2 is available here: https://www.spinics.net/lists/u-boot-v2/msg37970.html Changes since v2: - reordered commits to avoid intermittent breakage, final diff unaffected - prepended a commit fixing premature use of cpu_is_mx6 - fixed brace placement of cpu_(mx6_)?has_err009219 - changed commits to use cpu_mx6_is_mx6*, all suggested by Andrey - updated commit messages, collected Andrey's Tested-By and Philipp's Reviewed-By Changes since v1: - reordered/squashed commits after discussion with Sascha and Phillip - removed superfluous comment - add MUX_READ_ONLY at the correct place in the MUX_READ_ONLY arguments Except for the last two, the total diff, is exactly the same as v1's. Ahmad Fatoum (3): clk: imx6: fix use of cpu_is_mx6* before they are initialized clk: imx6: remove quirky clk_set_parent(LDB_diN_sel, pll5_video_div) clk: imx6: define an enum for ldb mux inputs Fabio Estevam (1): clk: imx6: Fix procedure to switch the parent of LDB_DI_CLK Philipp Zabel (2): clk: imx6: Mask mmdc_ch1 handshake for periph2_sel and mmdc_ch1_axi_podf clk: imx6: Make the LDB_DI0 and LDB_DI1 clocks read-only drivers/clk/imx/clk-imx6.c | 329 ++++++++++++++++++++++++++++++++++--- drivers/clk/imx/clk.h | 8 + 2 files changed, 317 insertions(+), 20 deletions(-) -- 2.20.1 _______________________________________________ barebox mailing list barebox@xxxxxxxxxxxxxxxxxxx http://lists.infradead.org/mailman/listinfo/barebox