From: Lothar Waßmann Date: Wed, 10 Jan 2018 14:19:40 +0000 (+0100) Subject: karo: add workaround for Linux hang on i.MX6QP when tzasc1_ipg_clock is disabled X-Git-Tag: KARO-TX6-2019-07-31~19 X-Git-Url: https://git.kernelconcepts.de/?p=karo-tx-uboot.git;a=commitdiff_plain;h=ae60a91421744ef95d81cb09ea8a4fba851789c5 karo: add workaround for Linux hang on i.MX6QP when tzasc1_ipg_clock is disabled The IPU on i.MX6QP apparently requires the tzasc1_ipg_clock (CCGR2[11]) to be enabled which is not documented anywhere. Enable this clock in the DCD to prevent Linux from hanging when using the IPU. --- diff --git a/board/karo/tx6/lowlevel_init.S b/board/karo/tx6/lowlevel_init.S index 049d99ba64..c70dbbe7c5 100644 --- a/board/karo/tx6/lowlevel_init.S +++ b/board/karo/tx6/lowlevel_init.S @@ -794,13 +794,17 @@ dcd_hdr: MXC_DCD_ITEM(CCM_BASE_ADDR + CCM_CCGR4, CCGR(14)) MXC_DCD_ITEM(CCM_BASE_ADDR + CCM_CCGR2, CCGR(7)) MXC_DCD_CMD_WRT(MXC_DCD_CMD_SZ_WORD, MXC_DCD_CMD_FLAG_WRITE) -#endif +#endif /* CONFIG_TX6_EMMC */ MXC_DCD_ITEM(CCM_BASE_ADDR + CCM_CHSCCDR, 0x00012093) /* default: 0x0002a150 (0x00029148) */ MXC_DCD_ITEM(CCM_BASE_ADDR + CCM_CSCDR2, 0x00012090) /* default: 0x0002a150 (0x00029148) */ MXC_DCD_ITEM(ANATOP_BASE_ADDR + ANATOP_PLL_ENET, 0x00002001) /* ENET PLL */ /* enable all relevant clocks... */ MXC_DCD_CMD_WRT(MXC_DCD_CMD_SZ_WORD, MXC_DCD_CMD_FLAG_SET) +#ifdef CONFIG_TX6QP + /* workaround for hangup on i.MX6QP when IPU is being used */ + MXC_DCD_ITEM(CCM_BASE_ADDR + CCM_CCGR2, CCGR(11) | CCGR(12)) +#endif MXC_DCD_ITEM(CCM_BASE_ADDR + CCM_CCGR0, CCGR(2)) /* 0xf0c03f3f default: 0xf0c03f0f APBH-DMA */ MXC_DCD_ITEM(CCM_BASE_ADDR + CCM_CCGR1, CCGR(5)) /* 0xf0fc0c00 default: 0xf0fc0000 ENET */ MXC_DCD_ITEM(CCM_BASE_ADDR + CCM_CCGR2, CCGR(3)) /* 0xfc3fc0cc default: 0xfc3fc00c I2C1 */