参考:https://blog.csdn.net/zjy900507/article/details/80282504
socfpga的片内ROM固化了对nand flash,sd/mmc flash与spi flash的最基本支持。对于sd/mmc flash的支持是受限的,它不支持sd卡中有文件系统,支持两种方式MBR方式与RAW方式。由于固化的驱动不支持文件系统,因此在MBR模式下需要将存储preloader与bootloader的分区类型设置为0xA2,即无文件系统,芯片reset后选择SD/MMC启动方式(根据外部引脚电平设置选择),片内ROM经过简单初始化SD/MMC后,分别在MBR方式与RAW方式下去读取flash。若发现SD卡是MBR格式,则搜索类型为0xA2类型的分区,搜索到后读取该分区首地址开始的前64kB内容,即preloader,将其加载到片内RAM中,地址为0xFFFF0000,跳转到preloader的首地址,转移控制权,即PC指针指向了preloader。
不过从intel的官网教程里面来看,uboot 也不是一定要放在raw 分区,但preloader一定要放在raw分区: https://rocketboards.org/foswiki/Documentation/EmbeddedLinuxBeginnerSGuide