仅对英特尔可见 — GUID: lro1418628641514
Ixiasoft
1.5.3. 从SD/MMC引导 –自定义分区
本实例演示了,把裸机映像与预加载器存储在同一个SD卡自定义分区时,如何从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.SDMMC_NEXT_BOOT_IMAGE = 0x40000. 存储裸机应用映像需要存储在这里。
- 查看选项 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 -b hello-mkimage.bin -d <sd_card_drive_letter>”
- 要设置电路板从SD卡引导,需为BOOTSEL跳线作如下配置:
- BOOTSEL0 (J28): 左
- BOOTSEL1 (J29): 右
- BOOTSEL2 (J30): 左
- 使用USB串行把电路板连接到PC,并使用115,200-8-N-1在PC上开启一个串行终端设备。
- 将SD卡插入电路板插槽并上电电路板或者按下冷复位钮(S7)复位HPS。
电路板引导,出现预加载器信息,裸机应用将显示“Hello World”。图 9. 自定义分区