This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

VPSS firmware with gstreamer 0.4 on DM8148?

Other Parts Discussed in Thread: TVP7002

Following the wiki page for the gstreamer DM81xx plugin (http://processors.wiki.ti.com/index.php/DM81xx_Gstreamer_Plugin), I was able to compile and install the new 0.4 version of gstreamer (TAG_GST_DM81XX_00_04_00_00) onto our EVM8148 board.  We want to use the newly released v4l2src support to capture video using gstreamer.  However, when I load the capture driver (ti81xxfb), I get the following:

root@dm814x-evm:~# modprobe ti81xxvin
tvp7002 3-005d: tvp7002 found @ 0x5d (OMAP I2C adapter)
omap_i2c omap_i2c.3: controller timed out
omap_i2c omap_i2c.3: controller timed out
omap_i2c omap_i2c.3: controller timed out
omap_i2c omap_i2c.3: controller timed out
omap_i2c omap_i2c.3: controller timed out
tvp7002 3-005d: TVP7002 read error -110
tvp7002: probe of 3-005d failed with error -110
ti81xxvin ti81xxvin: Error registering v4l2 subdevice

According to the DM814x Video Driver User Guide (http://processors.wiki.ti.com/index.php/DM814X_AM387X_VPSS_Video_Driver_User_Guide), one must use the PSP version of the VPSS firmware with the ti81xxvin driver due to conflicts on the I2C bus to the TVP7002.  However, the PSP VPSS firmware does not work with the EZSDK which gstreamer requires.  This puts us in a catch-22 of VPSS firmware versions.

So, which version of VPSS firmware to use for the gstreamer 0.4 v4l2src component with the ti81xxvin driver?

Thanks,

Scott

  • I'll attempt to answer my own question.  Through a few trial and error attempts from putting together information from several posts, I was able to get figure out the answer.  First, you must load the dm814x_hdvpss_v4l2.xem3 firmware instead of the dm814x_hdvpss.xem3 firmware.  Both are found in /usr/share/ti/ti-media-controller-utils/.  Second, you must change the i2c_mode for the vpss kernel module from i2c_mode=1 to i2c_mode=0.  Thus, /etc/init.d/load-hd-firmware.sh is changed to:

            <snip>
            firmware_loader $HDVPSS_ID /usr/share/ti/ti-media-controller-utils/dm814x_hdvpss_v4l2.xem3 start
            modprobe vpss sbufaddr=0xBFB00000 mode=hdmi:1080p-60 i2c_mode=0
            <snip>

    After that, the ti81xxvin module loads without error.

    Hopefully, TI can document this in the relevant wikis.

    -Scott

  • Hey ,

    i still have errors when i tried to load ti81xxvin ..
    
    
    there's anything else that i should do to make it work ?

    my /etc/init.d/load-hd-firmware.sh is :

    #################################################################################

    #!/bin/sh
    #
    # manage HDVICP2 and HDVPSS Engine firmware

    PATH=$PATH:/usr/share/ti/ti-media-controller-utils
    HDVICP2_ID=1
    HDVPSS_ID=2

    configure_lcd()
    {
    echo "Configuring fb0 to LCD"
    echo 1:dvo2 > /sys/devices/platform/vpss/graphics0/nodes
    echo 0 > /sys/devices/platform/vpss/display1/enabled
    echo 33500,800/164/89/10,480/10/23/10,1 > /sys/devices/platform/vpss/display1/timings
    echo triplediscrete,rgb888 > /sys/devices/platform/vpss/display1/output
    echo 1 > /sys/devices/platform/vpss/display1/enabled
    fbset -xres 800 -yres 480 -vxres 800 -vyres 480
    }


    case "$1" in
    start)
    echo "Loading HDVICP2 Firmware"
    prcm_config_app s
    modprobe syslink
    until [[ -e /dev/syslinkipc_ProcMgr && -e /dev/syslinkipc_ClientNotifyMgr ]]
    do
    sleep 0.5
    done
    firmware_loader $HDVICP2_ID /usr/share/ti/ti-media-controller-utils/dm814x_hdvicp.xem3 start
    echo "Loading HDVPSS Firmware"
    firmware_loader $HDVPSS_ID /usr/share/ti/ti-media-controller-utils/dm814x_hdvpss_v4l2.xem start
    modprobe vpss sbufaddr=0xBFB00000 mode=hdmi:1080p-60 i2c_mode=0
    modprobe ti81xxfb vram=0:24M,1:16M,2:6M
    configure_lcd
    modprobe ti81xxhdmi
    modprobe tlc59108
    ;;
    stop)
    echo "Unloading HDVICP2 Firmware"
    firmware_loader $HDVICP2_ID /usr/share/ti/ti-media-controller-utils/dm814x_hdvicp.xem3 stop
    echo "Unloading HDVPSS Firmware"
    rmmod tlc59108
    rmmod ti81xxhdmi
    rmmod ti81xxfb
    rmmod vpss
    firmware_loader $HDVPSS_ID /usr/share/ti/ti-media-controller-utils/dm814x_hdvpss.xem3 stop
    rm /tmp/firmware.$HDVPSS_ID
    rmmod syslink
    ;;
    *)
    echo "Usage: /etc/init.d/load-hd-firmware.sh {start|stop}"
    exit 1
    ;;
    esac

    exit 0
    #################################################################################
    
    
    and my bootargs (u-boot) is :
     setenv bootargs 'console=ttyO0,115200n8 root=/dev/mmcblk0p2 notifyk.vpssm3_sva=0xBF900000 mem=364M rootwait'
    
    
    thanks ..
  • Hey   ,

    Can you please publish /etc/init.d/load-hd-firmware.sh ?

    or just attached it ?

    thanks ..

  • Enjoy...

    #!/bin/sh
    #
    # manage HDVICP2 and HDVPSS Engine firmware

    PATH=$PATH:/usr/share/ti/ti-media-controller-utils
    HDVICP2_ID=1
    HDVPSS_ID=2

    configure_fb0()
    {
        echo "Configuring fb0"
        echo 1:dvo2 > /sys/devices/platform/vpss/graphics0/nodes
        fbset -xres 640 -yres 480 -vxres 640 -vyres 480
    }


    case "$1" in
        start)
            echo "Loading HDVICP2 Firmware"
            prcm_config_app s
            modprobe syslink
            until [[ -e /dev/syslinkipc_ProcMgr && -e /dev/syslinkipc_ClientNotifyMgr ]]
            do                                                
                sleep 0.5
            done
            firmware_loader $HDVICP2_ID /usr/share/ti/ti-media-controller-utils/dm814x_hdvicp.xem3 start
            echo "Loading HDVPSS Firmware"
            firmware_loader $HDVPSS_ID /usr/share/ti/ti-media-controller-utils/dm814x_hdvpss_v4l2.xem3 start
            modprobe vpss sbufaddr=0xBFB00000 mode=dvo2:640x480@60 debug=1 i2c_mode=0
            modprobe ti81xxfb vram=0:4M
            configure_fb0
          ;;
        stop)
            echo "Unloading HDVICP2 Firmware"
            firmware_loader $HDVICP2_ID /usr/share/ti/ti-media-controller-utils/dm814x_hdvicp.xem3 stop
            rm /tmp/firmware.$HDVICP2_ID
            echo "Unloading HDVPSS Firmware"
            rmmod ti81xxfb
            rmmod vpss
            firmware_loader $HDVPSS_ID /usr/share/ti/ti-media-controller-utils/dm814x_hdvpss_v4l2.xem3 stop
            rm /tmp/firmware.$HDVPSS_ID
            rmmod syslink
          ;;
        *)
            echo "Usage: /etc/init.d/load-hd-firmware.sh {start|stop}"
            exit 1
            ;;
    esac

    exit 0


  • Hey   ,

    My bootargs are :

    setenv bootargs 'console=ttyO0,115200n8 root=/dev/mmcblk0p2 notifyk.vpssm3_sva=0xBF900000 mem=364M rootwait'

    Load-hd-firmware script is :

    #HDVICP2 and HDVPSS Engine firmware

    PATH=$PATH:/usr/share/ti/ti-media-controller-utils
    HDVICP2_ID=1
    HDVPSS_ID=2

    configure_fb0()
    {
    echo "Configuring fb0"
    echo 1:dvo2 > /sys/devices/platform/vpss/graphics0/nodes
    fbset -xres 640 -yres 480 -vxres 640 -vyres 480
    }


    case "$1" in
    start)
    echo "Loading HDVICP2 Firmware"
    prcm_config_app s
    modprobe syslink
    until [[ -e /dev/syslinkipc_ProcMgr && -e /dev/syslinkipc_ClientNotifyMgr ]]
    do
    sleep 0.5
    done
    firmware_loader $HDVICP2_ID /usr/share/ti/ti-media-controller-utils/dm814x_hdvicp.xem3 start
    echo "Loading HDVPSS Firmware"
    firmware_loader $HDVPSS_ID /usr/share/ti/ti-media-controller-utils/dm814x_hdvpss_v4l2.xem3 start
    modprobe vpss sbufaddr=0xBFB00000 mode=dvo2:640x480@60 debug=1 i2c_mode=1
    modprobe ti81xxfb vram=0:4M
    configure_fb0
    insmod /hdvpss/ti81xxvo.ko
    insmod /hdvpss/tvp7002.ko
    insmod /hdvpss/ti81xxvin.ko
    ;;
    stop)
    echo "Unloading HDVICP2 Firmware"
    firmware_loader $HDVICP2_ID /usr/share/ti/ti-media-controller-utils/dm814x_hdvicp.xem3 stop
    rm /tmp/firmware.$HDVICP2_ID
    echo "Unloading HDVPSS Firmware"
    rmmod ti81xxfb
    rmmod vpss
    firmware_loader $HDVPSS_ID /usr/share/ti/ti-media-controller-utils/dm814x_hdvpss_v4l2.xem3 stop
    rm /tmp/firmware.$HDVPSS_ID
    rmmod syslink
    ;;
    *)
    echo "Usage: /etc/init.d/load-hd-firmware.sh {start|stop}"
    exit 1
    ;;
    esac

    exit 0

    The error i get is :

    tvp7002 3-005d: tvp7002 found @ 0x5d (OMAP I2C adapter)
    tvp7002 3-005d: TVP7002 read error -121
    tvp7002: probe of 3-005d failed with error -121
    ti81xxvin ti81xxvin: Error registering v4l2 subdevice
    
    
    
    
    
    
    
    
    ############################################
    
    
    when i2c_mode is 0 i get an i2c error , 
    but when i2c_mode is 1 everything suppose to be ok
    
    
    but still i having the same error with ti81xxvin (i2c_mode=0 same as i2c_mode_1)
    
    
    ti81xxvin ti81xxvin: Error registering v4l2 subdevice
    
    
    any idea ?
  • Hi,

    I have the same problem, did you manage to solve it?