Our project is using AM5748 as main CPU, SDK is based on ti-processor-sdk-linux-am57xx-evm-08_02_01_00. We have built our own custom board and use our own build platform to build u-boot, kernel, file system, it can successfully boot up and display WEB GUI on HDMI port.
Now I am working on streaming video from vin1a (VIP 1 port A) to HDMI display port (DSS). Following is brief diagram:
[FPGA ] --> VIN1A --> HDMI display
Video generated from FGPA is RGB-888 (24bits parallel), resolution can be vary; however, to simply test, it now generate 1920x1080 video. According to AM5748 Technical Reference Manual (spruih8b.pdf), I wan to use VIP1_CSC to cover RGB888(fourcc:RGB3) to YUYV, HDMI display resolution will be the same 1920x1080.
I have implemented v4l2-subdev instance in FPGA driver and ti_ip kernel driver can bind it and generate /dev/video1; following is output lsmod:
---------------------------------------------------------
# lsmod
Module Size Used by
lpvs 20480 0
......
ti_vip 49152 0
v4l2_fwnode 24576 1 ti_vip
ti_vpe 32768 0
ti_sc 40960 2 ti_vip,ti_vpe
videobuf2_dma_contig 20480 2 ti_vip,ti_vpe
videobuf2_memops 20480 1 videobuf2_dma_contig
ti_csc 20480 2 ti_vip,ti_vpe
ti_vpdma 28672 2 ti_vip,ti_vpe
v4l2_mem2mem 24576 1 ti_vpe
videobuf2_v4l2 24576 3 ti_vip,ti_vpe,v4l2_mem2mem
videobuf2_common 36864 4 ti_vip,ti_vpe,v4l2_mem2mem,videobuf2_v4l2
cmemk 40960 0
pvrsrvkm 380928 0
---------------------------------------------------------
On userspace, I use test program to do the streaming, which is using v4l2 interface and drm interface, here is output of it:
---------------------------------------------------------
# drm_v4l2_test -M omapdrm -i /dev/video1
caps: info[platform:vip1:vin1a:stream0] capabilities[0x85200001] device_caps[0x5200001]
G_FMT(start): width = 1920, height = 1080, 4cc = RGB3
G_FMT(final): width = 1920, height = 1080, 4cc = RGB3
size = 6220800 pitch = 5760 s.in_fourcc[RGB3]
buffers ready
No connector ID specified. Choosing default from list:
Connector 63 (crtc 64): type 11, 1920x1080 (chosen)
plane count [3]
ignoring plan format [RG16]
ignoring plan format [RX12]
ignoring plan format [YUYV]
ignoring plan format [AR15]
ignoring plan format [RA24]
ignoring plan format [NV12]
ignoring plan format [RA12]
ignoring plan format [XR24]
ignoring plan format [RG24]
ignoring plan format [UYVY]
ignoring plan format [AR12]
ignoring plan format [XR15]
ignoring plan format [AR24]
ignoring plan format [XR12]
ignoring plan format [RX24]
plane formats not contains s->out_fourcc[]
ignoring plan format [RG16]
ignoring plan format [RX12]
ignoring plan format [YUYV]
ignoring plan format [AR15]
ignoring plan format [RA24]
ignoring plan format [NV12]
ignoring plan format [RA12]
ignoring plan format [XR24]
ignoring plan format [RG24]
ignoring plan format [UYVY]
ignoring plan format [AR12]
ignoring plan format [XR15]
ignoring plan format [AR24]
ignoring plan format [XR12]
ignoring plan format [RX24]
plane formats not contains s->out_fourcc[]
ignoring plan format [RG16]
ignoring plan format [RX12]
ignoring plan format [YUYV]
ignoring plan format [AR15]
ignoring plan format [RA24]
ignoring plan format [NV12]
ignoring plan format [RA12]
ignoring plan format [XR24]
ignoring plan format [RG24]
ignoring plan format [UYVY]
ignoring plan format [AR12]
ignoring plan format [XR15]
ignoring plan format [AR24]
ignoring plan format [XR12]
ignoring plan format [RX24]
plane formats not contains s->out_fourcc[]
cannot find one plane in 3 planes
ERROR(dmabuf_sharing.c:499) : failed to find compatible plane
---------------------------------------------------------
I need help on how to configure VIP1_CSC so that it can convert RGB3 to YUYV, so that HDMI interface can display the video.
Regards,
Yong