windows soceds 编译arria10 uboot出错,必须搭建linux 64bit环境编译,log 如下
arria10 开始需要两种device tree了,一种供uboot启动,另外一种供linux kerel启动使用。需要说明的是uboot只支持在linux host machine 上编译,但是device tree for uboot 可以在windows或者linux 机器上编译。
整个产生uboot+dtb(for uboot)的流程如图。
硬件工程见GHRD,正常编译即可,可在windows下操作完毕再拷贝到linux机器下。
uboot编译方法:
1、linux 64bit的host上安装SoCEDS 16.1 版本,大概消耗5G存储空间。
2、进入安装目录 ~/intelFPGA/16.1/embedded 文件夹,在terminal中打开目录,执行sh embedded_command_shell.sh
3、然后进入ghrd 工程目录,bsp-editor 命令打开bsp-editor 图形界面。新建一个HPS BSP,主要是把Preloader setting directory 设定为ghrd 的hps_isw_handoff 文件夹,如图
其他的可以使用默认设定,注意到driver 选项中有各种driver 可以选,具体作用需待研究。
4、使用make uboot 就会编译uboot和dtb 了,编译过程顺利。从编译log 可以看出来是有把两个文件连接到一起的过程。
至此编译uboot完成,可以发现没有 CV/AV SoCFPGA需要的preloader文件。
linux下SD Card的更新uboot的命令为:
sudo dd if=uboot_w_dtb-mkpimage.bin of=/dev/sdx3 bs=64k seek=0