学习主要参考https://rocketboards.org/foswiki/Documentation/EmbeddedLinuxBeginnerSGuide
生成predloader
- 如下图,为生成preloader image的流程。
在设计完成硬件编译之后,也就是生成sof文件之后,就可以进行该步骤了。
- 打开**
Embedded_Command_Shell
**终端,进入到工程目录下。输入bsp-editor &
命令打开BSP Editor
- 打开
File→New HPS BSP...
为主板预加载程序创建新的BSP项目。
点击 Preloader settings directory
,找到 atlas_linux_ghrd/hps_isw_handoff/soc_system_hps_0
该窗口现在应该已经自动填充了它的所有设置。单击ok接受默认设置。
- 勾选FAT_SUPPORT。该项必须要勾选的,不然后续制作的SDcard不能正常启动u-boot
因为会把生成的预加载程序放在SD卡的分区1中,该分区为FAT格式文件系统(Windows)。加载uboot名称为u-boot.img
- 之后点击Generate生成,点击exit退出。然后在工程目录下会生成
software/spl_bsp
在终端输入以下指令,进入刚才生成的文件夹
cd software/spl_bsp
执行make
make
最终生成preloader-mkpimage.bin
文件,该文件就是预加载二进制文件。
$ ls
generated Makefile preloader.ds preloader-mkpimage.bin settings.bsp uboot.ds u-boot.img uboot-socfpga
2.生成设备树文件
首先确认工程文件当中是否有soc_system.sopcinfo
和hps_common_board_info.xml
以及soc_system_board_info.xml
文件。然后在工程目录下输入以下指令,来生成dts
文件。
sopc2dts --input soc_system.sopcinfo --output soc_system.dts --type dts --board soc_system_board_info.xml --board hps_common_board_info.xml --bridge-removal all --clocks
打开该文件可以看到自定义的IP信息。如果没有,回头仔细看自定义IP的_hw.tcl
文件设置。
然后执行以下指令生成dtb
设备树文件.。
dtc -I dts -O dtb -o soc_system.dtb soc_system.dts