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.

Need v4l2 installation help to get started

Other Parts Discussed in Thread: TVP7002

Hi

I am using DM816x evaluation board, and I want to connect video input(VGA port on daughter board) to the eval. board, and encode it to a file. I booted up the board using SD card, and when I typed the following command:

root@dm816x-evm:~# gst-launch v4l2src always-copy=false queue-size=12 num-buffers=2000 ! 'video/x-raw-yuv,format=(fourcc)NV12' ! omxbufferalloc numBuffers=12 ! omx_h264enc bitrate=5000000 ! gstperf ! filesink location=captured.h264

I got this message:

Setting pipeline to PAUSED ...
ERROR: Pipeline doesn't want to pause.
ERROR: from element /GstPipeline:pipeline0/GstV4l2Src:v4l2src0: Cannot identify device '/dev/video0'.
Additional debug info:
v4l2_calls.c(493): gst_v4l2_open (): /GstPipeline:pipeline0/GstV4l2Src:v4l2src0:
system error: No such file or directory
Setting pipeline to NULL ...
Freeing pipeline ...

So i thought I need to install video capture driver, so I tried to understand TI81xx Video Capture Driver User Guide.  But I have little clue where to start, since I am quite new in linux. Based on the Guide, it seemed I could follow this instruction.

Load V4L2 capture and dependent modules
• Load Syslink Module
$ insmod syslink.ko
• Load VPSS M3 Firmware
$ ./slaveloader startup VPSS-M3 ti816x_hdvpss.xem3
• Load VPSS Module
$ insmod vpss.ko
• Load TVP7002 kernel module
$ insmod tvp7002.ko
• Load V4L2 Capture Module
$ insmod ti81xxvin.ko

So I reboot the EVM from SD card, and did the followings:

dm816x-evm login: root
root@dm816x-evm:~# cd /lib/modules/2.6.37/kernel/drivers/dsp
root@dm816x-evm:/lib/modules/2.6.37/kernel/drivers/dsp# insmod syslink.ko
insmod: error inserting 'syslink.ko': -1 File exists

and got this error message. I am wondering if there is any step I am missing. Any help would be appreciated

