Due to the boot rom does not deal with offsets (in bytes) bigger than 32 bits (2^32), A10 SoC would fail to boot using the image generated by the command make_sdimage.py \
-f \
-P uboot_w_dtb-mkpimage.bin,num=3,format=raw,size=10M,type=A2 \
-P rootfs/*,num=2,format=ext3,size=7G \
-P zImage,ghrd_10as066n2.core.rbf,ghrd_10as066n2.periph.rbf,socfpga_arria10_socdk_sdmmc.dtb,num=1,format=vfat,size=500M \
-s 8G \
-n sdimage.img
Hand-crafted an SD card image manually with the partition laid out as follows:
demo@demo-pc:~$ sudo fdisk -l /dev/sdb
Device Boot Start End Blocks Id System
/dev/sdb1 22528 1046527 512000 b W95 FAT32
/dev/sdb2 1046528 15726591 7340032 83 Linux
/dev/sdb3 2048 22527 10240 a2 Unknown
The boot partition is at the low offset, and the Linux root file system partition is at the highest offset.
Then, manually write files into the corresponding SD card partition on a Linux host PC.