仅对英特尔可见 — GUID: lro1418629747025
Ixiasoft
1.5.4. 从SD/MMC引导 – FAT分区
本实例演示当裸机映像存储在SD卡的FAT分区时,如何从SD卡引导。
注: 预加载器仍然存储在自定义分区。
为避免出现"Device Open Failed!"错误信息,请您务必在以下用户模式中操作:
- Windows — "Administrator mode user"
- Linux — "sudo mode"
运行该情形所需要的步骤是:
- 构建裸机应用样本,或只是直接使用已提供的hello-mkimage.bin文件。
- 以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_SCRUBBING 和 spl.boot.SDRAM_SCRUB_REMAIN_REGION。SDRAM将因此归零,以防止执行裸机程序时出现任何ECC错误。
- 取消查看选项spl.boot.WATCHDOG_ENABLE。因为将不在裸机应用中喂狗(kicking the watchdog)。
- 编译预加载器。从而创建文件 preloader-mkpimage.bin文件。
- 使用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卡。
- 利用SoC EDS中的SD卡引导工具把预加载器映像和裸机应用映像都写入SD卡自定义分区中:
- 启动Embedded Command Shell。
- 运行命令“alt-boot-disk-util -a write -p preloader-mkpimage.bin -d <sd_card_drive_letter”。
- 为了从Windows Explorer中拖曳和丢弃实例,写裸机应用映像到SD卡的FAT分区。
- 要设置电路板从SD卡引导,需为BOOTSEL 跳线作如下配置:
- BOOTSEL0 (J28): 左
- BOOTSEL1 (J29): 右
- BOOTSEL2 (J30): 左
- 使用USB串行连接把电路板连接到PC,并使用115,200-8-N-1在PC上开启一个串行终端设备。
- 把SD卡插入电路板插槽,并上电电路板或按下冷复位钮(S7)复位HPS。
电路板引导,出现预加载器信息,裸机应用将显示“Hello World”。图 10. FAT 分区