Peter

  • This is what I got after I just went ahead from above, and tried to follow the guide:

    root@dm816x-evm:~# cd /lib/modules/2.6.37/kernel/drivers/dsp/
    root@dm816x-evm:/lib/modules/2.6.37/kernel/drivers/dsp# insmod syslink.ko
    insmod: error inserting 'syslink.ko': -1 File exists
    root@dm816x-evm:/lib/modules/2.6.37/kernel/drivers/dsp# cd
    root@dm816x-evm:~# cd /usr/share/ti/ti-media-controller-utils/
    root@dm816x-evm:/usr/share/ti/ti-media-controller-utils# ./dm816x_hdvpss.xem3
    Killed
    root@dm816x-evm:/usr/share/ti/ti-media-controller-utils# cd
    root@dm816x-evm:~# insmod /lib/modules/2.6.37/kernel/drivers/video/ti81xx/vpss/vpss.ko
    insmod: error inserting '/lib/modules/2.6.37/kernel/drivers/video/ti81xx/vpss/vpss.ko': -1 File exists
    root@dm816x-evm:~# cd /lib/modules/2.6.37/kernel/drivers/video/ti81xx/vpss/
    root@dm816x-evm:/lib/modules/2.6.37/kernel/drivers/video/ti81xx/vpss# insmod vpss.ko
    insmod: error inserting 'vpss.ko': -1 File exists
    root@dm816x-evm:/lib/modules/2.6.37/kernel/drivers/video/ti81xx/vpss# cd
    root@dm816x-evm:~# insmod /lib/modules/2.6.37/kernel/drivers/media/video/tvp7002.ko
    root@dm816x-evm:~# insmod /lib/modules/2.6.37/kernel/drivers/media/video/ti81xx/ti81xxvin.ko
    tvp7002 2-005d: tvp7002 found @ 0x5d (OMAP I2C adapter)
    omap_i2c omap_i2c.2: controller timed out
    omap_i2c omap_i2c.2: controller timed out
    omap_i2c omap_i2c.2: controller timed out
    omap_i2c omap_i2c.2: controller timed out
    tvp7002 2-005d: Rev. cf detected.
    tvp7002 2-005d: Unknown revision detected.
    omap_i2c omap_i2c.2: controller timed out
    tvp7002 2-005d: Write: retry ... 0
    omap_i2c omap_i2c.2: controller timed out
    tvp7002 2-005d: Write: retry ... 1
    omap_i2c omap_i2c.2: controller timed out
    tvp7002 2-005d: Write: retry ... 0
    omap_i2c omap_i2c.2: controller timed out
    tvp7002 2-005d: Write: retry ... 0
    omap_i2c omap_i2c.2: controller timed out
    tvp7002 2-005d: Write: retry ... 1
    omap_i2c omap_i2c.2: controller timed out
    tvp7002 2-005d: Write: retry ... 0
    omap_i2c omap_i2c.2: controller timed out
    tvp7002 2-005d: Write: retry ... 0
    omap_i2c omap_i2c.2: controller timed out
    tvp7002 2-005d: Write: retry ... 1
    omap_i2c omap_i2c.2: controller timed out
    tvp7002 2-005d: Write: retry ... 2
    omap_i2c omap_i2c.2: controller timed out
    tvp7002 2-005d: Write: retry ... 0
    omap_i2c omap_i2c.2: controller timed out
    tvp7002 2-005d: Write: retry ... 1
    omap_i2c omap_i2c.2: controller timed out
    tvp7002 2-005d: Write: retry ... 2
    omap_i2c omap_i2c.2: controller timed out
    tvp7002 2-005d: Write: retry ... 3
    Unable to handle kernel NULL pointer dereference at virtual address 00000002
    pgd = d1eec000
    [00000002] *pgd=91ddd031, *pte=00000000, *ppte=00000000
    Internal error: Oops: 17 [#1]
    last sysfs file: /sys/module/tvp7002/initstate
    Modules linked in: ti81xxvin(+) tvp7002 bufferclass_ti omaplfb pvrsrvkm ti81xxhdmi ti81xxfb vpss syslink ipv6
    CPU: 0    Not tainted  (2.6.37 #1)
    PC is at vps_ti816x_select_video_decoder+0x28/0xac
    LR is at ti81xxvin_probe+0x3e4/0x50c [ti81xxvin]
    pc : [<c005e248>]    lr : [<bf76bf98>]    psr: a0000013
    sp : d1ddbdd8  ip : d1ddbe08  fp : d1ddbe04
    r10: bf76d218  r9 : bf76d218  r8 : 00000004
    r7 : c04ef42c  r6 : 00000000  r5 : 00000000  r4 : 00000000
    r3 : c05214c8  r2 : 0000000c  r1 : 00000000  r0 : d1ddbddc
    Flags: NzCv  IRQs on  FIQs on  Mode SVC_32  ISA ARM  Segment user
    Control: 10c5387d  Table: 91eec019  DAC: 00000015
    Process insmod (pid: 1348, stack limit = 0xd1dda2e8)
    Stack: (0xd1ddbdd8 to 0xd1ddc000)
    bdc0:                                                       d1ddbe04 d1ddbde8
    bde0: c02b05b8 c009786c d3685bc0 d1c6dc00 bf76d208 00000000 d1ddbe44 d1ddbe08
    be00: bf76bf98 c005e22c 00000000 00000001 c0506ed0 c04ef2e8 d1ddbe34 c04ef2f0
    be20: c04ef2f0 bf76d048 d1ce0180 c0506ed0 d1dda000 00000000 d1ddbe54 d1ddbe48
    be40: c02047b0 bf76bbc0 d1ddbe74 d1ddbe58 c020371c c020479c c04ef2f0 c04ef324
    be60: bf76d048 d1ce0180 d1ddbe94 d1ddbe78 c0203844 c0203658 00000000 c02037dc
    be80: bf76d048 d1ce0180 d1ddbebc d1ddbe98 c0202ec8 c02037e8 d341bfb8 d3465830
    bea0: c01b40f8 00000000 bf76d0e4 bf76d048 d1ddbecc d1ddbec0 c0203540 c0202e84
    bec0: d1ddbefc d1ddbed0 c02027a0 c020352c bf76cca6 d1ddbee0 00000000 bf76d0e4
    bee0: bf76d048 00012018 bf770000 00000000 d1ddbf24 d1ddbf00 c0203b7c c02026f8
    bf00: 00000000 bf76d0e4 00012008 00012018 bf770000 d1dda000 d1ddbf34 d1ddbf28
    bf20: c0204a9c c0203ad8 d1ddbf44 d1ddbf38 bf770014 c0204a5c d1ddbf7c d1ddbf48
    bf40: c003b42c bf77000c bf76d0e4 00012008 00012018 c0045fa8 00000000 bf76d0e4
    bf60: 00012008 00012018 c0045fa8 00000000 d1ddbfa4 d1ddbf80 c0099158 c003b368
    bf80: c00c49bc c00c48d4 00000000 00010000 00000003 00000080 00000000 d1ddbfa8
    bfa0: c0045e00 c00990c8 00000000 00010000 00012018 00008d58 00012008 00000001
    bfc0: 00000000 00010000 00000003 00000080 00012008 00000000 00012018 00000000
    bfe0: becf9e88 becf9c1c 00008da0 401977d4 60000010 00012018 70203a4c 656e6e61
    Backtrace:
    [<c005e220>] (vps_ti816x_select_video_decoder+0x0/0xac) from [<bf76bf98>] (ti81xxvin_probe+0x3e4/0x50c [ti81xxvin])
     r6:00000000 r5:bf76d208 r4:d1c6dc00
    [<bf76bbb4>] (ti81xxvin_probe+0x0/0x50c [ti81xxvin]) from [<c02047b0>] (platform_drv_probe+0x20/0x24)
    [<c0204790>] (platform_drv_probe+0x0/0x24) from [<c020371c>] (driver_probe_device+0xd0/0x190)
    [<c020364c>] (driver_probe_device+0x0/0x190) from [<c0203844>] (__driver_attach+0x68/0x8c)
     r7:d1ce0180 r6:bf76d048 r5:c04ef324 r4:c04ef2f0
    [<c02037dc>] (__driver_attach+0x0/0x8c) from [<c0202ec8>] (bus_for_each_dev+0x50/0x84)
     r7:d1ce0180 r6:bf76d048 r5:c02037dc r4:00000000
    [<c0202e78>] (bus_for_each_dev+0x0/0x84) from [<c0203540>] (driver_attach+0x20/0x28)
     r6:bf76d048 r5:bf76d0e4 r4:00000000
    [<c0203520>] (driver_attach+0x0/0x28) from [<c02027a0>] (bus_add_driver+0xb4/0x234)
    [<c02026ec>] (bus_add_driver+0x0/0x234) from [<c0203b7c>] (driver_register+0xb0/0x13c)
    [<c0203acc>] (driver_register+0x0/0x13c) from [<c0204a9c>] (platform_driver_register+0x4c/0x60)
     r9:d1dda000 r8:bf770000 r7:00012018 r6:00012008 r5:bf76d0e4
    r4:00000000
    [<c0204a50>] (platform_driver_register+0x0/0x60) from [<bf770014>] (ti81xxvin_init+0x14/0x1c [ti81xxvin])
    [<bf770000>] (ti81xxvin_init+0x0/0x1c [ti81xxvin]) from [<c003b42c>] (do_one_initcall+0xd0/0x1a4)
    [<c003b35c>] (do_one_initcall+0x0/0x1a4) from [<c0099158>] (sys_init_module+0x9c/0x1bc)
    [<c00990bc>] (sys_init_module+0x0/0x1bc) from [<c0045e00>] (ret_fast_syscall+0x0/0x30)
     r7:00000080 r6:00000003 r5:00010000 r4:00000000
    Code: e3a01000 e3a0200c e24b0028 e5935004 (e1d560b2)
    ---[ end trace 92012b2829e9930e ]---
    Segmentation fault
    root@dm816x-evm:~#

    seems something is wrong...

  • In order to see if v4l2 is installed properly, I tried this Gstream command, and it is clearly not working. What am I missing??

    root@dm816x-evm:~# gst-launch v4l2src device=/dev/video0 ! video/x-raw-yuv,width=640,height=480,framerate=30/1 ! omx_ctrl display-mode=OMX_DC_MODE_1080P_60 ! gstperf !omx_videosink sync=false
    Setting pipelineti81xxvin ti81xxvin: Invalid input index
     to PAUSED ...
    ti81xxvin ti81xxvin: Invalid format index
    omap_i2c omap_i2c.2: controller timed out
    omap_i2c omap_i2c.2: controller timed out

    ti81xxvin ti81xxvin: Failed to set standard for sub devices
     Mode set is 0
    ERROR: Pipeline doesn't want to pause.
    ERROR: from element /GstPipeline:pipeline0/GstV4l2Src:v4l2src0: Could not negotiate format
    Additional debug info:
    gstbasesrc.c(2778): gst_base_src_start (): /GstPipeline:pipeline0/GstV4l2Src:v4l2src0:
    Check your filtered caps, if any
    Setting pipeline to NULL ...
    Freeing pipeline ...
    root@dm816x-evm:~#

    Just in case this might help you to answer, I typed these command to check after above command.

    root@dm816x-evm:~# lsmod
    Module                  Size  Used by
    ti81xxvin              28853  1
    tvp7002                 6405  1
    bufferclass_ti          4950  0
    omaplfb                10794  0
    pvrsrvkm              155594  2 bufferclass_ti,omaplfb
    ti81xxhdmi             16163  0
    ti81xxfb               21979  3
    vpss                   75009  4 ti81xxvin,omaplfb,ti81xxhdmi,ti81xxfb
    syslink              1119122  0
    ipv6                  209855  12
    root@dm816x-evm:~# lsusb
    Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
    Bus 001 Device 002: ID 093a:2510 Pixart Imaging, Inc. Hama Optical Mouse
    Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
    root@dm816x-evm:~#

    One extra question is, from one of replies in other post, I saw that I can't use V4L2 capture and Open max at the same time, but then how to disable open-max? Say somehow I managed to disable it, but then can I still use the above Gstream command? Sorry for putting too much information but I thought this might help you to understand my situation better.

    Any help or commend would be much appreciated. Thanks!!

  • After searching prev. post, I found that I should use other firmware (load-hd-v4l2-firmware.sh) if I want to use V4L2 capture function.

    So I did this to use new firmware when the board starts up:

    root@dm816x-evm:~# cp /usr/share/ti/ti-media-controller-utils/load-hd-v4l2-firmware.sh /etc/init.d/
    root@dm816x-evm:~# cd /etc/init.d
    root@dm816x-evm:~# cp load-hd-firmware.sh load-hd-firmware.sh.old
    root@dm816x-evm:~# cp load-hd-v4l2-firmware.sh load-hd-v4l2-firmware.sh.old
    root@dm816x-evm:~# cp load-hd-v4l2-firmware.sh load-hd-firmware.sh

    And I reboot the EVM. Then I did the same things as I did above:

    dm816x-evm login: root
    root@dm816x-evm:~# insmod /lib/modules/2.6.37/kernel/drivers/dsp/syslink.ko
    SysLink version : 2.10.03.20
    SysLink module created on Date:Apr 29 2012 Time:20:45:11
    root@dm816x-evm:~# cd /usr/share/ti/ti-media-controller-utils/
    root@dm816x-evm:/usr/share/ti/ti-media-controller-utils# ./dm816x_hdvpss_v4l2.xem3
    Killed
    root@dm816x-evm:/usr/share/ti/ti-media-controller-utils# lsmod
    Module                  Size  Used by
    syslink              1119122  0
    ipv6                  209855  12
    root@dm816x-evm:/usr/share/ti/ti-media-controller-utils# insmod /lib/modules/2.6.37/kernel/drivers/video/ti81xx/vpss/vpss.ko

    Then the EVM freezes..  Does anyone know what went wrong?

  • Hi,

    From where are you following all instructions?

    Regards,

    Hardik Shah

  • Hi Hardik,

    I am trying to follow Prerequisite work from DM81xx AM38xx Video Driver User Guide for inserting modules like "syslink.ko, vpss.ko..."

    But I also saw replies from ( http://e2e.ti.com/support/dsp/davinci_digital_media_processors/f/717/t/153145.aspx ) for using different firmware (load-hd-v4l2-firmware.sh ) for v4l2 driver. I actually saw there you explains that we cannot use load-hd-firmware.sh if we want to use v4l2 capture driver.

    If I summarize what I have done is:

    1. I first made EVM boot from different firmware (load-hd-v4l2-firmware.sh) in order to install v4l2 driver.

    2. Inserted syslink.ko module.

    3. Executed ./dm816x_hdvpss_v4l2.xem3  (This part was a little different from DM81xx AM38xx Video Driver User Guide because I couldn't find slaveloader in my SD card. Do I need to install DM816x Linux PSP - 04.00.01.13.patch2 to do this part correctly? Or is this okay to just do ./dm816x_hdvpss_v4l2.xem3. My SD card was made from the latest version EZSDK 5.04.00, and I boot EVM from SD)

    4. Tried to Insert vpss.ko module, but EVM crashes.

    Could you tell me if I am doing this correctly?



  • Hi,

    Everything gets done by the time "load-hd-v4l2-firmware.sh" gets executed. So you need not to follow steps from "DM81xx AM38xx Video Driver User Guide". You can start following steps for getting gstreamer up instead of trying steps from DM81xx AM38xx Video Driver User Guide. If you do "lsmod" at prompt you will be able to see all modules already loaded.

    Regards,

    Hardik Shah

  • Hi Hardik,

    Thanks for your reply.  I recreated SD card, and after I just loaded "load-hd-v4l2-firmware.sh", I saw the following during booting:

    With original load-hd-v4l2-firmware.sh

    Loading HDVPSS (V4L2) Firmware
    FIRMWARE: I2cInit will be done by M3
    FIRMWARE: Memory map bin file not passed
    Usage : firmware_loader <Processor Id> <Location of Firmware> <start|stop> [-mmap <memory_map_file>] [-i2c <0|1>]
    ===Mandatory arguments===
    <Processor Id>         0: DSP, 1: Video-M3, 2: Vpss-M3
    <Location of Firmware> firmware binary file
    <start|stop>           to start/stop the firmware
    ===Optional arguments===
    -mmap                  input memory map bin file name
    -i2c                   0: i2c init not done by M3, 1(default): i2c init done by M3
    FIRMWARE: isI2cInitRequiredOnM3: 1
    FIRMWARE: Default memory configuration is used
    MemCfg: DCMM (Dynamically Configurable Memory Map) Version :  2.1.2.1
    FIRMWARE: Memory Configuration status : In Progress
    FIRMWARE: 2 start Successful
    omap_i2c omap_i2c.2: controller timed out
    omap_i2c omap_i2c.2: controller timed out
    VPSS_DCTRL: setup 7375 filter failed
    omap_i2c omap_i2c.2: controller timed out
    VPSS_DCTRL: setup 7360 filter failed.
    tvp7002 2-005d: tvp7002 found @ 0x5d (OMAP I2C adapter)
    omap_i2c omap_i2c.2: controller timed out
    omap_i2c omap_i2c.2: controller timed out
    omap_i2c omap_i2c.2: controller timed out
    tvp7002 2-005d: Rev. cf detected.
    tvp7002 2-005d: Unknown revision detected.
    omap_i2c omap_i2c.2: controller timed out
    tvp7002 2-005d: Write: retry ... 0
    omap_i2c omap_i2c.2: controller timed out
    tvp7002 2-005d: Write: retry ... 1
    omap_i2c omap_i2c.2: controller timed out
    tvp7002 2-005d: Write: retry ... 0
    omap_i2c omap_i2c.2: controller timed out
    tvp7002 2-005d: Write: retry ... 1
    omap_i2c omap_i2c.2: controller timed out
    tvp7002 2-005d: Write: retry ... 2
    omap_i2c omap_i2c.2: controller timed out
    tvp7002 2-005d: Write: retry ... 3
    omap_i2c omap_i2c.2: controller timed out
    tvp7002 2-005d: Write: retry ... 4
    tvp7002 2-005d: TVP7002 write error -110
    tvp7002: probe of 2-005d failed with error -110
    ti81xxvin ti81xxvin: Error registering v4l2 subdevice
    HDMI W1 rev 2.0
    Starting system message bus: dbus.
    Starting telnet daemon.
    Starting syslogd/klogd: done
    Starting thttpd.
    Starting PVR
    Starting Matrix GUI application.

     _____                    _____           _         _   
    |  _  |___ ___ ___ ___   |  _  |___ ___  |_|___ ___| |_
    |     |  _| .'| . | . |  |   __|  _| . | | | -_|  _|  _|
    |__|__|_| |__,|_  |___|  |__|  |_| |___|_| |___|___|_|  
                  |___|                    |___|            

    And I could see all modules except tvp7002. I did lsmod and  i got these:

    root@dm816x-evm:~# lsmod
    Module                  Size  Used by
    bufferclass_ti          4950  0
    omaplfb                10794  0
    pvrsrvkm              155594  2 bufferclass_ti,omaplfb
    ti81xxhdmi             16163  0
    ti81xxvin              20388  0
    tvp7002                 6405  0
    ti81xxvo               21210  0
    ti81xxfb               21979  3
    vpss                   75009  5 omaplfb,ti81xxhdmi,ti81xxvin,ti81xxvo,ti81xxfb
    syslink              1119122  0
    ipv6                  209855  12
    root@dm816x-evm:~#

    But With modified load-hd-v4l2-firmware.sh, I could see the followings: (I added -i2c 0 )
            firmware_loader $HDVPSS_ID /usr/share/ti/ti-media-controller-utils/dm816x_hdvpss_v4l2.xem3 start -i2c 0
            modprobe vpss sbufaddr=0xBFB00000 mode=hdmi:1080p-60,dvo2:1080p-60,hdcomp:1080p-60 i2c_mode=0

    RCM Initialization completed
    SysLink version : 2.10.03.20
    SysLink module created on Date:Apr 29 2012 Time:20:45:11
    FIRMWARE: I2cInit will be done by M3
    FIRMWARE: Memory map bin file not passed
    Usage : firmware_loader <Processor Id> <Location of Firmware> <start|stop> [-mmap <memory_map_file>] [-i2c <0|1>]
    ===Mandatory arguments===
    <Processor Id>         0: DSP, 1: Video-M3, 2: Vpss-M3
    <Location of Firmware> firmware binary file
    <start|stop>           to start/stop the firmware
    ===Optional arguments===
    -mmap                  input memory map bin file name
    -i2c                   0: i2c init not done by M3, 1(default): i2c init done by M3
    FIRMWARE: isI2cInitRequiredOnM3: 1
    FIRMWARE: Default memory configuration is used
    MemCfg: DCMM (Dynamically Configurable Memory Map) Version :  2.1.2.1
    FIRMWARE: Memory Configuration status : In Progress
    FIRMWARE: 1 start Successful
    Loading HDVPSS (V4L2) Firmware
    FIRMWARE: Memory map bin file not passed
    Usage : firmware_loader <Processor Id> <Location of Firmware> <start|stop> [-mmap <memory_map_file>] [-i2c <0|1>]
    ===Mandatory arguments===
    <Processor Id>         0: DSP, 1: Video-M3, 2: Vpss-M3
    <Location of Firmware> firmware binary file
    <start|stop>           to start/stop the firmware
    ===Optional arguments===
    -mmap                  input memory map bin file name
    -i2c                   0: i2c init not done by M3, 1(default): i2c init done by M3
    FIRMWARE: isI2cInitRequiredOnM3: 0
    FIRMWARE: Default memory configuration is used
    MemCfg: DCMM (Dynamically Configurable Memory Map) Version :  2.1.2.1
    FIRMWARE: Memory Configuration status : In Progress
    FIRMWARE: 2 start Successful
    tvp7002 2-005d: tvp7002 found @ 0x5d (OMAP I2C adapter)
    tvp7002 2-005d: Rev. 02 detected.
    ti81xxvin ti81xxvin: registered sub device tvp7002
    ti81xxvin ti81xxvin: TI81xx HDVPSS Capture driver initialized
    HDMI W1 rev 2.0
    Starting system message bus: dbus.
    Starting telnet daemon.
    Starting syslogd/klogd: done
    Starting thttpd.
    Starting PVR
    Starting Matrix GUI application.

     _____                    _____           _         _   
    |  _  |___ ___ ___ ___   |  _  |___ ___  |_|___ ___| |_
    |     |  _| .'| . | . |  |   __|  _| . | | | -_|  _|  _|
    |__|__|_| |__,|_  |___|  |__|  |_| |___|_| |___|___|_|  
                  |___|                    |___|            

    Arago Project http://arago-project.org dm816x-evm ttyO2

    Arago 2011.09 dm816x-evm ttyO2

    dm816x-evm login: root
    root@dm816x-evm:~# lsmod
    Module                  Size  Used by
    bufferclass_ti          4950  0
    omaplfb                10794  0
    pvrsrvkm              155594  2 bufferclass_ti,omaplfb
    ti81xxhdmi             16163  0
    ti81xxvin              20388  0
    tvp7002                 6405  1
    ti81xxvo               21210  0
    ti81xxfb               21979  3
    vpss                   75009  5 omaplfb,ti81xxhdmi,ti81xxvin,ti81xxvo,ti81xxfb
    syslink              1119122  0
    ipv6                  209855  12
    root@dm816x-evm:~#

    As shown above, now it doesn't give any error. Does this mean if my v4l2 capture driver is now ready to operate correctly? Could you explain what these two lines indicate? I am quite new in this field.

            firmware_loader $HDVPSS_ID /usr/share/ti/ti-media-controller-utils/dm816x_hdvpss_v4l2.xem3 start -i2c 0
            modprobe vpss sbufaddr=0xBFB00000 mode=hdmi:1080p-60,dvo2:1080p-60,hdcomp:1080p-60 i2c_mode=0

    Q1. What is the difference between initialization done by M3 and not done by M3?
    Q2. What does it mean by loading vpss module with i2c_mode=0 and i2c_mode=1?

    The version of my SDK is the latest version 5.04.

  • Hi,

    Difference between two firmware is that one is controlling I2C from M3 and other is controlling i2c from A8, for V4L2 you need firmware which controls i2c from A8, "i2c_mode" defines whether i2c will be used from A8 or not. Two firmwares and i2c_mode controls where the i2c is accessed whether from M3 or A8.

    Regards,

    Hardik Shah

  • Thanks a lot for your explanation Hardik.

    Now it makes sense why there has to be -i2c 0 and i2c_mode=0.

            firmware_loader $HDVPSS_ID /usr/share/ti/ti-media-controller-utils/dm816x_hdvpss_v4l2.xem3 start -i2c 0
            modprobe vpss sbufaddr=0xBFB00000 mode=hdmi:1080p-60,dvo2:1080p-60,hdcomp:1080p-60 i2c_mode=0

    Thanks~!!