It looks like you probably need to tweak the bootcmd u-boot environment variable. (press any key to serial port before u-boot starts loading the kernel image). Here is a typical setting of an environment variable used to load an image from SD card:
setenv bootcmd_mmc 'run bootargs_base bootargs_mmc;mmc read 0 ${loadaddr} 0x800 0x1800;bootm'
Here, the 0x1800 tells u-uboot the {maximum} size of the image, in 512-byte sectors. (i.e., 0x1800 = 6144 decimal)
This would imply your image file is bigger than what was used in the example I copied that line from (ref i.MX53 START Linux User’s Guide, Rev 11.01.00)
I could probably just make that number bigger, but I don't know how much room you left at the beginning of the SD card when you created the 1st partition for the root file system...
So, you might consider interrupting the u-boot on the serial interface, dumping the environment variable setings and post the output here. Mine looks something like this:
Hit any key to stop autoboot: 0
MX53-LOCO U-Boot > printenv
bootdelay=3
baudrate=115200
loadaddr=0x70800000
netdev=eth0
ethprime=FEC0
uboot=u-boot.bin
:
:
kernel=uImage
bootargs_nfs=setenv bootargs ${bootargs} root=/dev/nfs ip=dhcp nfsroot=${serverip}:${nfsroo t},v3,tcp
bootcmd_net=run bootargs_base bootargs_nfs; tftpboot ${loadaddr} ${kernel}; bootm