一般情况下,用户可以拿厂家做好的image在SOC FPGA开发板上直接跑linux系统。但如果是用户想要用FPGA 逻辑自定义一个外设,比如 增加一个 UART(RS-232 Serial Port) IP到工程,这时image当中的哪些文件会需要改动呢?
(image里面有这些文件:dtb、rbf、zImage、uboot.scr 、preloader和uboot。preloader和uboot在A2分区,所以这些文件看不见)
1. rbf文件要更新
首先肯定是rbf文件要更新了。
原因:硬件上增加了一个IP,那么配置FPGA的底层的sof文件有所改动,而开发板跑linux的时候是在uboot阶段加载rbf文件去配置FPGA,rbf文件是sof文件转换而来的,所以image里面的rbf文件需要更新。
2. dtb文件要更新
原因:Linux 系统启动时,通过读取 dtb 文件中的信息获取外设。
3. preloader不要更新
原因:如果是更新了HPS自带的组建(conponent),则需要进行preloader的编译和更新。而自定义的FPGA逻辑 不是HPS自带的组件。
换句话说,preloader如果沒有修改qsys中的hps参数,可以不用更新。
4. uboot文件不要更新:
原因:对HPS component 重新设定过(一般很少去重新设定)才需要。
5. kernel可能要更新:
原因:如果是直接虚拟地址映射,则可以不更新kernel, 但是如果是应用程序通过驱动的方式与底层串口通信,则需要在kernel裁剪(kernel配置的时候)时使能uart驱动:
如果是这样,就要更新zImage文件了。