高版本vivado+petalinux实现HDMI,基于Digilent IP

参考链接

博客:PL端模拟HDMI信号输出环境下的Linux界面显示
Xilinx 内核:下载相应的内核源码

根据网上说法,Digilent的HDMI驱动只支持4.x的内核版本,而20开始内核已经是5字头了。Vivado18.3 我也在用,但是太旧了,五年前的东西!!!而且硬件编译确实不如ML的高版本快,对应的petalinux18.3只能安装于Ubuntu16,这可是7年前的东西,关键我Ubuntu16一卡一卡的,不知道怎么回事,终端都打不开,听说现在Ubuntu18也退役了。
所以作为新时代青年,怎么能用这么老的东西呢?
请添加图片描述

软件版本

  1. Vivado 2022.2
  2. Ubuntu 18.04
  3. Petalinux 19.2
  4. Linux内核 4.19

有人就要问了,怎么vivado版本和petalinux版本不对应????请添加图片描述
既然都是 .xsa文件,何不试试看呢?
我试过21.1和22.2,实际上完全可以用,没有任何阻碍。

硬件平台

开发板:Z7-NANO(微相科技)
芯片:XC7Z020

参考步骤

Vivado硬件平台

  • VDMA的HDMI显示,直接按黑金教程来,可以Vitis上裸机检验一下,看是否能用,所以你最好会裸机的HDMI。
  • 图中AXI GPIO与HDMI显示无关。
  • 我打开了这些外设,可以只开一个串口和IIC,IIC大概是用来HDMI检测分辨率的,如果没开,驱动会以默认的分辨率运行。

下载Linux内核源码

  • git clone -b xlnx_rebase_v4.19_2019.2 https://github.com/Xilinx/linux-xlnx.git

修改内核

  • 根据文章开头的参考博客修改内核源码,我已经修改好了,可以直接使用,链接如下:

修改好的内核:Xilinx-xlnx-4.19
(GitHub有点问题):百度网盘,提取码:6aa7

或者 git clone https://github.com/xiaoyunt/Personal-source-for-Zynq.git

  • 需要修改设备数,路径:project-spec/meta-user/recipes-bsp/device-tree/files/system-user.dtsi,额外添加了USB:
/include/ "system-conf.dtsi"
 
/ {
	model = "Zynq ALINX Development Board";
	compatible = "alinx,zynq", "xlnx,zynq-7000";
 
	usb_phy0: usb_phy@0 {
		compatible = "ulpi-phy";
		#phy-cells = <0>;
		reg = <0xe0002000 0x1000>;
		view-port = <0x0170>;
		drv-vbus;
	};
};


&i2c0 {
	clock-frequency = <100000>;
};

&usb0 {
	dr_mode = "host";	
	usb-phy = <&usb_phy0>;
};
 
&amba_pl {
 
	hdmi_encoder_0:hdmi_encoder {
		compatible = "digilent,drm-encoder";
		 digilent,edid-i2c = <&i2c0>;
	};
 
	xilinx_drm {
		compatible = "xlnx,drm";
		xlnx,vtc = <&v_tc_0>;
		xlnx,connector-type = "HDMIA";
		xlnx,encoder-slave = <&hdmi_encoder_0>;
		clocks = <&axi_dynclk_0>;
		dglnt,edid-i2c = <&i2c0>;
		planes {
			xlnx,pixel-format = "rgb888";
			plane0 {
				dmas = <&axi_vdma_0 0>;
				dma-names = "dma";
			};
		};
	};
};
&axi_dynclk_0 {
	compatible = "digilent,axi-dynclk";
	#clock-cells = <0>;
	clocks = <&clkc 15>;
};
&v_tc_0 {
	compatible = "xlnx,v-tc-5.01.a";
};

Petalinux配置内核

  • petalinux-config -c kernel
  • 包括打包等等,本文不再赘述

运行验证

没有拍照,反正就是成功啦
请添加图片描述

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值