此系列博客,仅对Xilinx平台PS端(ARM部分)开发做介绍,不对PL(FPGA)做过多介绍。
目录
2.2 复制配置文件( 根据芯片,32位复制到arch/arm/configs, 64位到arch/arm64/configs)
2.3 复制.its文件,用于生成image.ub, 可复制到linux源码顶层目录,和Makefile同级
一. 单独编译UBoot
当Uboot源码使用默认配置,从网络下载时,需要进行步骤2.1,若使用本地源码,可跳过步骤2.1
2.1.拷贝源码
在工程目录:build/tmp/work/zynqmp_generic-xilinx-linux/u-boot-xlnx/v2020.01-xilinx-v2020.1+git999-r0/u-boot-xlnx-v2020.01-xilinx-v2020.1+git999/source目录下拷贝源码
2.拷贝配置文件
在工程目录:build/tmp/work/zynqmp_generic-xilinx-linux/u-boot-xlnx/v2020.01-xilinx-v2020.1+git999-r0/u-boot-xlnx-v2020.01-xilinx-v2020.1+git999
拷贝.config文件到源码的configs目录下备用
3.编译
make alinx_config_done_defconfig
make menuconfig
取消u-boot.itb镜像文件生成,否则报错
make -j12 编译,编译完成,可将生成的uboot.bin和uboot.elf拷贝到petalinux工程中,生成BOOT.bin启动文件
二. 单独编译内核源码
当Linux源码使用默认配置,从网络下载时,需要进行步骤2.1,若使用本地源码,可跳过步骤2.1
2.1 复制内核源码
2.2 复制配置文件( 根据芯片,32位复制到arch/arm/configs, 64位到arch/arm64/configs)
2.3 复制.its文件,用于生成image.ub, 可复制到linux源码顶层目录,和Makefile同级
2.4 Makefile 配置芯片架构以及编译工具链
/tools/Xilinx/Vitis/2022.1/gnu/aarch64/lin/aarch64-linux/bin/aarch64-linux-gnu-
2.5 使能配置
make xilinx_petalinux_defconfig
2.6 移植设备树文件
将petalinux工程下相应文件设备树移植到linux源码中相应目录下
复制include 文件夹,和pcw.dtsi,system-conf.dtsi,system-top.dts,zynqmp-clk-ccf.dtsi,zynqmp.dtsi到linux源码中的arch/arm64/boot/dts/Xilinx
复制petalinux工程目录:project-spec/meta-user/recipes-bsp/device-tree/files下的设备树源文件linux源码中的arch/arm64/boot/dts/Xilinx
删除多余的.dts文件,最终移植好的文件内容如下:
修改Makefile, 为如下内容
2.7 生成镜像
1.编译 make
2.生成imga.ub
aarch64-linux-gnu-objcopy -O binary -R .note -R .comment -S vmlinux linux.bin
gzip -9 linux.bin
mv -f linux.bin.gz linux.bin
mkimage -f fit-image.its image.ub