I found this comment in u-boot 2014-04 arch/arm/cpu/armv7/mx6/soc.c
struct mxc_ccm_reg *mxc_ccm = (struct mxc_ccm_reg *)CCM_BASE_ADDR;
arm_orig_podf = readl(&mxc_ccm->cacrr);
* Downgrade ARM speed to 400Mhz as half of boot 800Mhz before ldo
* bypassed, also downgrade internal vddarm ldo to 0.975V.
* VDDARM_IN 0.975V + 125mV = 1.1V < Max(1.3V)
* otherwise at 800Mhz(i.mx6dl):
* VDDARM_IN 1.175V + 125mV = 1.3V = Max(1.3V)
* We need provide enough gap in this case.
Why do we need to downgrade to 400MHz?