My custom board was running u-boot v2014.04 and Linux kernel 3.14.28. It is just fine. Lately, I upgraded to u-boot v2015.04 and linux kernel 4.1.15 that officially released from NXP. Everything is fine as expected. When using newer u-boot and kernel, I uses Linaro gcc-linaro-4.9-2015.05 cross compiler.
Then I started to working on Yocto build for newer kernel and u-boot (It was fine for u-boot v2014.04 and linux 3.14.28 yocto build). I found that the u-boot can only boot up from SD card. When boot up from spi nor flash, it will stop at
U-Boot 2015.04+fslc+g85a6a75 (Apr 12 2016 - 00:36:35)
CPU: Freescale i.MX6Q rev1.5 at 792 MHz
CPU: Temperature 32 C
Reset cause: POR
DRAM: 1 GiB
MMC: FSL_SDHC: 0, FSL_SDHC: 1, FSL_SDHC: 2
*** Warning - bad CRC, using default environment
No panel detected: default to HDMI
Display: HDMI (640x480)
Then I went to my yocto u-boot source directory at tmp/work/imx6q1gsmarc-poky-linux-gnueabi/u-boot-smarcfimx6/2015.04-smarcfimx6-r0+gitrAUTOINC+85a6a75394/git
And manually point to my cross compiler to Linaro gcc-linaro-4.9-2015.05 and manually build u-boot inside this directory. I can boot up from SPI NOR flash. I believe that the NXP new yocto release has this bug. When using arm-poky-linux-gnueabi- cross compiler to compile u-boot v2015.04, it cannot boot up from SPI flash.
May I know how to fix it from Yocto build?