如何将xilinx官方移植到自定义单板

作者:硬码农二毛哥,本文转载自:硬码农二毛哥微信公众号

在文章中如何将zcu106例程移植到自定义单板,描述了如何在自定义单板平台构建硬件平台、软件系统添加配方,运行zcu106例程。实现过程很复杂。zcu106单板的bsp不能直接用在习惯单板上呢?下面是我做的一些试点,大家可以参考。

zcu106单板使用zynqmpsoc 7ev器件,我手头的单板使用zynqmpsoc 5ev器件,都包含编解码器VCU 。在进行了如下四方面的修改后,将zcu106的bsp应用与自定义单板,自定义单板正常启动。

升修改硬件平台

升修改机器名称

升修改设备树

升删除fsbl文件夹

修改硬件平台

硬件平台中主要包含VCU相关内容和时钟模块,始终模块生成2 00Mhz和4 00Mhz,这个是为了下一步使用葡萄加入DPU做的准备。

修改Yocto MACHINE NA M E

使用zuc106的bsp在petalinux新建工程,使用如下指令:

petalinnux-create  -t project –s

新建工程后,运行指令petalinux-config,在Yo c to settings下修改M ACHINE NAME,名称设置成zynqmp -generic。

修改设备树

仍然是在petalinux -config下,在D TG Settings中将M ACHINE NAME改成模板,在Kernel Bootargs中输入如下内容。

earlycon console=ttyPS0,115200 clk_ignore_unused root=/dev/mmcblk1p2 rw rootwait cma=1500M

将system-user.dtsi修改成如下内容

/include/ "system-conf.dtsi"
/{
};

&amba {
zyxclmm_drm {
compatible = "xlnx,zocl";
status = "okay";
interrupt-parent = << span="">&axi_intc_0>;
interrupts = << span="">0 4>, << span="">1 4>, << span="">2 4>, << span="">3 4>,
<< span="">4 4>, << span="">5 4>, << span="">6 4>, << span="">7 4>,
<< span="">8 4>, << span="">9 4>, << span="">10 4>, << span="">11 4>,
<< span="">12 4>, << span="">13 4>, << span="">14 4>, << span="">15 4>,
<< span="">16 4>, << span="">17 4>, << span="">18 4>, << span="">19 4>,
<< span="">20 4>, << span="">21 4>, << span="">22 4>, << span="">23 4>,
<< span="">24 4>, << span="">25 4>, << span="">26 4>, << span="">27 4>,
<< span="">28 4>, << span="">29 4>, << span="">30 4>, << span="">31 4>;
};
};

&axi_intc_0 {
xlnx,kind-of-intr = << span="">0x0>;
xlnx,num-intr-inputs = << span="">0x20>;
interrupt-parent = << span="">&gic>;
interrupts = << span="">0 89 4>;
};

&sdhci1{
statu = "okay";
disable-wp;
no-1-8-v;
};

&gem3 {
phy-handle = << span="">&phy0>;
pinctrl-names = "default";
pinctrl-0 = << span="">&pinctrl_gem3_default>;
phy0: phy@5 {
reg = << span="">0x5>;
ti,rx-internal-delay = << span="">0x8>;
ti,tx-internal-delay = << span="">0xa>;
ti,fifo-depth = << span="">0x1>;
ti,dp83867-rxctrl-strap-quirk;
};
};

&pinctrl0 {
status = "okay";
pinctrl_gem3_default: gem3-default {
mux {
function = "ethernet3";
groups = "ethernet3_0_grp";
};
conf {
groups = "ethernet3_0_grp";
slew-rate = << span="">1>;
io-standard = << span="">1>;
};
conf-rx {
pins = "MIO70", "MIO71", "MIO72", "MIO73", "MIO74",
"MIO75";
bias-high-impedance;
low-power-disable;
};
conf-tx {
pins = "MIO64", "MIO65", "MIO66", "MIO67", "MIO68",
"MIO69";
bias-disable;
low-power-enable;
};
mux-mdio {
function = "mdio3";
groups = "mdio3_0_grp";
};
conf-mdio {
groups = "mdio3_0_grp";
slew-rate = << span="">1>;
io-standard = << span="">1>;
bias-disable;
};
};
};

对。./project-spec/meta-user/recipes-bsp/device-tree /中的device-tree.bbappend进行修改,file://中只目录system-user.dtsi。

删除fsbl文件夹

删除/ project-spec/meta-user/recipes-bsp中的fsbl文件夹

完成以上步骤就可以build,生成BOOT,进行测试了,单板可以正常启动。

最新文章