HPS SoC引导指南 - Cyclone V SoC开发工具

ID 683265
日期 1/27/2016
Public

1.5.4. 从SD/MMC引导 – FAT分区

本实例演示当裸机映像存储在SD卡的FAT分区时,如何从SD卡引导。
注: 预加载器仍然存储在自定义分区。
为避免出现"Device Open Failed!"错误信息,请您务必在以下用户模式中操作:
  • Windows — "Administrator mode user"
  • Linux — "sudo mode"

运行该情形所需要的步骤是:

  1. 构建裸机应用样本,或只是直接使用已提供的hello-mkimage.bin文件。
  2. 以SoC EDS提供的GHRD 为基础生成一个预加载器。请务必选择以下选项:
    • 查看选项 spl.boot.BOOT_FROM_SDMMC
    • 取消查看其他引导选项(spl.boot.BOOT_FROM_RAM, spl.boot.BOOT_FROM_QSPI, spl.boot.BOOT_FROM_NAND)。
    • 查看选项spl.boot.FAT_SUPPORT。从而告知预加载器从FAT分区加载裸机应用。
    • 编辑域spl.boot.FAT_LOAD_PAYLOAD_NAME 以包含裸机映像的名称: hello-mkimage.bin
    • 查看选项 spl.boot.SDRAM_SCRUBBINGspl.boot.SDRAM_SCRUB_REMAIN_REGION。SDRAM将因此归零,以防止执行裸机程序时出现任何ECC错误。
    • 取消查看选项spl.boot.WATCHDOG_ENABLE。因为将不在裸机应用中喂狗(kicking the watchdog)。
  3. 编译预加载器。从而创建文件 preloader-mkpimage.bin文件。
  4. 使用fdisk,或SoC EDS中的SD卡映像实例,在SD卡中手动创建一个id=A2自定义分区:
    • 使用Embedded Command Shell中的 ‘tar -xzf<filename>’ 命令解压缩<SoCEDS installation folder>:\embedded\embeddedsw\socfpga\prebuilt_images\sd_card_linux_boot_image.tar.gz中的SD卡映像。同时将创建 文件sd_card_linux_boot_image.img
    • 使用空闲的Win32DiskImager工具把文件sd_card_linux_boot_image.img写入SD卡。
  5. 利用SoC EDS中的SD卡引导工具把预加载器映像和裸机应用映像都写入SD卡自定义分区中:
    • 启动Embedded Command Shell。
    • 运行命令“alt-boot-disk-util -a write -p preloader-mkpimage.bin -d <sd_card_drive_letter”。
  6. 为了从Windows Explorer中拖曳和丢弃实例,写裸机应用映像到SD卡的FAT分区。
  7. 要设置电路板从SD卡引导,需为BOOTSEL 跳线作如下配置:
    • BOOTSEL0 (J28): 左
    • BOOTSEL1 (J29): 右
    • BOOTSEL2 (J30): 左
  8. 使用USB串行连接把电路板连接到PC,并使用115,200-8-N-1在PC上开启一个串行终端设备。
  9. 把SD卡插入电路板插槽,并上电电路板或按下冷复位钮(S7)复位HPS。
    电路板引导,出现预加载器信息,裸机应用将显示“Hello World”。
    图 10. FAT 分区