I am bringing up a custom board that is mostly modeled after the i.MX28EVK. The pin allocation is different, some memory and interface options have been dropped, and we're only using a 5V power supply (no battery).
I'm trying to put U-boot 2015-10 (snapshot 9ac4fc8 from git.denx.de) on the board, but the SPL hangs every time after setting the CPU and HBUS clock frequencies. Using OpenOCD I have tracked the problem down to function mxs_mem_setup_cpu_and_hbus(), specifically the last writel() call that clears the CLKCTRL_CLKSEQ_BYPASS_CPU bit. When I comment out that writel() the SPL finishes normally allowing U-boot to start up. Of course the CPU then runs at 24 MHz instead of 454 MHz
On the other hand clearing the EMI bypass bit seems to work without a problem, and the DRAM performs nice and stable in the U-boot memory test. Our board has a Micron MT47H64M16 DDR2 chip that is similar enough to the EDE1116 on the EVK to use the same EMI settings.
My compiler is arm-poky-linux-gnueabi-gcc 5.2.0 from a Yocto build.
Any ideas what to check next?