DisplayPort 1.4 Tx Subsystem core的最简pipeline就是如它的linux driver wiki page里的figure-4那样,framebuffer_read+DP+video_phy。Zcu102板卡没有PL DP的专用接口,所以要用到一个FMC子卡来扩展PL DP接口。为了增加系统灵活性,也可以在framebuffer_read core和DP core之间加入mixer core。本例为了增加Xorg server的支持,在mixer core里增加了一层AR24 format的plane,并在设备数里把它这一层设置为primary layer。
在petalinux 2023.1版本里,有一些问题需要用到一些patch来解决。比如device tree generator的问题需要用到下面这些patch以及system-user.dtsi里的一些特殊设定,
001-dptxss-common_proc.patch
001-dptxss-ddrpsv.patch
001-dptxss-dp_tx.patch
001-vid_phy_ctrl.patch
Kernel driver的问题需要用到0001_dp_hdcp_property_check.patch,
另外需要增加kernel-module-dp,就是在project-spec/meta-user/conf/user-rootfsconfig里增加CONFIG_kernel-module-dp,然后在rootfs menuconfig里enable这个user module。
如果需要在板上使用Xorg、ffplay、modetest来测试,需要在rootfs里使能一些package, 比如,
libmali-xlnx
packagegroup-core-x11 packagegroup-core-x11-base packagegroup-core-x11-xserver v4l-utils libv4l media-ctl v4l-utils-dbg v4l-utils-dev libv4l-dev
libdrm
libdrm-tests libdrm-drivers xserver-xorg xserver-xorg-extension-dri xserver-xorg-extension-glx xserver-xorg-utils ffmpeg
petalinux image在zcu102板卡加载到linux之后,可以在/dev/dri/by-path/里看到dri card0和dri card1,分别代码PS DisplayPort和PL DisplayPort两条pipeline,可以使用modetest或者ffplay+Xorg来测试。
1.命令modetest -D a0010000.v_mix可以显示PL DP这个pipeline上的设备,可以看到connector的ID是40,命令modetest -D a0010000.v_mix -s 40:1920x1080-60@AR24可以通过PL DP在显示器上显示color bar。
2.另一种测试方式是ffplay+Xorg,首先在启动Xorg前,配置etc/X11/xorg.conf,让它使用PL DP通道,可以参考附件xorg.conf。然后可以使用下面命令启动Xorg并用ffplay命令显示USB camera设备/dev/video0的视频流。
Sudo Xorg &
Export DISPLAY=:0.0
ffplay /dev/video0
审核编辑:刘清
全部0条评论
快来发表一下你的评论吧 !