【问题描述】:
我的 SD 在 SD1 上,没在 SD0 上,所以我不能从这引导。
怎样才能把 FSBL 交给 SD?
【解决方案】:
SD:
1) 在 FSBL main.c 文件中,您可以通过进行以下修改将 BootModeRegister 在第 376 行的值强制设为 SD_MODE:
/*
* Read bootmode register
*/
// comment out these two lines
//BootModeRegister = Xil_In32(BOOT_MODE_REG);
//BootModeRegister &= BOOT_MODES_MASK;
//add this line
BootModeRegister = SD_MODE;
2) 使用该映像创建 boot.bin,并将其编程到 QSPI 中。
3) 用 SD 卡上的其余引导映像(bitstream、uBoot 和 Linux 等)编程相同的 FSBL。
4) 从 QSPI 引导。 FSBL 将从 QSPI 启动,然后当它到达上述行时会移动至 SD 卡。
然后它将忽略引导模式引脚的设置。
eMMC:
eMMC 未对此进行测试,但也可通过以下修改传递给 eMMC:
1) 编辑系统 .mss 并选择修改 BSP 设置。
2) 在电路板支持数据包设置窗口选择 xilffs 并将“enable_mmc”设置为真。
3) 重新生成 BSP 源。
4) 编辑 FSBL 的 main.c,选择这一行的 MMC_MODE:
BootModeRegister = EMMC_MODE;