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.

How can I test tvp5147 capture ?

Other Parts Discussed in Thread: TVP5147, TLC59108, TVP7002, TVP5147M1, TVP5151

Hi,

I add TVP5147 driver onti8148evm, I modified the test demo sLoopback through S-VIDEO. But It will lead to kernel crack.

WARNING: at kernel/softirq.c:159 local_bh_enable+0x54/0xc4()
Modules linked in: bufferclass_ti omaplfb pvrsrvkm tlc59108 ti81xxhdmi ti81xxvin tvp514x tvp7002 ti81xxvo ti81xxfb vpss syslink ipv6
Backtrace:
[<c004abd0>] (dump_backtrace+0x0/0x110) from [<c03d7024>] (dump_stack+0x18/0x1c)
 r7:00000000 r6:c0073ca4 r5:c04ac1c0 r4:0000009f
[<c03d700c>] (dump_stack+0x0/0x1c) from [<c006e70c>] (warn_slowpath_common+0x54/0x6c)
[<c006e6b8>] (warn_slowpath_common+0x0/0x6c) from [<c006e748>] (warn_slowpath_null+0x24/0x2c)
 r9:c056517c r8:d708c800 r7:0000000e r6:d36bb900 r5:c053c898
r4:c05908c0
[<c006e724>] (warn_slowpath_null+0x0/0x2c) from [<c0073ca4>] (local_bh_enable+0x54/0xc4)
[<c0073c50>] (local_bh_enable+0x0/0xc4) from [<c0068584>] (omap_mbox_msg_send+0xcc/0xdc)
 r5:c053c898 r4:00000000
[<c00684b8>] (omap_mbox_msg_send+0x0/0xdc) from [<c0309b5c>] (notify_shm_drv_send_event+0x1c8/0x208)
 r5:00000001 r4:00000000
[<c0309994>] (notify_shm_drv_send_event+0x0/0x208) from [<c03072ec>] (notify_send_event+0x114/0x26c)
[<c03071d8>] (notify_send_event+0x0/0x26c) from [<bf18fa08>] (vps_fvid2_queue+0xe4/0x21c [vpss])
[<bf18f924>] (vps_fvid2_queue+0x0/0x21c [vpss]) from [<bf198ce0>] (capture_queue+0x50/0x64 [vpss])
 r8:bf1d97e4 r7:60000013 r6:cf443b00 r5:00000000 r4:d1c74400
[<bf198c90>] (capture_queue+0x0/0x64 [vpss]) from [<bf1d847c>] (ti81xxvin_buffer_queue+0x9c/0xe8 [ti81xxvin])
 r5:d1c6d000 r4:d1c74400
[<bf1d83e0>] (ti81xxvin_buffer_queue+0x0/0xe8 [ti81xxvin]) from [<c02e0a3c>] (videobuf_streamon+0x80/0xd0)
 r7:60000013 r6:d1c6d1c4 r5:d1c6d104 r4:cf443b00
[<c02e09bc>] (videobuf_streamon+0x0/0xd0) from [<bf1d7ea8>] (vidioc_streamon+0x230/0x3ec [ti81xxvin])
 r7:d23e7600 r6:00000001 r5:d1c6d000 r4:d1c6d104
[<bf1d7c78>] (vidioc_streamon+0x0/0x3ec [ti81xxvin]) from [<c02d6344>] (__video_do_ioctl+0x1618/0x3f34)
 r6:40045612 r5:00000000 r4:00000001
[<c02d4d2c>] (__video_do_ioctl+0x0/0x3f34) from [<c02d4b1c>] (__video_usercopy+0x2e4/0x428)
[<c02d4838>] (__video_usercopy+0x0/0x428) from [<c02d4c90>] (video_ioctl2+0x30/0x38)
[<c02d4c60>] (video_ioctl2+0x0/0x38) from [<c02d3cc0>] (v4l2_ioctl+0xe8/0x11c)
 r5:d23e7600 r4:cf443f00
[<c02d3bd8>] (v4l2_ioctl+0x0/0x11c) from [<c00d56c0>] (vfs_ioctl+0x28/0x44)
 r9:cf44a000 r8:becc1ca4 r7:00000003 r6:00000003 r5:cf443f00
r4:00000000
[<c00d5698>] (vfs_ioctl+0x0/0x44) from [<c00d5dd0>] (do_vfs_ioctl+0x500/0x540)
[<c00d58d0>] (do_vfs_ioctl+0x0/0x540) from [<c00d5e68>] (sys_ioctl+0x58/0x7c)
[<c00d5e10>] (sys_ioctl+0x0/0x7c) from [<c0046e00>] (ret_fast_syscall+0x0/0x30)
 r8:c0046fa8 r7:00000036 r6:000124d0 r5:0001215c r4:becc1ca4
---[ end trace 4bc439fcb875fbfc ]---

So I think I couldn't use the sLoopback demo. Or maybe my driver have some errors.

What material or demo I can  refer to for test tvp5147 ? 

 

THANKS

  • Hi,

    Please refer to the following appnote on how to add external decoders. Crash is not seen in decoder or v4l2 capture so I think something else is goofed up.

    http://processors.wiki.ti.com/index.php/DM81xx_AM38xx_Adding_External_Decoders_to_V4L2_Capture_Driver

  • Hi HardikShah,

    Thanks for your reply,

    Now,  tvp5147  work through VIP1 PortB, use the demo saLoopBackFbdev, But when creat capture there is a error -- "creat handle is NULL".

    VPSS_CAPTURE: create capture3
    VPSS_SHRBUF: FOUND 0xbfb14000, end 0xbfd00000, map vir 0xdcc14000 size 4096
    VPSS_FVID2: Fvid2 handle 0x00000000 with notifyno 13 within 0 ms
    VPSS_FVID2: create handle is NULL
    VPSS_SHRBUF: free mem paddr 0xbfb14000 vaddr 0xdcc14000 size 4096
    ti81xxvin ti81xxvin: ti81xxvin_vps_create failed
    ti81xxvin ti81xxvin: Vps create failed

    The tvp5147 reg R/W  ok. Could you give me some suggestions about this issue.

    Thanks.

     

  • Hi,

    This can happen in case parameters passed to FVID2_create are not proper. Can you please check those parameters and paste it here so that we can see which parameters is going wrong.

  • Hi,

    Thanks for you suggestion, I reset the parameters and the capture can work now.

    I use the demo "saLoopBackFbdev", through CVBS input, but  the image lose color with wrong resolution.

    I check the parameter.

     1. in app

         pixelformat=V4L2_PIX_FMT_UYVY

     2.  in struct hdvpss_capture_sdev_info[] about the tvp5147 config setting.

        .video_if_mode = VPS_CAPT_VIDEO_IF_MODE_8BIT,

        .input_data_format = FVID2_DF_YUV422I_UYVY,

    3. Set tvp514_dev

       .current_std = STD_PAL_BDGHIN,

    So I don't know where I should check, the app or vpss configuration or tvp5147 reg setting.

  • Hi all,

    Hi sunny li, I got the same thing with your previous problem.

    In my application, I use decoder TVP5147 connected with HDVPSS VIP1 Port B
    And here is vps_fvid2_ctrl parameter which function vps_fvid2_create used to send notify to VPSS-M3 core:

    ========================================
    VPSS_FVID2: firm_ver 0x1000137
    VPSS_FVID2: fvid2handle 0x0
    VPSS_FVID2: rmprocid 0x2
    VPSS_FVID2: notifyno 0x0
    VPSS_FVID2: lineid 0x0
    VPSS_FVID2: fcrprms_phy 0xbfb14000
    VPSS_FVID2: fdltprms_phy 0xbfb14030
    VPSS_FVID2: fctrlprms_phy 0xbfb14044
    VPSS_FVID2: fqprms_phy 0xbfb14060
    VPSS_FVID2: fdqprms_phy 0xbfb14078
    VPSS_FVID2: cbprms_phy 0xbfb14094
    VPSS_FVID2: cmdprms_phy 0xbfb140d4
    VPSS_FVID2: ecbprms_phy 0xbfb140b4
    VPSS_FVID2: pinfo 0xbfb14000
    VPSS_FVID2: pinfo paddr 0xbfb14000
    VPSS_FVID2: pinfo vaddr 0xe7814000
    VPSS_FVID2: pinfo size 0x1000
    VPSS_FVID2: fcrprms 0xe7814000
    VPSS_FVID2: fcrprms command 0x3
    VPSS_FVID2: fcrprms reserved 0x0
    VPSS_FVID2: fcrprms hosttaskinstance 0x1
    VPSS_FVID2: fcrprms syslnkntyno 0x0
    VPSS_FVID2: fcrprms fvid2handle 0xaaaaaaaa
    VPSS_FVID2: fcrprms drvid 0x100
    VPSS_FVID2: fcrprms instanceid 0x3
    VPSS_FVID2: fcrprms createargs 0xbfc0381c
    VPSS_FVID2: fcrprms createstatusargs 0xbfc03a68
    VPSS_FVID2: fcrprms cbparams 0xbfc03abc
    VPSS_FVID2: fcrprms ioreqcb 0xbfb14094
    VPSS_FVID2: fcrprms errcb 0xbfb140b4
    VPSS_FVID2: fdltprms 0xe7814030
    VPSS_FVID2: fdltprms command 0x0
    VPSS_FVID2: fdltprms reserved 0x0
    VPSS_FVID2: fdltprms returnvalue 0x0
    VPSS_FVID2: fdltprms fvid2handle 0x0
    VPSS_FVID2: fdltprms deleteargs 0x0
    VPSS_FVID2: fctrlprms 0xe7814044
    VPSS_FVID2: fctrlprms command 0x0
    VPSS_FVID2: fctrlprms reserved 0x0
    VPSS_FVID2: fctrlprms returnvalue 0x0
    VPSS_FVID2: fctrlprms fvid2handle 0x0
    VPSS_FVID2: fctrlprms cmd 0x0
    VPSS_FVID2: fctrlprms cmdargs 0x0
    VPSS_FVID2: fctrlprms cmdstatusargs 0x0
    VPSS_FVID2: fqprms 0xe7814060
    VPSS_FVID2: fqprms command 0x0
    VPSS_FVID2: fqprms reserved 0x0
    VPSS_FVID2: fqprms returnvalue 0x0
    VPSS_FVID2: fqprms fvid2handle 0x0
    VPSS_FVID2: fqprms framelist 0x0
    VPSS_FVID2: fqprms streamid 0x0
    VPSS_FVID2: fdqprms 0xe7814078
    VPSS_FVID2: fdqprms command 0x0
    VPSS_FVID2: fdqprms reserved 0x0
    VPSS_FVID2: fdqprms returnvalue 0x0
    VPSS_FVID2: fdqprms fvid2handle 0x0
    VPSS_FVID2: fdqprms framelist 0x0
    VPSS_FVID2: fdqprms streamid 0x0
    VPSS_FVID2: fdqprms timeout 0x0
    VPSS_FVID2: cbprms 0xe7814094
    VPSS_FVID2: cbprms cbtype 0x0
    VPSS_FVID2: cbprms syslnkntyno 0x0
    VPSS_FVID2: cbprms syslnkprocid 0x0
    VPSS_FVID2: cbprms callbackrtnvalue 0x0
    VPSS_FVID2: cbprms fvid2handle 0x0
    VPSS_FVID2: cbprms appcallback 0x0
    VPSS_FVID2: cbprms appdata 0x0
    VPSS_FVID2: cbprms reserved 0x0
    VPSS_FVID2: cmdprms 0xe78140d4
    VPSS_FVID2: cmdprms cmdtype 0x1
    VPSS_FVID2: cmdprms yieldafterncmds 0x0
    VPSS_FVID2: cmdprms syslnkprocid 0x0
    VPSS_FVID2: cmdprms syslnkntyno 0x0
    VPSS_FVID2: cmdprms reserved 0x0
    VPSS_FVID2: cmdprms returnvalue 0x0
    VPSS_FVID2: cmdprms noofcommands 0x0
    VPSS_FVID2: cmdprms simplexcmdarg 0xbfb14000
    VPSS_FVID2: cmdprms compositecmdargs 0x0
    VPSS_FVID2: ecbprms 0xe78140b4
    VPSS_FVID2: ecbprms cbtype 0x0
    VPSS_FVID2: ecbprms syslnkntyno 0x0
    VPSS_FVID2: ecbprms syslnkprocid 0x0
    VPSS_FVID2: ecbprms callbackrtnvalue 0x0
    VPSS_FVID2: ecbprms fvid2handle 0x0
    VPSS_FVID2: ecbprms appcallback 0x0
    VPSS_FVID2: ecbprms errlist 0x0
    VPSS_FVID2: ecbprms reserved 0x0

    ===========================================

    I couldn't find any problem with those values. Did I miss something here?

  • Hi,

    It seems your buffer pitch and width are not correct. Print bytesperline in S_FMT and see if its correct.

  • Hi Hardik ,

    I am having an issue with 8-bit bt.656 capture on VIP2 PORTB using OMX application . My app has got only capture (VFCC ) component ,it captures the bt.656 data and stores into a yuv file . bt.656 8-bit capture on VIP1 PORTA works fine without any problems .

    I am using EZSDK 5.04 and working on a DM8148 custom board . we have got an FPGA feeding the bt.656 data to the DM8148 on our custom board .

    The problem is that OMX VFCC is not capturing frames on VIP2 PORTB ,I can see that input video is getting detected in VIP parser ( 0x48105a70 = 02D00120) ,this rules out the Pin muxing issue .

    I have tried capturing 8-bit bt.656 data on both VIP1 PORTB and VIP2 PORTB , Can you tell me what could be the problem ? we have got hdvpss sources ,I can modify the firmware if there are any firmware changes for the PORTB issue .

    Please see the below link for the post that I have started regarding PORTB issue using OMX application .

    http://e2e.ti.com/support/dsp/davinci_digital_media_processors/f/716/t/209347.aspx

    Thanks,

    N Sivaramkrishna ,

    Senior Software Engineer,

    Mistral Solutions Pvt Ltd .

  • Hi Sivaramkrishna,

    Thank for you help. But I'm not using OpenMAX for my application.
    I used the prebuilt firmware in EZSDK (dm814x_hdvpss_v4l2.xem3), so it's hard to figure out what happened on M3 core.

  • Hi,

    I am not getting the question fully. If you have already got HDVPSS sources you can try running HDVPSS application on VS board where it shows the VIP1 and VIP2 both portB capture. You can see the create time values in that application and make sure that you are passing same values in your application. I am not much aware of OMX. But i dont think OMX supports 8-bit capture without change in M3 binary.

  • Hi Hardik ,

    We already got chains application working for bt.656 capture on VIP2 PORTB on our custom board . I tried passing the same parameters in my OMX application but the OMX VFCC component is not capturing any frames .

    I am able to capture bt.656 8-bit data on VIP1 PORTA using OMX application ,which means there is some problem with bt.656 8-bit  capture on PORTB in the OMX framework . Can you please look into the issue ?  Please forward this query to the concerned TI expert  if you are not aware of OMX  .

    Please see the below link for the post that i have started regarding bt.656 8-bit capture on PORTB .

    http://e2e.ti.com/support/dsp/davinci_digital_media_processors/f/716/t/209347.aspx

    Thanks,

    N Sivaramkrishna ,

    Senior Software Engineer,

    Mistral solutions Pvt Ltd .

  • Hi VVT,

    Can you post your working v4l2  code for capture on VIP1 PORTB ? I can see that you are able to capture using TVP5147 on VIP1 PORTB but got some issues . I will try out at my end and see if i can capture on my board .

    Thanks .

  • Hi  Sivaramkrishna Neeruganti,


    Thank for your response.

    I'm using EVM8148(Mistral) and EZSDK5.5.1.4.

    My task is geting video input from Composite Video TVP5147, this video decoder is connected to VIP1 PORTB.
    Referring to this patch, I modified kernel and ti81xxvin in Linux PSP package (drivers/media/video/ti81xx).
    But I got a problem with HDVPSS after all.

    //From dmesg command
    VPSS_CAPTURE: create capture3
    VPSS_SHRBUF: FOUND 0xbfb14000, end 0xbfd00000, map vir 0xe7814000 size 4096
    VPSS_FVID2: Fvid2 handle 0x00000000 with notifyno 13 within 0 ms
    VPSS_FVID2: create handle is NULL
    VPSS_SHRBUF: free mem paddr 0xbfb14000 vaddr 0xe7814000 size 4096
    ti81xxvin ti81xxvin: ti81xxvin_vps_create failed
    ti81xxvin ti81xxvin: Vps create failed

    //Debuging from my app (based on saLoopBackFbdev.c)
    CMEM version = 0x3000100
    CMEM memory block 0: phys start = 0x90000000, size = 0x4200000
    ...done, 22118400 bytes allocated
    myLoopBack: Call initCapture
    CAPTURE_DEVICE = /dev/video6
    Driver Name: ti81xxvin
    Driver bus info: TI81xx Platform
    Driver is capable of doing capture
    myLoopBack:
     Mode set is 480p@59.94
    myLoopBack: Call setupCapture
    myLoopBack: In setupCapture
    myLoopBack: width = 720
    myLoopBack: height = 480
    myLoopBack: bytesperline = 1440
    myLoopBack: sizeimage = 691200
    myLoopBack: pixelformat = V4L2_PIX_FMT_YUYV
    =============================================================
    Capture Format:
    =============================================================
    fmt.type                 = 1
    fmt.width                = 720
    fmt.height               = 480
    fmt.pixelformat  = 1448695129
    fmt.bytesperline         = 1440
    fmt.sizeimage    = 691200
    =============================================================
    myLoopBack: Out setupCapture
    myLoopBack: Call queueCaptureBuffers
    myLoopBack: Call startCapture
    VIDIOC_STREAMON
    : Invalid argument
    ...done, freeing heap blocks...

    Here 4276.test_tvp5147.rar is my working code (includes patch files, testing app, load-hd-firmware.sh, and boot env).


    Thank for your help.

  • Hi,

    I reset the parameters by changing capture configration"VIP1 Port B"  to "VIP1 Port A", and my "handle 0" issue had been solved.

     

  • Hi Sunny,

    Can you please answer the below questions ?

    Were you able to get the capture handle for VIP1 PORTB capture ?

    if you have got the handle for VIP1 PORTB ,were you able to capture frames on VIP1 PORTB ?

    Thanks .

  • Hi Sunny Li,

    I changed capture configuration from VIP1 PortB to VIP1 PortA, but it didn't work.
    I did the following steps to change the capture configuration

    In \arch\arm\mach-omap2\ti81xx_vpss.c
    1. Use VPS_VIP_CTRL_CHAN_SEL_7_0 for ti81xxvin_subdev_info of TVP5147
    2. Change .inst_config[2] of static struct ti81xxvin_config ti81xx_hsvpss_capture_cfg

    Maybe I did something wrong. Can you show me how you change capture configuration?

  • Hi,

    I can't get the handle for VIP1_PORTB capture.

    I get frame by setting capture parameter VIP1 PORTA.

    Thanks

  • Hi Sunny,

    Thanks for your response.
    I changed, but it didn't work. Can you show me how you set capture parameter VIP1 PORTA.

  • Hi vvt,

    I  tried to get video input from Composite Video TVP5147, i follow your  work code 4276.test_tvp5147.rar  to config my ezsdk modules, and Run the app myLookBack which by you modifies.  But  i get  the  error message from the Fvid2.

    CMEM version = 0x3000100
    CMEM memory block 0: phys start = 0x90000000, size = 0x4200000
    ...done, 22118400 bytes allocated
    myLoopBack: Call initCapture
    CAPTURE_DEVICE = /dev/video6
    Driver Name: ti81xxvin
    Driver bus info: TI81xx Platform
    Driver is capable of doing capture
    myLoopBack:
     Mode set is 480p@59.94
    myLoopBack: Call setupCapture
    myLoopBack: In setupCapture
    myLoopBack: width = 720
    myLoopBack: height = 480
    myLoopBack: bytesperline = 1440
    myLoopBack: sizeimage = 691200
    myLoopBack: pixelformat = V4L2_PIX_FMT_YUYV
    =============================================================
    Capture Format:
    =============================================================
    fmt.type                 = 1
    fmt.width                = 720
    fmt.height               = 480
    fmt.pixelformat  = 1448695129
    fmt.bytesperline         = 1440
    fmt.sizeimage    = 691200
    =============================================================
    myLoopBack: Out setupCapture
    myLoopBack: Call queueCaptureBuffers
    myLoopBack: Call startCapture
    tvp514x 3-005c: tvp5147m1 (Version - 0x07) found at 0xb8 (OMAP I2C adapter)
    VPSS_FVID2: create handle is NULL
    ti81xxvin ti81xxvin: ti81xxvin_vps_create failed
    ti81xxvin ti81xxvin: Vps create failed
    VIDIOC_STREAMON
    : Invalid argument
    ...done, freeing heap blocks..

    i find the error is event by call do_gettimeofday(&stime); function which on lin: 282 in fvid2.c  . The fctrl->fcrprms->fvid2handle be set to 0x00000000

    Can you give me some suggest to help me work it ?

    I'm using EVM8148(Rev D) and EZSDK5.5.1.4 too

    more detail 

    0640.teraterm.log
    
    U-Boot 2010.06 (Sep 15 2011 - 17:02:10)
    
    TI8148-GP rev 2.1
    
    ARM clk: 600MHz
    DDR clk: 400MHz
    
    DRAM:  2 GiB
    NAND:  HW ECC Hamming Code selected
    256 MiB
    Using default environment
    
    The 2nd stage U-Boot will now be auto-loaded
    Please do not interrupt the countdown till TI8148_EVM prompt if 2nd stage is already flashed
    Hit any key to stop autoboot:  3  2  1  0 
    
    NAND read: device 0 offset 0x20000, size 0x40000
     262144 bytes read: OK
    ## Starting application at 0x81000000 ...
    
    
    U-Boot 2010.06 (Sep 15 2011 - 17:03:00)
    
    TI8148-GP rev 2.1
    
    ARM clk: 600MHz
    DDR clk: 400MHz
    
    I2C:   ready
    DRAM:  2 GiB
    NAND:  HW ECC Hamming Code selected
    256 MiB
                              .:;rrr;;.                   
                        ,5#@@@@#####@@@@@@#2,             
                     ,A@@@hi;;;r5;;;;r;rrSG@@@A,          
                   r@@#i;:;s222hG;rrsrrrrrr;ri#@@r        
                 :@@hr:r;SG3ssrr2r;rrsrsrsrsrr;rh@@:      
                B@H;;rr;3Hs;rrr;sr;;rrsrsrsrsrsr;;H@B     
               @@s:rrs;5#;;rrrr;r#@H:;;rrsrsrsrsrr:s@@    
              @@;;srs&X#9;r;r;;,2@@@rrr:;;rrsrsrsrr;;@@   
             @@;;rrsrrs@MB#@@@@@###@@@@@@#rsrsrsrsrr;;@@  
            G@r;rrsrsr;#X;SX25Ss#@@#M@#9H9rrsrsrsrsrs;r@G 
            @9:srsrsrs;2@;:;;:.X@@@@@H::;rrsrsrsrsrsrr:3@ 
           X@;rrsrsrsrr;XAi;;:&@@#@Bs:rrsrsrsrsrsrsrsrr;@X
           @#;rsrsrsrsrr;r2ir@@@###::rrsrsrsrsrsrsrsrsr:@@
           @A:rrsrsrsrr;:2@29@@M@@@;:;rrrrsrsrsrsrsrsrs;H@
           @&;rsrsrsrr;A@@@@@@###@@@s::;:;;rrsrsrsrsrsr;G@
           @#:rrsrsrsr;G@5Hr25@@@#@@@#9XG9s:rrrrsrsrsrs:#@
           M@;rsrsrsrs;r@&#;::S@@@@@@@M@@@@Grr:;rsrsrsr;@#
           :@s;rsrsrsrr:M#Msrr;;&#@@@@@@@@@@H@@5;rsrsr;s@,
            @@:rrsrsrsr;S@rrrsr;:;r3MH@@#@M5,S@@irrsrr:@@ 
             @A:rrsrsrsrrrrrsrsrrr;::;@##@r:;rH@h;srr:H@  
             ;@9:rrsrsrsrrrsrsrsrsr;,S@Hi@i:;s;MX;rr:h@;  
              r@B:rrrrsrsrsrsrsrr;;sA@#i,i@h;r;S5;r:H@r   
               ,@@r;rrrsrsrsrsrr;2BM3r:;r:G@:rrr;;r@@,    
                 B@Mr;rrrrsrsrsr@@S;;;rrr:5M;rr;rM@H      
                  .@@@i;;rrrrsrs2i;rrrrr;r@M:;i@@@.       
                    .A@@#5r;;;r;;;rrr;r:r#AsM@@H.         
                       ;&@@@@MhXS5i5SX9B@@@@G;            
                           :ihM#@@@@@##hs,                
    
    Net:   Detected MACID:0:40:c7:1a:2b:3d
    cpsw
    Hit any key to stop autoboot:  3  2  1  0 
    link up on port 0, speed 100, full duplex
    Using cpsw device
    TFTP from server 192.168.12.105; our IP address is 192.168.12.106
    Filename 'uImage_DM8148_EZSDK_05040011'.
    Load address: 0x81000000
    Loading: *#################################################################
    	 #################################################################
    	 #################################################################
    	 #################################################################
    	 #################################################################
    	 #################################################################
    	 #################################################################
    	 #################################################################
    	 ###########################
    done
    Bytes transferred = 2796536 (2aabf8 hex)
    ## Booting kernel from Legacy Image at 81000000 ...
       Image Name:   Arago/2.6.37-psp04.04.00.01/dm81
       Image Type:   ARM Linux Kernel Image (uncompressed)
       Data Size:    2796472 Bytes = 2.7 MiB
       Load Address: 80008000
       Entry Point:  80008000
       Verifying Checksum ... OK
       Loading Kernel Image ... OK
    OK
    
    Starting kernel ...
    
    Uncompressing Linux... done, booting the kernel.
    Linux version 2.6.37 (x0029463@swubn01) (gcc version 4.3.3 (Sourcery G++ Lite 2009q1-203) ) #1 Mon Apr 30 01:00:10 IST 2012
    CPU: ARMv7 Processor [413fc082] revision 2 (ARMv7), cr=10c53c7f
    CPU: VIPT nonaliasing data cache, VIPT aliasing instruction cache
    Machine: ti8148evm
    bootconsole [earlycon0] enabled
    vram size = 52428800 at 0x0
    reserved size = 52428800 at 0x0
    FB: Reserving 52428800 bytes SDRAM for VRAM
    Memory policy: ECC disabled, Data cache writeback
    OMAP chip is TI8148 2.0
    SRAM: Mapped pa 0x402f1000 to va 0xfe400000 size: 0xf000
    Built 1 zonelists in Zone order, mobility grouping on.  Total pages: 52224
    Kernel command line: console=ttyO0,115200n8 rootwait rw mem=256M earlyprintk notifyk.vpssm3_sva=0xBF900000 vram=50M ti814xfb.vram=0:16M,1:16M,2:6M root=/dev/nfs nfsroot=192.168.12.105:/home/ricky/TI/DM8148/05.04.00.11/filesystem/targetfs ip=192.168.12.106
    PID hash table entries: 1024 (order: 0, 4096 bytes)
    Dentry cache hash table entries: 32768 (order: 5, 131072 bytes)
    Inode-cache hash table entries: 16384 (order: 4, 65536 bytes)
    Memory: 206MB = 206MB total
    Memory: 202680k/202680k available, 59464k reserved, 0K highmem
    Virtual kernel memory layout:
        vector  : 0xffff0000 - 0xffff1000   (   4 kB)
        fixmap  : 0xfff00000 - 0xfffe0000   ( 896 kB)
        DMA     : 0xffc00000 - 0xffe00000   (   2 MB)
        vmalloc : 0xd0800000 - 0xf8000000   ( 632 MB)
        lowmem  : 0xc0000000 - 0xd0000000   ( 256 MB)
        pkmap   : 0xbfe00000 - 0xc0000000   (   2 MB)
        modules : 0xbf000000 - 0xbfe00000   (  14 MB)
          .init : 0xc0008000 - 0xc003d000   ( 212 kB)
          .text : 0xc003d000 - 0xc0549000   (5168 kB)
          .data : 0xc054a000 - 0xc0597200   ( 309 kB)
    SLUB: Genslabs=11, HWalign=64, Order=0-3, MinObjects=0, CPUs=1, Nodes=1
    NR_IRQS:407
    IRQ: Found an INTC at 0xfa200000 (revision 5.0) with 128 interrupts
    Total of 128 interrupts on 1 active controller
    GPMC revision 6.0
    Trying to install interrupt handler for IRQ400
    Trying to install interrupt handler for IRQ401
    Trying to install interrupt handler for IRQ402
    Trying to install interrupt handler for IRQ403
    Trying to install interrupt handler for IRQ404
    Trying to install interrupt handler for IRQ405
    Trying to install interrupt handler for IRQ406
    Trying to install type control for IRQ407
    Trying to set irq flags for IRQ407
    OMAP clockevent source: GPTIMER1 at 20000000 Hz
    Console: colour dummy device 80x30
    Calibrating delay loop... 599.65 BogoMIPS (lpj=2998272)
    pid_max: default: 32768 minimum: 301
    Security Framework initialized
    Mount-cache hash table entries: 512
    CPU: Testing write buffer coherency: ok
    devtmpfs: initialized
    omap_voltage_early_init: voltage driver support not added
    regulator: core version 0.5
    regulator: dummy: 
    NET: Registered protocol family 16
    omap_voltage_domain_lookup: Voltage driver init not yet happened.Faulting!
    omap_voltage_add_dev: VDD specified does not exist!
    OMAP GPIO hardware version 0.1
    OMAP GPIO hardware version 0.1
    OMAP GPIO hardware version 0.1
    OMAP GPIO hardware version 0.1
    omap_mux_init: Add partition: #1: core, flags: 4
    NOR: Can't request GPMC CS
    Debugfs: Only enabling/disabling deep sleep and wakeup timer is supported now
    registered ti81xx_vpss device
    registered ti81xx_vidout device
    registered ti81xx on-chip HDMI device
    registered ti81xx_fb device
    registered ti81xx_vin device
    ti81xx_pcie: Invoking PCI BIOS...
    ti81xx_pcie: Setting up Host Controller...
    ti81xx_pcie: Register base mapped @0xd0820000
    ti81xx_pcie: Starting PCI scan...
    PCI: bus0: Fast back to back transfers enabled
    bio: create slab <bio-0> at 0
    vgaarb: loaded
    SCSI subsystem initialized
    usbcore: registered new interface driver usbfs
    usbcore: registered new interface driver hub
    usbcore: registered new device driver usb
    USBSS revision 4ea2080b
    registerd cppi-dma Intr @ IRQ 17
    Cppi41 Init Done
    omap_i2c omap_i2c.1: bus 1 rev4.0 at 100 kHz
    pcf857x 1-0021: gpios 128..143 on a pcf8575
    regulator: VRTC: 1800 mV 
    regulator: VIO: 1500 mV 
    regulator: VDD1: 600 <--> 1500 mV at 1200 mV 
    regulator: VDD2: 600 <--> 1500 mV at 1200 mV 
    regulator: VDDCTRL: 600 <--> 1400 mV at 1200 mV 
    regulator: LDO1: 1100 <--> 3300 mV at 1800 mV 
    regulator: LDO2: 1100 <--> 3300 mV at 1800 mV 
    regulator: LDO3: 1100 <--> 3300 mV at 3300 mV 
    regulator: LDO4: 1100 <--> 3300 mV at 1800 mV 
    regulator: LDO5: 1100 <--> 3300 mV at 3300 mV 
    regulator: LDO6: 1100 <--> 3300 mV at 3300 mV 
    regulator: LDO7: 1100 <--> 3300 mV at 3300 mV 
    regulator: LDO8: 1100 <--> 3300 mV at 1800 mV 
    tps65910 1-002d: No interrupt support, no core IRQ
    omap_i2c omap_i2c.3: bus 3 rev4.0 at 100 kHz
    Advanced Linux Sound Architecture Driver Version 1.0.23.
    Switching to clocksource gp timer
    musb-hdrc: version 6.0, host, debug=0
    musb-hdrc musb-hdrc.0: dma type: dma-cppi41
    MUSB controller-0 revision 4ea20800
    musb-hdrc musb-hdrc.0: MUSB HDRC host driver
    musb-hdrc musb-hdrc.0: new USB bus registered, assigned bus number 1
    usb usb1: New USB device found, idVendor=1d6b, idProduct=0002
    usb usb1: New USB device strings: Mfr=3, Product=2, SerialNumber=1
    usb usb1: Product: MUSB HDRC host driver
    usb usb1: Manufacturer: Linux 2.6.37 musb-hcd
    usb usb1: SerialNumber: musb-hdrc.0
    hub 1-0:1.0: USB hub found
    hub 1-0:1.0: 1 port detected
    musb-hdrc musb-hdrc.0: USB Host mode controller at d081e000 using DMA, IRQ 18
    musb-hdrc musb-hdrc.1: dma type: dma-cppi41
    MUSB controller-1 revision 4ea20800
    musb-hdrc musb-hdrc.1: MUSB HDRC host driver
    musb-hdrc musb-hdrc.1: new USB bus registered, assigned bus number 2
    usb usb2: New USB device found, idVendor=1d6b, idProduct=0002
    usb usb2: New USB device strings: Mfr=3, Product=2, SerialNumber=1
    usb usb2: Product: MUSB HDRC host driver
    usb usb2: Manufacturer: Linux 2.6.37 musb-hcd
    usb usb2: SerialNumber: musb-hdrc.1
    hub 2-0:1.0: USB hub found
    hub 2-0:1.0: 1 port detected
    musb-hdrc musb-hdrc.1: USB Host mode controller at d0826800 using DMA, IRQ 19
    NET: Registered protocol family 2
    IP route cache hash table entries: 2048 (order: 1, 8192 bytes)
    TCP established hash table entries: 8192 (order: 4, 65536 bytes)
    TCP bind hash table entries: 8192 (order: 3, 32768 bytes)
    TCP: Hash tables configured (established 8192 bind 8192)
    TCP reno registered
    UDP hash table entries: 256 (order: 0, 4096 bytes)
    UDP-Lite hash table entries: 256 (order: 0, 4096 bytes)
    NET: Registered protocol family 1
    RPC: Registered udp transport module.
    RPC: Registered tcp transport module.
    RPC: Registered tcp NFSv4.1 backchannel transport module.
    NetWinder Floating Point Emulator V0.97 (double precision)
    PMU: registered new PMU device of type 0
    omap-iommu omap-iommu.0: ducati registered
    omap-iommu omap-iommu.1: sys registered
    JFFS2 version 2.2. (NAND) c 2001-2006 Red Hat, Inc.
    msgmni has been set to 395
    io scheduler noop registered
    io scheduler deadline registered
    io scheduler cfq registered (default)
    Serial: 8250/16550 driver, 4 ports, IRQ sharing enabled
    omap_uart.0: ttyO0 at MMIO 0x48020000 (irq = 72) is a OMAP UART0
    console [ttyO0] enabled, bootconsole disabled
    console [ttyO0] enabled, bootconsole disabled
    omap_uart.1: ttyO1 at MMIO 0x48022000 (irq = 73) is a OMAP UART1
    omap_uart.2: ttyO2 at MMIO 0x48024000 (irq = 74) is a OMAP UART2
    omap_uart.3: ttyO3 at MMIO 0x481a6000 (irq = 44) is a OMAP UART3
    omap_uart.4: ttyO4 at MMIO 0x481a8000 (irq = 45) is a OMAP UART4
    omap_uart.5: ttyO5 at MMIO 0x481aa000 (irq = 46) is a OMAP UART5
    brd: module loaded
    loop: module loaded
    ahci ahci.0: forcing PORTS_IMPL to 0x1
    ahci ahci.0: AHCI 0001.0300 32 slots 1 ports 3 Gbps 0x1 impl platform mode
    ahci ahci.0: flags: ncq sntf pm led clo only pmp pio slum part ccc apst 
    scsi0 : ahci_platform
    ata1: SATA max UDMA/133 mmio [mem 0x4a140000-0x4a150fff] port 0x100 irq 16
    omap2-nand driver initializing
    ONFI flash detected
    NAND device: Manufacturer ID: 0x2c, Chip ID: 0xca (Micron )
    Creating 6 MTD partitions on "omap2-nand.0":
    0x000000000000-0x000000020000 : "U-Boot-min"
    0x000000020000-0x000000260000 : "U-Boot"
    0x000000260000-0x000000280000 : "U-Boot Env"
    0x000000280000-0x0000006c0000 : "Kernel"
    0x0000006c0000-0x00000cee0000 : "File System"
    0x00000cee0000-0x000010000000 : "Reserved"
    davinci_mdio davinci_mdio.0: davinci mdio revision 1.6
    davinci_mdio davinci_mdio.0: detected phy mask fffffffc
    davinci_mdio.0: probed
    davinci_mdio davinci_mdio.0: phy[0]: device 0:00, driver unknown
    davinci_mdio davinci_mdio.0: phy[1]: device 0:01, driver unknown
    CAN device driver interface
    CAN bus driver for Bosch D_CAN controller 1.0
    d_can d_can: d_can device registered (irq=52, irq_obj=53)
    usbcore: registered new interface driver cdc_ether
    usbcore: registered new interface driver dm9601
    usbcore: registered new interface driver cdc_acm
    cdc_acm: v0.26:USB Abstract Control Model driver for USB modems and ISDN adapters
    Initializing USB Mass Storage driver...
    usbcore: registered new interface driver usb-storage
    USB Mass Storage support registered.
    mice: PS/2 mouse device common for all mice
    ata1: SATA link down (SStatus 0 SControl 300)
    qt602240_ts 1-004a: Family ID: 128 Variant ID: 1 Version: 22 Build: 171
    qt602240_ts 1-004a: Matrix X Size: 18 Matrix Y Size: 12 Object Num: 17
    input: AT42QT602240/ATMXT224 Touchscreen as /devices/platform/omap/omap_i2c.1/i2c-1/1-004a/input/input0
    omap_rtc omap_rtc: rtc core: registered omap_rtc as rtc0
    i2c /dev entries driver
    Linux video capture interface: v2.00
    usbcore: registered new interface driver uvcvideo
    USB Video Class driver (v1.0.0)
    OMAP Watchdog Timer Rev 0x00: initial timeout 60 sec
    usbcore: registered new interface driver usbhid
    usbhid: USB HID core driver
    notify_init : notify drivercreated  for  remote proc id 2 at physical Address 0xbf900000
    usbcore: registered new interface driver snd-usb-audio
    asoc: tlv320aic3x-hifi <-> davinci-mcasp.2 mapping ok
    ALSA device list:
      #0: TI81XX EVM
    nf_conntrack version 0.5.0 (3166 buckets, 12664 max)
    ip_tables: (C) 2000-2006 Netfilter Core Team
    TCP cubic registered
    NET: Registered protocol family 17
    can: controller area network core (rev 20090105 abi 8)
    NET: Registered protocol family 29
    can: raw protocol (rev 20090105)
    can: broadcast manager protocol (rev 20090105 t)
    Registering the dns_resolver key type
    VFP support v0.3: implementor 41 architecture 3 part 30 variant c rev 3
    omap_voltage_late_init: Voltage driver support not added
    Power Management for TI81XX.
    Detected MACID=40:5f:c2:48:23:d
    omap_rtc omap_rtc: setting system clock to 2000-01-01 00:00:00 UTC (946684800)
    
    CPSW phy found : id is : 0x4dd074
    
    CPSW phy found : id is : 0x4dd074
    IP-Config: Guessing netmask 255.255.255.0
    IP-Config: Complete:
         device=eth0, addr=192.168.12.106, mask=255.255.255.0, gw=255.255.255.255,
         host=192.168.12.106, domain=, nis-domain=(none),
         bootserver=255.255.255.255, rootserver=192.168.12.105, rootpath=
    PHY: 0:01 - Link is Up - 0/Half
    PHY: 0:01 - Link is Down
    PHY: 0:00 - Link is Up - 100/Full
    VFS: Mounted root (nfs filesystem) on device 0:15.
    devtmpfs: mounted
    Freeing init memory: 212K
    INIT: version 2.86 booting
    Error opening /dev/fb0: No such file or directory
    Please wait: booting...
    Starting udev
    udevd (81): /proc/81/oom_adj is deprecated, please use /proc/81/oom_score_adj instead.
    Root filesystem already rw, not remounting
    Caching udev devnodes
    NET: Registered protocol family 10
    ALSA: Restoring mixer settings...
    NOT configuring network interfaces: / is an NFS mount
    Thu Mar  1 13:29:00 UTC 2012
    INIT: Entering runlevel: 5
    Loading HDVICP2 Firmware
    DM814X prcm_config_app version: 2.0.0.1
    Doing PRCM settings...
    	PRCM for IVHD0 is in Progress, Please wait.....  
    			BW Phy Addr : 0x48180600 Data : 0x00000001
    			AW Phy Addr : 0x48180600 Data : 0x00000002
    			Phy Addr : 0x48180c04 Data : 0x00000037
    			BW Phy Addr : 0x48180620 Data : 0x00070000
    			AW Phy Addr : 0x48180620 Data : 0x00070002
    			BW Phy Addr : 0x48180624 Data : 0x00030000
    			AW Phy Addr : 0x48180624 Data : 0x00010002
    			Phy Addr : 0x48180600 Data : 0x00000102
    			BW Phy Addr : 0x48180c10 Data : 0x00000007
    			AW Phy Addr : 0x48180c10 Data : 0x00000003
    			Phy Addr : 0x48180c14 Data : 0x00000004
    			BW Phy Addr : 0x58088000 Data : 0xb0a605a8
    			AW Phy Addr : 0x58088000 Data : 0xeafffffe
    			BW Phy Addr : 0x58098000 Data : 0xc1c959b0
    			AW Phy Addr : 0x58098000 Data : 0xeafffffe
    			BW Phy Addr : 0x48180c10 Data : 0x00000003
    			AW Phy Addr : 0x48180c10 Data : 0x00000000
    			Phy Addr : 0x48180c14 Data : 0x00000007
    	PRCM for IVHD0 is Done Successfully  
    PRCM Initialization completed 
    SysLink version : 2.10.03.20
    SysLink module created on Date:Oct  9 2012 Time:14:59:49
    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: 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.3: controller timed out
    I2C: Transfer failed at vps_ti814x_select_video_decoder 202 with error code: -110
    Configuring fb0 to LCD
    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
    HDMI W1 rev 4.0
    I2C No Ack
    
    Starting system message bus: dbus.
    Starting Dropbear SSH server: dropbear.
    Starting telnet daemon.
    Starting network benchmark server: netserver.
    Starting syslogd/klogd: done
    Starting thttpd.
    Starting PVR
    /dev/mem opened.
    Memory mapped at address 0x400d3000.
    Read at address  0x48180F04 (0x400d3f04): 0x00000001
    Write at address 0x48180F04 (0x400d3f04): 0x00000000, readback 0x00000000
    /dev/mem opened.
    Memory mapped at address 0x4027e000.
    Read at address  0x48180900 (0x4027e900): 0x00000102
    Write at address 0x48180900 (0x4027e900): 0x00000002, readback 0x00000002
    /dev/mem opened.
    Memory mapped at address 0x40220000.
    Read at address  0x48180920 (0x40220920): 0x00040002
    Write at address 0x48180920 (0x40220920): 0x00000002, readback 0x00000002
    Starting Matrix GUI application.
    
     _____                    _____           _         _   
    |  _  |___ ___ ___ ___   |  _  |___ ___  |_|___ ___| |_ 
    |     |  _| .'| . | . |  |   __|  _| . | | | -_|  _|  _|
    |__|__|_| |__,|_  |___|  |__|  |_| |___|_| |___|___|_|  
                  |___|                    |___|            
    
    Arago Project http://arago-project.org dm814x-evm ttyO0
    
    Arago 2011.09 dm814x-evm ttyO0
    
    dm814x-evm login: 
    
    U-Boot 2010.06 (Sep 15 2011 - 17:02:10)
    
    TI8148-GP rev 2.1
    
    ARM clk: 600MHz
    DDR clk: 400MHz
    
    DRAM:  2 GiB
    NAND:  HW ECC Hamming Code selected
    256 MiB
    Using default environment
    
    The 2nd stage U-Boot will now be auto-loaded
    Please do not interrupt the countdown till TI8148_EVM prompt if 2nd stage is already flashed
    Hit any key to stop autoboot:  3  2  1  0 
    
    NAND read: device 0 offset 0x20000, size 0x40000
     262144 bytes read: OK
    ## Starting application at 0x81000000 ...
    
    
    U-Boot 2010.06 (Sep 15 2011 - 17:03:00)
    
    TI8148-GP rev 2.1
    
    ARM clk: 600MHz
    DDR clk: 400MHz
    
    I2C:   ready
    DRAM:  2 GiB
    NAND:  HW ECC Hamming Code selected
    256 MiB
                              .:;rrr;;.                   
                        ,5#@@@@#####@@@@@@#2,             
                     ,A@@@hi;;;r5;;;;r;rrSG@@@A,          
                   r@@#i;:;s222hG;rrsrrrrrr;ri#@@r        
                 :@@hr:r;SG3ssrr2r;rrsrsrsrsrr;rh@@:      
                B@H;;rr;3Hs;rrr;sr;;rrsrsrsrsrsr;;H@B     
               @@s:rrs;5#;;rrrr;r#@H:;;rrsrsrsrsrr:s@@    
              @@;;srs&X#9;r;r;;,2@@@rrr:;;rrsrsrsrr;;@@   
             @@;;rrsrrs@MB#@@@@@###@@@@@@#rsrsrsrsrr;;@@  
            G@r;rrsrsr;#X;SX25Ss#@@#M@#9H9rrsrsrsrsrs;r@G 
            @9:srsrsrs;2@;:;;:.X@@@@@H::;rrsrsrsrsrsrr:3@ 
           X@;rrsrsrsrr;XAi;;:&@@#@Bs:rrsrsrsrsrsrsrsrr;@X
           @#;rsrsrsrsrr;r2ir@@@###::rrsrsrsrsrsrsrsrsr:@@
           @A:rrsrsrsrr;:2@29@@M@@@;:;rrrrsrsrsrsrsrsrs;H@
           @&;rsrsrsrr;A@@@@@@###@@@s::;:;;rrsrsrsrsrsr;G@
           @#:rrsrsrsr;G@5Hr25@@@#@@@#9XG9s:rrrrsrsrsrs:#@
           M@;rsrsrsrs;r@&#;::S@@@@@@@M@@@@Grr:;rsrsrsr;@#
           :@s;rsrsrsrr:M#Msrr;;&#@@@@@@@@@@H@@5;rsrsr;s@,
            @@:rrsrsrsr;S@rrrsr;:;r3MH@@#@M5,S@@irrsrr:@@ 
             @A:rrsrsrsrrrrrsrsrrr;::;@##@r:;rH@h;srr:H@  
             ;@9:rrsrsrsrrrsrsrsrsr;,S@Hi@i:;s;MX;rr:h@;  
              r@B:rrrrsrsrsrsrsrr;;sA@#i,i@h;r;S5;r:H@r   
               ,@@r;rrrsrsrsrsrr;2BM3r:;r:G@:rrr;;r@@,    
                 B@Mr;rrrrsrsrsr@@S;;;rrr:5M;rr;rM@H      
                  .@@@i;;rrrrsrs2i;rrrrr;r@M:;i@@@.       
                    .A@@#5r;;;r;;;rrr;r:r#AsM@@H.         
                       ;&@@@@MhXS5i5SX9B@@@@G;            
                           :ihM#@@@@@##hs,                
    
    Net:   Detected MACID:40:5f:c2:6c:60:c2
    cpsw
    Hit any key to stop autoboot:  3  2  1  0 
    link up on port 0, speed 100, full duplex
    Using cpsw device
    TFTP from server 192.168.12.45; our IP address is 192.168.12.106
    Filename 'uImage_DM8148_EZSDK_05050104'.
    Load address: 0x81000000
    Loading: *#################################################################
    	 #################################################################
    	 #################################################################
    	 #################################################################
    	 #################################################################
    	 #################################################################
    	 #################################################################
    	 #################################################################
    	 ############
    done
    Bytes transferred = 2720224 (2981e0 hex)
    ## Booting kernel from Legacy Image at 81000000 ...
       Image Name:   Linux-2.6.37
       Image Type:   ARM Linux Kernel Image (uncompressed)
       Data Size:    2720160 Bytes = 2.6 MiB
       Load Address: 80008000
       Entry Point:  80008000
       Verifying Checksum ... OK
       Loading Kernel Image ... OK
    OK
    
    Starting kernel ...
    
    Uncompressing Linux... done, booting the kernel.
    Linux version 2.6.37 (ricky@DSPServer) (gcc version 4.3.3 (Sourcery G++ Lite 2009q1-203) ) #17 Wed Nov 28 18:02:06 CST 2012
    CPU: ARMv7 Processor [413fc082] revision 2 (ARMv7), cr=10c53c7f
    CPU: VIPT nonaliasing data cache, VIPT aliasing instruction cache
    Machine: ti8148evm
    bootconsole [earlycon0] enabled
    vram size = 52428800 at 0x0
    reserved size = 52428800 at 0x0
    FB: Reserving 52428800 bytes SDRAM for VRAM
    Memory policy: ECC disabled, Data cache writeback
    OMAP chip is TI8148 2.1
    SRAM: Mapped pa 0x402f1000 to va 0xfe400000 size: 0xf000
    Built 1 zonelists in Zone order, mobility grouping on.  Total pages: 52224
    Kernel command line: console=ttyO0,115200n8 rootwait rw mem=256M@0x80000000 vmalloc=500M earlyprintk notifyk.vpssm3_sva=0xBF900000 vram=50M ti814xfb.vram=0:40M,1:1M,2:1M root=/dev/nfs nfsroot=192.168.12.45:/home/ricky/TI/DM8148/05.05.01.04/filesystem/targetfs ip=192.168.12.106 autoload=no
    PID hash table entries: 1024 (order: 0, 4096 bytes)
    Dentry cache hash table entries: 32768 (order: 5, 131072 bytes)
    Inode-cache hash table entries: 16384 (order: 4, 65536 bytes)
    Memory: 206MB = 206MB total
    Memory: 202832k/202832k available, 59312k reserved, 0K highmem
    Virtual kernel memory layout:
        vector  : 0xffff0000 - 0xffff1000   (   4 kB)
        fixmap  : 0xfff00000 - 0xfffe0000   ( 896 kB)
        DMA     : 0xffc00000 - 0xffe00000   (   2 MB)
        vmalloc : 0xd0800000 - 0xf8000000   ( 632 MB)
        lowmem  : 0xc0000000 - 0xd0000000   ( 256 MB)
        pkmap   : 0xbfe00000 - 0xc0000000   (   2 MB)
        modules : 0xbf000000 - 0xbfe00000   (  14 MB)
          .init : 0xc0008000 - 0xc003c000   ( 208 kB)
          .text : 0xc003c000 - 0xc0525000   (5028 kB)
          .data : 0xc0526000 - 0xc0571700   ( 302 kB)
    SLUB: Genslabs=11, HWalign=64, Order=0-3, MinObjects=0, CPUs=1, Nodes=1
    NR_IRQS:407
    IRQ: Found an INTC at 0xfa200000 (revision 5.0) with 128 interrupts
    Total of 128 interrupts on 1 active controller
    GPMC revision 6.0
    Trying to install interrupt handler for IRQ400
    Trying to install interrupt handler for IRQ401
    Trying to install interrupt handler for IRQ402
    Trying to install interrupt handler for IRQ403
    Trying to install interrupt handler for IRQ404
    Trying to install interrupt handler for IRQ405
    Trying to install interrupt handler for IRQ406
    Trying to install type control for IRQ407
    Trying to set irq flags for IRQ407
    OMAP clockevent source: GPTIMER1 at 20000000 Hz
    Console: colour dummy device 80x30
    Calibrating delay loop... 599.65 BogoMIPS (lpj=2998272)
    pid_max: default: 32768 minimum: 301
    Security Framework initialized
    Mount-cache hash table entries: 512
    CPU: Testing write buffer coherency: ok
    devtmpfs: initialized
    omap_voltage_early_init: voltage driver support not added
    regulator: core version 0.5
    regulator: dummy: 
    NET: Registered protocol family 16
    omap_voltage_domain_lookup: Voltage driver init not yet happened.Faulting!
    omap_voltage_add_dev: VDD specified does not exist!
    OMAP GPIO hardware version 0.1
    OMAP GPIO hardware version 0.1
    OMAP GPIO hardware version 0.1
    OMAP GPIO hardware version 0.1
    omap_mux_init: Add partition: #1: core, flags: 4
    NOR: Can't request GPMC CS
    Debugfs: Only enabling/disabling deep sleep and wakeup timer is supported now
    registered ti81xx_vpss device
    registered ti81xx_vidout device
    registered ti81xx on-chip HDMI device
    registered ti81xx_fb device
    registered ti81xx_vin device
    ti81xx_pcie: Invoking PCI BIOS...
    ti81xx_pcie: Setting up Host Controller...
    ti81xx_pcie: Register base mapped @0xd0820000
    ti81xx_pcie: Starting PCI scan...
    PCI: bus0: Fast back to back transfers enabled
    bio: create slab <bio-0> at 0
    vgaarb: loaded
    SCSI subsystem initialized
    usbcore: registered new interface driver usbfs
    usbcore: registered new interface driver hub
    usbcore: registered new device driver usb
    USBSS revision 4ea2080b
    registerd cppi-dma Intr @ IRQ 17
    Cppi41 Init Done
    omap_i2c omap_i2c.1: bus 1 rev4.0 at 100 kHz
    pcf857x 1-0021: gpios 128..143 on a pcf8575
    regulator: VRTC: 1800 mV 
    regulator: VIO: 1500 mV 
    regulator: VDD1: 600 <--> 1500 mV at 1200 mV 
    regulator: VDD2: 600 <--> 1500 mV at 1200 mV 
    regulator: VDDCTRL: 600 <--> 1400 mV at 1200 mV 
    regulator: LDO1: 1100 <--> 3300 mV at 1800 mV 
    regulator: LDO2: 1100 <--> 3300 mV at 1800 mV 
    regulator: LDO3: 1100 <--> 3300 mV at 3300 mV 
    regulator: LDO4: 1100 <--> 3300 mV at 1800 mV 
    regulator: LDO5: 1100 <--> 3300 mV at 3300 mV 
    regulator: LDO6: 1100 <--> 3300 mV at 3300 mV 
    regulator: LDO7: 1100 <--> 3300 mV at 3300 mV 
    regulator: LDO8: 1100 <--> 3300 mV at 1800 mV 
    tps65910 1-002d: No interrupt support, no core IRQ
    omap_i2c omap_i2c.3: bus 3 rev4.0 at 100 kHz
    Advanced Linux Sound Architecture Driver Version 1.0.23.
    Switching to clocksource gp timer
    musb-hdrc: version 6.0, host, debug=0
    musb-hdrc musb-hdrc.0: dma type: dma-cppi41
    MUSB controller-0 revision 4ea20800
    musb-hdrc musb-hdrc.0: MUSB HDRC host driver
    musb-hdrc musb-hdrc.0: new USB bus registered, assigned bus number 1
    usb usb1: New USB device found, idVendor=1d6b, idProduct=0002
    usb usb1: New USB device strings: Mfr=3, Product=2, SerialNumber=1
    usb usb1: Product: MUSB HDRC host driver
    usb usb1: Manufacturer: Linux 2.6.37 musb-hcd
    usb usb1: SerialNumber: musb-hdrc.0
    hub 1-0:1.0: USB hub found
    hub 1-0:1.0: 1 port detected
    musb-hdrc musb-hdrc.0: USB Host mode controller at d081e000 using DMA, IRQ 18
    musb-hdrc musb-hdrc.1: dma type: dma-cppi41
    MUSB controller-1 revision 4ea20800
    musb-hdrc musb-hdrc.1: MUSB HDRC host driver
    musb-hdrc musb-hdrc.1: new USB bus registered, assigned bus number 2
    usb usb2: New USB device found, idVendor=1d6b, idProduct=0002
    usb usb2: New USB device strings: Mfr=3, Product=2, SerialNumber=1
    usb usb2: Product: MUSB HDRC host driver
    usb usb2: Manufacturer: Linux 2.6.37 musb-hcd
    usb usb2: SerialNumber: musb-hdrc.1
    hub 2-0:1.0: USB hub found
    hub 2-0:1.0: 1 port detected
    musb-hdrc musb-hdrc.1: USB Host mode controller at d0826800 using DMA, IRQ 19
    NET: Registered protocol family 2
    IP route cache hash table entries: 2048 (order: 1, 8192 bytes)
    TCP established hash table entries: 8192 (order: 4, 65536 bytes)
    TCP bind hash table entries: 8192 (order: 3, 32768 bytes)
    TCP: Hash tables configured (established 8192 bind 8192)
    TCP reno registered
    UDP hash table entries: 256 (order: 0, 4096 bytes)
    UDP-Lite hash table entries: 256 (order: 0, 4096 bytes)
    NET: Registered protocol family 1
    RPC: Registered udp transport module.
    RPC: Registered tcp transport module.
    RPC: Registered tcp NFSv4.1 backchannel transport module.
    NetWinder Floating Point Emulator V0.97 (double precision)
    PMU: registered new PMU device of type 0
    omap-iommu omap-iommu.0: ducati registered
    omap-iommu omap-iommu.1: sys registered
    JFFS2 version 2.2. (NAND) c 2001-2006 Red Hat, Inc.
    msgmni has been set to 396
    io scheduler noop registered
    io scheduler deadline registered
    io scheduler cfq registered (default)
    Serial: 8250/16550 driver, 4 ports, IRQ sharing enabled
    omap_uart.0: ttyO0 at MMIO 0x48020000 (irq = 72) is a OMAP UART0
    console [ttyO0] enabled, bootconsole disabled
    console [ttyO0] enabled, bootconsole disabled
    omap_uart.1: ttyO1 at MMIO 0x48022000 (irq = 73) is a OMAP UART1
    omap_uart.2: ttyO2 at MMIO 0x48024000 (irq = 74) is a OMAP UART2
    omap_uart.3: ttyO3 at MMIO 0x481a6000 (irq = 44) is a OMAP UART3
    omap_uart.4: ttyO4 at MMIO 0x481a8000 (irq = 45) is a OMAP UART4
    omap_uart.5: ttyO5 at MMIO 0x481aa000 (irq = 46) is a OMAP UART5
    brd: module loaded
    loop: module loaded
    ahci ahci.0: forcing PORTS_IMPL to 0x1
    ahci ahci.0: AHCI 0001.0300 32 slots 1 ports 3 Gbps 0x1 impl platform mode
    ahci ahci.0: flags: ncq sntf pm led clo only pmp pio slum part ccc apst 
    scsi0 : ahci_platform
    ata1: SATA max UDMA/133 mmio [mem 0x4a140000-0x4a150fff] port 0x100 irq 16
    omap2-nand driver initializing
    ONFI flash detected
    NAND device: Manufacturer ID: 0x2c, Chip ID: 0xca (Micron )
    Creating 6 MTD partitions on "omap2-nand.0":
    0x000000000000-0x000000020000 : "U-Boot-min"
    0x000000020000-0x000000260000 : "U-Boot"
    0x000000260000-0x000000280000 : "U-Boot Env"
    0x000000280000-0x0000006c0000 : "Kernel"
    0x0000006c0000-0x00000cee0000 : "File System"
    0x00000cee0000-0x000010000000 : "Reserved"
    davinci_mdio davinci_mdio.0: davinci mdio revision 1.6
    davinci_mdio davinci_mdio.0: detected phy mask fffffffc
    davinci_mdio.0: probed
    davinci_mdio davinci_mdio.0: phy[0]: device 0:00, driver unknown
    davinci_mdio davinci_mdio.0: phy[1]: device 0:01, driver unknown
    CAN device driver interface
    CAN bus driver for Bosch D_CAN controller 1.0
    d_can d_can: d_can device registered (irq=52, irq_obj=53)
    usbcore: registered new interface driver cdc_ether
    usbcore: registered new interface driver dm9601
    usbcore: registered new interface driver cdc_acm
    cdc_acm: v0.26:USB Abstract Control Model driver for USB modems and ISDN adapters
    Initializing USB Mass Storage driver...
    usbcore: registered new interface driver usb-storage
    USB Mass Storage support registered.
    mice: PS/2 mouse device common for all mice
    ata1: SATA link down (SStatus 0 SControl 300)
    qt602240_ts 1-004a: Family ID: 128 Variant ID: 1 Version: 22 Build: 171
    qt602240_ts 1-004a: Matrix X Size: 18 Matrix Y Size: 12 Object Num: 17
    input: AT42QT602240/ATMXT224 Touchscreen as /devices/platform/omap/omap_i2c.1/i2c-1/1-004a/input/input0
    omap_rtc omap_rtc: rtc core: registered omap_rtc as rtc0
    i2c /dev entries driver
    Linux video capture interface: v2.00
    usbcore: registered new interface driver uvcvideo
    USB Video Class driver (v1.0.0)
    OMAP Watchdog Timer Rev 0x00: initial timeout 60 sec
    usbcore: registered new interface driver usbhid
    usbhid: USB HID core driver
    notify_init : notify drivercreated  for  remote proc id 2 at physical Address 0xbf900000
    usbcore: registered new interface driver snd-usb-audio
    asoc: tlv320aic3x-hifi <-> davinci-mcasp.2 mapping ok
    ALSA device list:
      #0: TI81XX EVM
    TCP cubic registered
    NET: Registered protocol family 17
    can: controller area network core (rev 20090105 abi 8)
    NET: Registered protocol family 29
    can: raw protocol (rev 20090105)
    can: broadcast manager protocol (rev 20090105 t)
    Registering the dns_resolver key type
    VFP support v0.3: implementor 41 architecture 3 part 30 variant c rev 3
    omap_voltage_late_init: Voltage driver support not added
    Power Management for TI81XX.
    Detected MACID=40:5f:c2:6c:60:c2
    omap_rtc omap_rtc: setting system clock to 2000-01-01 00:00:00 UTC (946684800)
    
    CPSW phy found : id is : 0x4dd074
    
    CPSW phy found : id is : 0x4dd074
    IP-Config: Guessing netmask 255.255.255.0
    IP-Config: Complete:
         device=eth0, addr=192.168.12.106, mask=255.255.255.0, gw=255.255.255.255,
         host=192.168.12.106, domain=, nis-domain=(none),
         bootserver=255.255.255.255, rootserver=192.168.12.45, rootpath=
    PHY: 0:01 - Link is Up - 0/Half
    PHY: 0:01 - Link is Down
    PHY: 0:00 - Link is Up - 100/Full
    VFS: Mounted root (nfs filesystem) on device 0:15.
    devtmpfs: mounted
    Freeing init memory: 208K
    INIT: version 2.86 booting
    Error opening /dev/fb0: No such file or directory
    Please wait: booting...
    Starting udev
    udevd (77): /proc/77/oom_adj is deprecated, please use /proc/77/oom_score_adj instead.
    Root filesystem already rw, not remounting
    Caching udev devnodes
    NET: Registered protocol family 10
    ALSA: Restoring mixer settings...
    No state is present for card EVM
    Found hardware: "" "" "" "" ""
    Hardware is initialized using a generic method
    NOT configuring network interfaces: / is an NFS mount
    No state is present for card EVM
    Wed Oct 10 15:52:00 UTC 2012
    INIT: Entering runlevel: 5
    Loading HDVICP2 Firmware
    DM814X prcm_config_app version: 2.0.0.1
    Doing PRCM settings...
    	PRCM for IVHD0 is in Progress, Please wait.....  
    			BW Phy Addr : 0x48180600 Data : 0x00000001
    			AW Phy Addr : 0x48180600 Data : 0x00000002
    			Phy Addr : 0x48180c04 Data : 0x00000037
    			BW Phy Addr : 0x48180620 Data : 0x00070000
    			AW Phy Addr : 0x48180620 Data : 0x00070002
    			BW Phy Addr : 0x48180624 Data : 0x00030000
    			AW Phy Addr : 0x48180624 Data : 0x00010002
    			Phy Addr : 0x48180600 Data : 0x00000102
    			BW Phy Addr : 0x48180c10 Data : 0x00000007
    			AW Phy Addr : 0x48180c10 Data : 0x00000003
    			Phy Addr : 0x48180c14 Data : 0x00000004
    			BW Phy Addr : 0x58088000 Data : 0xb86243d6
    			AW Phy Addr : 0x58088000 Data : 0xeafffffe
    			BW Phy Addr : 0x58098000 Data : 0xbe1421e9
    			AW Phy Addr : 0x58098000 Data : 0xeafffffe
    			BW Phy Addr : 0x48180c10 Data : 0x00000003
    			AW Phy Addr : 0x48180c10 Data : 0x00000000
    			Phy Addr : 0x48180c14 Data : 0x00000007
    	PRCM for IVHD0 is Done Successfully  
    PRCM Initialization completed 
    SysLink version : 2.20.00.14
    SysLink module created on Date:Nov 26 2012 Time:17:54:52
    CMEMK module: built on Nov 28 2012 at 16:46:37
      Reference Linux version 2.6.37
      File /home/ricky/TI/DM8148/05.05.01.04/component-sources/linuxutils_3_22_00_02/packages/ti/sdo/linuxutils/cmem/src/module/cmemk.c
    allocated heap buffer 0xd5000000 of size 0x20fe000
    cmemk initialized
    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
    Firmware Loader debugging not configured
    Default FL_DEBUG: warning
    Allowed FL_DEBUG levels: error, warning, info, debug, log
    MemCfg: DCMM (Dynamically Configurable Memory Map) Version :  2.1.2.1
    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
    Firmware Loader debugging not configured
    Default FL_DEBUG: warning
    Allowed FL_DEBUG levels: error, warning, info, debug, log
    MemCfg: DCMM (Dynamically Configurable Memory Map) Version :  2.1.2.1
    FIRMWARE: 2 start Successful
    Load vpss
    Load ti81xxfb
    Configuring fb0 to LCD
    Load ti81xxvo
    Load tvp514x
    Load ti81xxvin
    tvp514x 3-005c: tvp514x 3-005c decoder driver registered !!
    tvp514x 3-005c: tvp5147m1 (Version - 0x07) found at 0xb8 (OMAP I2C adapter)
    ti81xxvin ti81xxvin: registered sub device tvp5147m1
    ti81xxvin ti81xxvin: TI81xx HDVPSS Capture driver initialized
    Load ti81xxhdmi
    HDMI W1 rev 4.0
    HDMI CEC Spec version 1.2
    I2C No Ack
    
    Load tlc59108
    Starting system message bus: dbus.
    Starting Dropbear SSH server: dropbear.
    Starting telnet daemon.
    Starting network benchmark server: netserver.
    Starting syslogd/klogd: done
    Starting thttpd.
    Starting PVR
    /dev/mem opened.
    Memory mapped at address 0x40308000.
    Read at address  0x48180F04 (0x40308f04): 0x00000001
    Write at address 0x48180F04 (0x40308f04): 0x00000000, readback 0x00000000
    /dev/mem opened.
    Memory mapped at address 0x401ed000.
    Read at address  0x48180900 (0x401ed900): 0x00000102
    Write at address 0x48180900 (0x401ed900): 0x00000002, readback 0x00000002
    /dev/mem opened.
    Memory mapped at address 0x400ca000.
    Read at address  0x48180920 (0x400ca920): 0x00040002
    Write at address 0x48180920 (0x400ca920): 0x00000002, readback 0x00000002
    Starting Matrix GUI application.
    
     _____                    _____           _         _   
    |  _  |___ ___ ___ ___   |  _  |___ ___  |_|___ ___| |_ 
    |     |  _| .'| . | . |  |   __|  _| . | | | -_|  _|  _|
    |__|__|_| |__,|_  |___|  |__|  |_| |___|_| |___|___|_|  
                  |___|                    |___|            
    
    Arago Project http://arago-project.org dm814x-evm ttyO0
    
    Arago 2011.09 dm814x-evm ttyO0
    
    dm814x-evm login: root
    root@dm814x-evm:~# . /etc/     /tc  etc/inroot@dm814x-evm:~# /etc/iniroot@dm814x-evm:~# /etc/init.root@dm814x-evm:~# /etc/init.d/proot@dm814x-evm:~# /etc/init.d/p root@dm814x-evm:~# /etc/init.d/pvroot@dm814x-evm:~# /etc/init.d/pvr-init s sa top
    Stopping PVR
    root@dm814x-evm:~# root@dm814x-evm:~# /etc/init.d/pvr-init stop             mroot@dm814x-evm:~# /etc/init.d/maroot@dm814x-evm:~# /etc/init.d/matrix-gui-e stop
    Stopping Matrix GUI application.
    root@dm814x-evm:~# ./mroot@dm814x-evm:~# ./myLoopBack
    CMEM version = 0x3000100
    CMEM memory block 0: phys start = 0x90000000, size = 0x4200000
    ...done, 22118400 bytes allocated
    myLoopBack: Call initCapture
    CAPTURE_DEVICE = /dev/video6
    Driver Name: ti81xxvin
    Driver bus info: TI81xx Platform
    Driver is capable of doing capture
    myLoopBack:
     Mode set is 480p@59.94
    myLoopBack: Call setupCapture
    myLoopBack: In setupCapture
    myLoopBack: width = 720
    myLoopBack: height = 480
    myLoopBack: bytesperline = 1440
    myLoopBack: sizeimage = 691200
    myLoopBack: pixelformat = V4L2_PIX_FMT_YUYV
    =============================================================
    Capture Format:
    =============================================================
    fmt.type		 = 1
    fmt.width		 = 720
    fmt.height		 = 480
    fmt.pixelformat	 = 1448695129
    fmt.bytesperline	 = 1440
    fmt.sizeimage	 = 691200
    =============================================================
    myLoopBack: Out setupCapture
    myLoopBack: Call queueCaptureBuffers
    myLoopBack: Call startCapture
    tvp514x 3-005c: tvp5147m1 (Version - 0x07) found at 0xb8 (OMAP I2C adapter)
    VPSS_FVID2: create handle is NULL
    ti81xxvin ti81xxvin: ti81xxvin_vps_create failed
    ti81xxvin ti81xxvin: Vps create failed
    VIDIOC_STREAMON
    : Invalid argument
    ...done, freeing heap blocks...
    root@dm814x-evm:~# 

    Thank

  • If you look in drivers/video/ti81xx/vpss/capt.c in the capture_create() function, you'll see a switch() statement that determines which VIP and PORT to use for the input. For the input, you have vidoe0, video4, video5, vidoe6. These equate to VIP0_PORTA, VIP0_PORTB, VIP1_PORTA, and VIP_PORTB here. So you want to use video5 instead of video6 to ensure that you use VIP1_PORTA which should get you past the "create handle is NULL" error message.

    I've got a custom board that has both the TVP70025 and TVP5151 for HD and SD video. Once I get past this error, I'm getting errors from videobuf_dqbuf when called from the saLoopBack application..

    Not sure how to get past that error yet.

    ~Ashwin

  • Hi,

    You may get error first time you start the capture. You need to stop and start the capture again. What error are you getting from DQBUF?I am talking about overflow error.

  • We are getting an error "-512" from the videobuf_deqeue() function. Is that the expected error and does a restart fix it? I think I've tried restarting the application a couple of times and I get to the same point.

    ~Ashwin

  • Hi

        I am trying to get the TVP5147 working on the DM8148 too.

        Currently my system is able to recognize the TVP5147 and to map the TVP to /dev/video5 but I am having some problems to configure the V4L2 capture driver and the VPSS properly according to the standard. I am trying to capture NTSC 720x480, were you able to get this working at the end? If so, could you share which parameters did you use to configure V4L2 and VPSS?

         For the time being I am using:

    .video_if_mode = VPS_CAPT_VIDEO_IF_MODE_8BIT,

    .input_data_format = FVID2_DF_YUV422I_YUYV,

    .std = V4L2_STD_NTSC,

    buf_obj->fmt.fmt.pix.field = V4L2_FIELD_INTERLACED;

    mbus_framefmt.code = V4L2_MBUS_FMT_UYVY8_2X8;

    Finally I am using this to configure the preset but I am not completely sure if it is fine 

    inst->video.cur_dv_preset.preset = V4L2_DV_480P59_94;

    Thanks in advance for the help

  • I add tvp5147 port work through CVBS(VIP1 PORTB) on  the DM8148 EVM too,and get the same error VPSS_FVID2: create handle is NULL.

    test application

    1307.saLoopBackFbdev.c
    /*
     * saLoopBackFbdev.c
     *
     * Copyright (C) 2011 TI
     * Author: Hardik Shah <hardik.shah@ti.com>
     *
     * This is a sample for loopback application. This application captures through
     * V4L2 capture driver on TVP7002 input, converts it to RGB using
     * HDVPSS capture color space converter and displays the captured content
     * on FBDEV
     *
     * This program is free software; you can redistribute it and/or modify it
     * under the terms of the GNU General Public License as published by the
     * Free Software Foundation; either version 2 of the License, or (at your
     * option) any later version.
     *
     * This program is distributed in the hope that it will be useful, but
     * WITHOUT ANY WARRANTY; without even the implied warranty of
     * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
     * General Public License for more details.
     *
     * You should have received a copy of the GNU General Public License along
     * with this program; if not, write to the Free Software Foundation, Inc.,
     * 59 Temple Place - Suite 330, Boston, MA	02111-1307, USA.
     */
    
    #include <unistd.h>
    #include <stdlib.h>
    #include <stdio.h>
    #include <errno.h>
    #include <sys/ioctl.h>
    #include <sys/stat.h>
    #include <sys/mman.h>
    #include <sys/time.h>
    #include <fcntl.h>
    #include <string.h>
    #include <stdlib.h>
    #include <linux/fb.h>
    #include <linux/ti81xxfb.h>
    #include <linux/ti81xxvin.h>
    #include<linux/videodev2.h>
    /* Number of buffers capture driver */
    #define MAX_BUFFER	4
    /* Number of times queue/dequeue happens before stopping applications */
    #define MAXLOOPCOUNT	500
    
    /* Application name */
    #define APP_NAME		"saLoopBackFbdev"
    
    /* device node to be used for capture */
    //#define CAPTURE_DEVICE		"/dev/video0"
    #define CAPTURE_DEVICE		"/dev/video5"
    
    /* device node to be used for fbdev */
    #define FBDEV_DEVICE		"/dev/fb0"
    
    /* Define below #def for debug information enable */
    #undef SALOOPBACKFBDEV_DEBUG
    
    /* Structure for storing application data like file pointers, format etc.
     * Same structure will be used for fbdev as well as V4L2 capture. Only/
     * required fields will be initialized for both of them*/
    struct app_obj {
    	int fd;
    	struct v4l2_capability cap;
    	struct v4l2_format fmt;
    	struct v4l2_dv_preset dv_preset;
    	struct v4l2_requestbuffers reqbuf;
    	unsigned int numbuffers;
    	unsigned int buffersize;
    	unsigned char *buffer_addr[MAX_BUFFER];
    	struct v4l2_buffer buf;
    	struct ti81xxvin_overflow_status over_flow;
    	struct fb_var_screeninfo varinfo;
    	struct fb_var_screeninfo org_varinfo;
    	struct fb_fix_screeninfo fixinfo;
    };
    
    
    /* Buffer descriptor for caputre queue/dequeue */
    struct buf_info {
    	int index;
    	unsigned int length;
    	char *start;
    };
    
    /* Globals for capture and display application objects */
    struct app_obj fbdev, capt;
    
    
    /* Utility function to calculate FPS
     *
     */
    static int timeval_subtract(struct timeval *result, struct timeval *x,
    		struct timeval *y)
    {
    	/* Perform the carry for the later subtraction by updating y */
    	if (x->tv_usec < y->tv_usec) {
    		int nsec = (y->tv_usec - x->tv_usec) / 1000000 + 1;
    		y->tv_usec -= 1000000 *	nsec;
    		y->tv_sec += nsec;
    	}
    	if (x->tv_usec - y->tv_usec > 1000000) {
    		int nsec = (x->tv_usec - y->tv_usec) / 1000000;
    		y->tv_usec += 1000000 * nsec;
    		y->tv_sec -= nsec;
    	}
    	/* Compute the time remaining to wait, tv_usec is certainly positive. */
    	result->tv_sec = x->tv_sec - y->tv_sec;
    	result->tv_usec = x->tv_usec - y->tv_usec;
    	/* Return 1 if result is negative. */
    	return x->tv_sec < y->tv_sec;
    }
    
    /* Utility function which gets the fixed screeninfo from driver and prints it
     */
    static int get_fixinfo(int fbdev_fd, struct fb_fix_screeninfo *fixinfo)
    {
    	int ret;
    	ret = ioctl(fbdev_fd, FBIOGET_FSCREENINFO, fixinfo);
    	if (ret < 0) {
    		perror("Error reading fixed information.\n");
    		return ret;
    	}
    
    	printf("\nFix Screen Info:\n");
    	printf("----------------\n");
    	printf("Line Length - %d\n", fixinfo->line_length);
    	printf("Physical Address = %lx\n", fixinfo->smem_start);
    	printf("Buffer Length = %d\n", fixinfo->smem_len);
    	return 0;
    }
    /* Utility function which gets the variable screen info from driver and prints\
     * it on console
     */
    static int get_varinfo(int fbdev_fd, struct fb_var_screeninfo *varinfo)
    {
    	int ret;
    
    	ret = ioctl(fbdev_fd, FBIOGET_VSCREENINFO, varinfo);
    	if (ret < 0) {
    		perror("Error reading variable information.\n");
    		return ret;
    	}
    	printf("\nVar Screen Info:\n");
    	printf("----------------\n");
    	printf("Xres - %d\n", varinfo->xres);
    	printf("Yres - %d\n", varinfo->yres);
    	printf("Xres Virtual - %d\n", varinfo->xres_virtual);
    	printf("Yres Virtual - %d\n", varinfo->yres_virtual);
    	printf("nonstd       - %d\n", varinfo->nonstd);
    	printf("Bits Per Pixel - %d\n", varinfo->bits_per_pixel);
    	printf("blue lenth %d msb %d offset %d\n",
    			varinfo->blue.length,
    			varinfo->blue.msb_right,
    			varinfo->blue.offset);
    	printf("red lenth %d msb %d offset %d\n",
    			varinfo->red.length,
    			varinfo->red.msb_right,
    			varinfo->red.offset);
    	printf("green lenth %d msb %d offset %d\n",
    			varinfo->green.length,
    			varinfo->green.msb_right,
    			varinfo->green.offset);
    	printf("trans lenth %d msb %d offset %d\n",
    			varinfo->transp.length,
    			varinfo->transp.msb_right,
    			varinfo->transp.offset);
    	return 0;
    
    }
    /* Utility function for printing format */
    static void printFormat(char *string, struct v4l2_format *fmt)
    {
    	printf("=============================================================\n");
    	printf("%s Format:\n", string);
    	printf("=============================================================\n");
    	printf("fmt.type\t\t = %d\n", fmt->type);
    	printf("fmt.width\t\t = %d\n", fmt->fmt.pix.width);
    	printf("fmt.height\t\t = %d\n", fmt->fmt.pix.height);
    	printf("fmt.pixelformat\t = %d\n", fmt->fmt.pix.pixelformat);
    	printf("fmt.bytesperline\t = %d\n", fmt->fmt.pix.bytesperline);
    	printf("fmt.sizeimage\t = %d\n", fmt->fmt.pix.sizeimage);
    	printf("=============================================================\n");
    }
    
    /* Open and query dv preset for capture driver*/
    static int initCapture(void)
    {
    	int mode = O_RDWR;
    	int ret=0;
    	v4l2_std_id std;
    	int input_idx = 0;
    	
    	/* Open capture driver */
    	capt.fd = open((const char *)CAPTURE_DEVICE, mode);
    	if (capt.fd == -1) {
    		printf("failed to open capture device\n");
    		return -1;
    	}
    	/* Query for capabilities */
    	if (ioctl(capt.fd, VIDIOC_QUERYCAP, &capt.cap)) {
    		printf("Query capability failed\n");
    		exit(2);
    	} else {
    		printf("Driver Name: %s\n", capt.cap.driver);
    		printf("Driver bus info: %s\n", capt.cap.bus_info);
    		if (capt.cap.capabilities & V4L2_CAP_VIDEO_CAPTURE)
    			printf("Driver is capable of doing capture\n");
    		if (capt.cap.capabilities & V4L2_CAP_VIDEO_OVERLAY)
    			printf("Driver is capabled of scaling and cropping\n");
    
    	}
    	system("echo 0 > /sys/devices/platform/vpss/display0/enabled");
    	/* Query the preset. Set it to invalid and query for it */
    
    
    	capt.dv_preset.preset = 0x0;
    	/*
    	if (ioctl(capt.fd, VIDIOC_QUERY_DV_PRESET, &capt.dv_preset)) {
    		printf("Querying DV Preset failed\n");
    		exit(2);
    	}
    	*/
    	input_idx = 0;
    	ret = ioctl(capt.fd, VIDIOC_S_INPUT, &input_idx);
    	if (ret < 0) {
    		perror("VIDIOC_S_INPUT\n");
    		return -1;
    	}
    
    	ret = ioctl(capt.fd, VIDIOC_QUERYSTD, &std);
    	if (ret < 0) {
    		perror("VIDIOC_QUERYSTD\n");
    		return -1;
    	}
    	printf("%s:&std = %08x,std=%08x\n ", APP_NAME,&std,std);
    
    	switch (capt.dv_preset.preset) {
    	case V4L2_DV_480P59_94:
    		printf("%s:\n Mode set is 480p@59.94\n", APP_NAME);
    		system ("echo 720p-60 > /sys/devices/platform/vpss/display0/mode");
    		break;
    	case V4L2_DV_576P50:
    		printf("%s:\n Mode set is 576p@50\n", APP_NAME);
    		system ("echo 720p-60 > /sys/devices/platform/vpss/display0/mode");
    		break;
    	case V4L2_DV_720P60:
    		printf("%s:\n Mode set is 720P60\n", APP_NAME);
    		system ("echo 720p-60 > /sys/devices/platform/vpss/display0/mode");
    		break;
    	case V4L2_DV_1080I60:
    		printf("%s:\n Mode set is 1080I60\n", APP_NAME);
    		printf("1080I is not supported for RGB capture\n");
    		return -1;
    		break;
    	case V4L2_DV_1080P60:
    		printf("%s:\n Mode set is 1080P60\n", APP_NAME);
    		system ("echo 1080p-60 > /sys/devices/platform/vpss/display0/mode");
    		break;
    	case V4L2_DV_1080P30:
    		printf("%s:\n Mode set is 1080P30\n", APP_NAME);
    		system ("echo 1080p-30 > /sys/devices/platform/vpss/display0/mode");
    		break;
    	default:
    		printf("%s:\n Mode set is %d\n", APP_NAME, capt.dv_preset.preset);
    	}
    /*
    	if (ioctl(capt.fd, VIDIOC_S_DV_PRESET, &capt.dv_preset)) {
    		printf("Setting DV Preset failed\n");
    		exit(2);
    	}
    	
    */
    	//std=V4L2_STD_PAL;
    	printf("V4L2_STD_PAL = %08x\n",V4L2_STD_PAL);
    	ret = ioctl(capt.fd, VIDIOC_S_STD, &std);
    
            if (ret < 0) {
                    perror("VIDIOC_S_STD\n");
                    return -1;
            }
    
    	
    /*
    	v4l2_std_id std;
    	
    	if (ioctl(capt.fd, VIDIOC_QUERYSTD, &std)) {
    		printf("Querying DV Preset failed\n");
    		exit(2);
    	}
    	//std = V4L2_STD_PAL; 
    	printf("VIDIOC_QUERYSTD,std=%d\n",std);
    
    	switch (std) {
    	    case V4L2_STD_NTSC:
    		printf("std=V4L2_STD_NTSC\n");
    		capt.dv_preset.preset = V4L2_STD_NTSC;
    		break;
    	    case V4L2_STD_PAL:
    		printf("std=V4L2_STD_PAL\n");
    		capt.dv_preset.preset = V4L2_STD_PAL;
    		break;
    	}
    	printf("VIDIOC_QUERYSTD,std=%d\n",std);
    */
    	system("echo 1 > /sys/devices/platform/vpss/display0/enabled");
    	return 0;
    }
    
    static int initFbdev(void)
    {
    	int mode = O_RDWR;
    
    	/* Open display driver */
    	fbdev.fd = open((const char *)FBDEV_DEVICE, mode);
    	if (fbdev.fd == -1) {
    		printf("failed to open fbdev device\n");
    		return -1;
    	}
    	return 0;
    }
    
    static int setupCapture(void)
    {
    	int ret;
    
    	/* Get current format */
    	capt.fmt.type = V4L2_BUF_TYPE_VIDEO_CAPTURE;
    	ret = ioctl(capt.fd, VIDIOC_G_FMT, &capt.fmt);
    	if (ret < 0) {
    		printf("Set Format failed\n");
    		return -1;
    	}
    
    	printf("%s: width = %d\n", APP_NAME, capt.fmt.fmt.pix.width);
    	printf("%s: height = %d\n", APP_NAME, capt.fmt.fmt.pix.height);
    	printf("%s: bytesperline = %d\n", APP_NAME, capt.fmt.fmt.pix.bytesperline);
    	printf("%s: sizeimage = %d\n", APP_NAME, capt.fmt.fmt.pix.sizeimage);
    	
    	/* Set format according to mode detected */
    	if(capt.fmt.fmt.pix.pixelformat == V4L2_PIX_FMT_RGB24)
    		printf("%s: pixelformat = V4L2_PIX_FMT_RGB24\n", APP_NAME);
    	else if(capt.fmt.fmt.pix.pixelformat == V4L2_PIX_FMT_YUYV)
    		printf("%s: pixelformat = V4L2_PIX_FMT_YUYV\n", APP_NAME);
    	else if(capt.fmt.fmt.pix.pixelformat == V4L2_PIX_FMT_YUYV)
    		printf("%s: pixelformat = Others\n", APP_NAME);
    
    	/* Set format according to mode detected */
    /*
    	if (capt.dv_preset.preset == V4L2_DV_480P59_94) {
    		capt.fmt.fmt.pix.width = 720;
    		capt.fmt.fmt.pix.height = 480;
    	} else if (capt.dv_preset.preset == V4L2_DV_576P50) {
    		capt.fmt.fmt.pix.width = 720;
    		capt.fmt.fmt.pix.height = 576;
    	} else if (capt.dv_preset.preset == V4L2_DV_720P60) {
    		capt.fmt.fmt.pix.width = 1280;
    		capt.fmt.fmt.pix.height = 720;
    	} else if (capt.dv_preset.preset == V4L2_DV_1080P60) {
    		capt.fmt.fmt.pix.width = 1920;
    		capt.fmt.fmt.pix.height = 1080;
    	}  else {
    		capt.fmt.fmt.pix.width = 720;
    		capt.fmt.fmt.pix.height = 480;
    	}
    */
    	capt.fmt.fmt.pix.bytesperline = capt.fmt.fmt.pix.width * 3;
    	capt.fmt.fmt.pix.sizeimage = capt.fmt.fmt.pix.bytesperline *
    		capt.fmt.fmt.pix.height;
    	capt.fmt.fmt.pix.pixelformat = V4L2_PIX_FMT_RGB24;
    	//capt.fmt.fmt.pix.pixelformat = V4L2_PIX_FMT_UYVY;
    	//printf("V4L2_PIX_FMT_UYVY = %d\n",V4L2_PIX_FMT_UYVY);
    	ret = ioctl(capt.fd, VIDIOC_S_FMT, &capt.fmt);
    	if (ret < 0) {
    		printf("Set Format failed\n");
    		return -1;
    	}
    	/* Get format again and print it on console */
    	capt.fmt.type = V4L2_BUF_TYPE_VIDEO_CAPTURE;
    	ret = ioctl(capt.fd, VIDIOC_G_FMT, &capt.fmt);
    	if (ret < 0) {
    		printf("Set Format failed\n");
    		return -1;
    	}
    	printFormat("Capture", &capt.fmt);
    
    	/* Request buffers. We are operating in userPtr mode */
    	capt.reqbuf.type = V4L2_BUF_TYPE_VIDEO_CAPTURE;
    	capt.reqbuf.count = MAX_BUFFER;
    	capt.reqbuf.memory = V4L2_MEMORY_USERPTR;
    	ret = ioctl(capt.fd, VIDIOC_REQBUFS, &capt.reqbuf);
    	if (ret < 0) {
    		printf("Could not allocate the buffers\n");
    		return -1;
    	}
    	return 0;
    }
    
    /* Setup display driver */
    static int setupFbdevAndBuffers(void)
    {
    	int ret, i;
    
    	/* Get fix screen information. Fix screen information gives
    	 * fix information like panning step for horizontal and vertical
    	 * direction, line length, memory mapped start address and length etc.
    	 */
    	if (get_fixinfo(fbdev.fd, &fbdev.fixinfo))
    		return -1;
    
    	/* Get variable screen information. Variable screen information
    	 * gives informtion like size of the image, bites per pixel,
    	 * virtual size of the image etc. */
    	if (get_varinfo(fbdev.fd, &fbdev.varinfo))
    		return -1;
    	/*store the original information*/
    	memcpy(&fbdev.org_varinfo, &fbdev.varinfo, sizeof(fbdev.varinfo));
    
    	/*
    	 * Set the resolution which read before again to prove the
    	 * FBIOPUT_VSCREENINFO ioctl, except virtual part which is required for
    	 * panning.
    	 */
    	fbdev.varinfo.xres = capt.fmt.fmt.pix.width;
    	fbdev.varinfo.yres = capt.fmt.fmt.pix.height;
    	fbdev.varinfo.xres_virtual = fbdev.varinfo.xres;
    	fbdev.varinfo.yres_virtual = fbdev.varinfo.yres * MAX_BUFFER;
    	fbdev.varinfo.bits_per_pixel = 24;
    	fbdev.varinfo.transp.offset = 0;
    	fbdev.varinfo.transp.length = 0;
    	fbdev.varinfo.transp.msb_right = 0;
    
    	ret = ioctl(fbdev.fd, FBIOPUT_VSCREENINFO, &fbdev.varinfo);
    	if (ret < 0) {
    		perror("Error writing variable information.\n");
    		return -1;
    	}
    	/* Get variable info and print it again after setting it */
    	if (get_varinfo(fbdev.fd, &fbdev.varinfo))
    		return -1;
    	/* It is better to get fix screen information again. its because
    	 * changing variable screen info may also change fix screen info.
    	 * Get fix screen information. Fix screen information gives
    	 * fix information like panning step for horizontal and vertical
    	 * direction, line length, memory mapped start address and length etc.
    	 */
    	if (get_fixinfo(fbdev.fd, &fbdev.fixinfo))
    		return -1;
    	/* Mmap the driver buffers in application space so that application
    	 * can write on to them. Driver allocates contiguous memory for
    	 * three buffers. These buffers can be displayed one by one. */
    	fbdev.buffersize = fbdev.fixinfo.line_length * fbdev.varinfo.yres;
    	fbdev.buffer_addr[0] = (unsigned char *)mmap(0,
    			fbdev.buffersize *  MAX_BUFFER,
    			(PROT_READ | PROT_WRITE),
    			MAP_SHARED, fbdev.fd, 0);
    
    	if ((int)fbdev.buffer_addr[0] == -1) {
    		printf("MMap Failed.\n");
    		return -1;
    	}
    	/* Store each buffer addresses in the local variable. These buffer
    	 * addresses can be used to fill the image. */
    	for (i = 1; i < MAX_BUFFER; i++)
    		fbdev.buffer_addr[i] = fbdev.buffer_addr[i-1] + fbdev.buffersize;
    
    	memset(fbdev.buffer_addr[0], 0x00, fbdev.buffersize * MAX_BUFFER);
    
    	return 0;
    }
    
    static int queueCaptureBuffers(void)
    {
    	int ret, i;
    	for (i = 0; i < MAX_BUFFER; i++) {
    		capt.buf.type = V4L2_BUF_TYPE_VIDEO_CAPTURE;
    		capt.buf.memory = V4L2_MEMORY_USERPTR;
    		capt.buf.index = i;
    		capt.buf.m.userptr = (unsigned long)fbdev.buffer_addr[capt.buf.index];
    		capt.buf.length = capt.fmt.fmt.pix.sizeimage;
    		ret = ioctl(capt.fd, VIDIOC_QBUF, &capt.buf);
    		if (ret < 0) {
    			perror("VIDIOC_QBUF\n");
    			return -1;
    		}
    	}
    	return ret;
    }
    
    /*
    	Starts Streaming of capture
    */
    static int startCapture(void)
    {
    	int a = V4L2_BUF_TYPE_VIDEO_CAPTURE, ret;
    	ret = ioctl(capt.fd, VIDIOC_STREAMON, &a);
    	if (ret < 0) {
    		perror("VIDIOC_STREAMON\n");
    		return -1;
    	}
    	return 0;
    }
    
    /*
     * Stop streaming on capture
     */
    static int stopCapture(void)
    {
    	int a = V4L2_BUF_TYPE_VIDEO_CAPTURE, ret;
    	ret = ioctl(capt.fd, VIDIOC_STREAMOFF, &a);
    	if (ret < 0) {
    		perror("VIDIOC_STREAMON\n");
    		return -1;
    	}
    	return 0;
    }
    
    /* Application main */
    static int app_main(int argc , char *argv[])
    {
    	int ret;
    	int i;
    	struct timeval before, after, result;
    	FILE *filePtr;
    
    	filePtr = fopen("captdump.yuv", "wb");
    	if (filePtr == NULL) {
    		printf("Cannot Open Output file:captdump.yuv \n");
    		return 0;
    	}
    	system ("echo 1:hdmi > /sys/devices/platform/vpss/graphics0/nodes");
    	/* Open the capture driver. Query the resolution from the capture driver
    	 */
    	printf("initCapture()\n");
    	ret = initCapture();
    	if (ret < 0) {
    		printf("Error in opening capture device for channel 0\n");
    		return ret;
    	}
    	/* Open the Display driver. */
    	printf("initFbdev()\n");
    	ret = initFbdev();
    	if (ret < 0) {
    		printf("Error in opening display device for channel 0\n");
    		return ret;
    	}
    restart:
    	/* Setup the capture driver Step includes
    	 * Set the format according to the resolution queried.
    	 * request for buffer descriptors for userpointer buffers
    	 */
    	printf("setupCapture()\n");
    	ret = setupCapture();
    	if (ret < 0) {
    		printf("Error in setting up of capture\n");
    		return ret;
    	}
    
    	/* Setup the display driver Step includes
    	 * Set the format according to the resolution queried by capture.
    	 * request for buffer descriptors for userpointer buffers
    	 */
    	printf("setupFbdevAndBuffers()\n");
    	ret = setupFbdevAndBuffers();
    	if (ret < 0) {
    		printf("Error in setting up of Display\n");
    		return ret;
    	}
    	printf("queueCaptureBuffers()\n");
    	ret = queueCaptureBuffers();
    	if (ret < 0) {
    		printf("Error in queuing capture buffers\n");
    		return ret;
    	}
    	/* Start Captureing */
    	printf("startCapture()\n");
    	ret = startCapture();
    	if (ret < 0) {
    		printf("Error in starting capture\n");
    		return ret;
    	}
    	/* Get time of day for calculating FPS */
    	gettimeofday(&before, NULL);
    	/* Start capture and display loop */
    	for (i = 0; i < MAXLOOPCOUNT; i++) {
    		/*
    		   Get capture buffer using DQBUF ioctl
    		 */
    		printf("VIDIOC_DQBUF\n");
    		ret = ioctl(capt.fd, VIDIOC_DQBUF, &capt.buf);
    		if (ret < 0) {
    			perror("VIDIOC_DQBUF\n");
    			return -1;
    		}
    		if ((i % 1000) == 0)
    			printf("C: %d\n TS: %d index %d\n", i,
    					(unsigned int)capt.buf.timestamp.tv_usec,
    					capt.buf.index);
    		/* Pan the display to the next buffer captured.
    		 * Application should provide y-offset in terms of number of
    		 * lines to have panning effect. To entirely change to next
    		 * buffer, yoffset needs to be changed to yres field. */
    
    		fbdev.varinfo.yoffset = (capt.buf.index * 1080) % MAX_BUFFER;
    		printf("FBIOPAN_DISPLAY\n");
    		ret = ioctl(fbdev.fd, FBIOPAN_DISPLAY, &fbdev.varinfo);
    		if (ret < 0) {
    			perror("Cannot pan display.\n");
    		}
    		/* Wait for buffer to complete display */
    		printf("FBIO_WAITFORVSYNC\n");
    		ret = ioctl(fbdev.fd, FBIO_WAITFORVSYNC, 0);
    		if (ret < 0) {
    			perror("wait vsync failed.\n");
    			break;
    		}
    
    		/* HDVPSS VIP capture is having bug that it locks up some time
    		 * under heavy bandwidth conditions. DQBUF will return error in
    		 * case hardware lock up. Applicatin needs to check for the
    		 * lockup and in case of lockup, restart the driver */
    		printf("TICAPT_CHECK_OVERFLOW\n");
    		if (capt.buf.flags & V4L2_BUF_FLAG_ERROR) {
    			ret = ioctl(capt.fd, TICAPT_CHECK_OVERFLOW, &capt.over_flow);
    			if (ret < 0) {
    				perror("TICAPT_CHECK_OVERFLOW\n");
    				return -1;
    			} else {
    				if (capt.over_flow.porta_overflow) {
    					printf("Port a overflowed\n\n\n\n\n\n\n");
    					stopCapture();
    					goto restart;
    
    				}
    				if (capt.over_flow.portb_overflow) {
    					printf("Port b overflowed\n\n\n\n\n\n\n");
    					stopCapture();
    					goto restart;
    				}
    			}
    		}
    
    		/* Queue the buffer back to display */
    		capt.buf.type = V4L2_BUF_TYPE_VIDEO_CAPTURE;
    		capt.buf.memory = V4L2_MEMORY_USERPTR;
    		capt.buf.m.userptr = (unsigned long)fbdev.buffer_addr[capt.buf.index];
    		capt.buf.length = fbdev.buffersize;
    		ret = ioctl(capt.fd, VIDIOC_QBUF, &capt.buf);
    		if (ret < 0) {
    			perror("VIDIOC_QBUF\n");
    			return -1;
    		}
    	}
    	/* Get time of day after to do FPS calculation */
    	fwrite(fbdev.buffer_addr[0], 1, capt.fmt.fmt.pix.sizeimage, filePtr);
    	gettimeofday(&after, NULL);
    	timeval_subtract(&result, &after, &before);
    	printf("Result Time:\t%ld %ld\n", result.tv_sec, result.tv_usec);
    	printf("Calculated Frame Rate:\t%ld Fps\n\n", MAXLOOPCOUNT/result.tv_sec);
    
    	printf("FBIOPUT_VSCREENINFO\n");
    	ret = ioctl(fbdev.fd, FBIOPUT_VSCREENINFO, &fbdev.org_varinfo);
    	if (ret < 0) {
    		perror("Error reading variable information.\n");
    	}
    	close(capt.fd);
    	close(fbdev.fd);
    	return ret;
    
    }
    
    
    int main(int argc , char *argv[])
    {
    	return app_main(argc , argv);
    }
     

    the error as following.

    initCapture()

    Driver Name: ti81xxvin
    Driver bus info: TI81xx Platform
    Driver is capable of doing capture


    initFbdev()
    fvid2.c: vps_fvid2_create: cbparams != NULL
    Fvid2 notify_send_event :fctrl->rmprocid=0x00000002 ;fctrl->lineid= 0 ;VPS_FVID2_RESERVED_NOTIFY= 9 ;fctrl->cmdprms_phy=0xbfb130d4
    fvid2.c: vps_fvid2_create: fctrl->fcrprms->fvid2handle == 0X9f2032cc
    Fvid2 handle 0x9f2032cc with notifyno 12 within 0 ms


    saLoopBackFbdev: width = 720
    saLoopBackFbdev: height = 480
    saLoopBackFbdev: bytesperline = 1440
    saLoopBackFbdev: sizeimage = 691200
    saLoopBackFbdev: pixelformat = V4L2_PIX_FMT_YUYV
    =============================================================

    Format:
    =============================================================
    fmt.type = 1
    fmt.width = 720
    fmt.height = 480
    fmt.pixelformat = 859981650
    fmt.bytesperline = 2160
    fmt.sizeimage = 1036800
    =============================================================
    setupFbdevAndBuffers()

    Fix Screen Info:
    ----------------
    Line Length - 3200
    Physical Address = 8ce00000
    Buffer Length = 41943040

    Var Screen Info:
    ----------------
    Xres - 800
    Yres - 480
    Xres Virtual - 800
    Yres Virtual - 480
    nonstd - 0
    Bits Per Pixel - 32
    blue lenth 8 msb 0 offset 0
    red lenth 8 msb 0 offset 16
    green lenth 8 msb 0 offset 8
    trans lenth 8 msb 0 offset 24

    Var Screen Info:
    ----------------
    Xres - 720
    Yres - 480
    Xres Virtual - 720
    Yres Virtual - 1920
    nonstd - 0
    Bits Per Pixel - 24
    blue lenth 8 msb 0 offset 0
    red lenth 8 msb 0 offset 16
    green lenth 8 msb 0 offset 8
    trans lenth 0 msb 0 offset 0

    Fix Screen Info:
    ----------------
    Line Length - 2160
    Physical Address = 8ce00000
    Buffer Length = 41943040
    queueCaptureBuffers()
    startCapture()
    chip id detected msb:0x51 lsb:0x47 rom version:0x7
    tvp514x 3-005c: tvp5147m1 (Version - 0x07) found at 0xb8 (OMAP I2C adapter)
    tvp514x 3-005c: Reg(0x00): 0x05
    tvp514x 3-005c: Reg(0x01): 0x0F
    tvp514x 3-005c: Reg(0x02): 0x01
    tvp514x 3-005c: Reg(0x03): 0x00
    tvp514x 3-005c: Reg(0x05): 0x10
    tvp514x 3-005c: Reg(0x06): 0x00
    tvp514x 3-005c: Reg(0x07): 0x00
    tvp514x 3-005c: Reg(0x08): 0x02
    tvp514x 3-005c: Reg(0x09): 0x80
    tvp514x 3-005c: Reg(0x0A): 0x80
    tvp514x 3-005c: Reg(0x0B): 0x80
    tvp514x 3-005c: Reg(0x0C): 0x00
    tvp514x 3-005c: Reg(0x0D): 0x00
    tvp514x 3-005c: Reg(0x0E): 0x0E
    tvp514x 3-005c: Reg(0x10): 0x80
    tvp514x 3-005c: Reg(0x11): 0x80
    tvp514x 3-005c: Reg(0x12): 0x80
    tvp514x 3-005c: Reg(0x14): 0x80
    tvp514x 3-005c: Reg(0x16): 0x55
    tvp514x 3-005c: Reg(0x17): 0x00
    tvp514x 3-005c: Reg(0x18): 0x25
    tvp514x 3-005c: Reg(0x19): 0x03
    tvp514x 3-005c: Reg(0x1A): 0x00
    tvp514x 3-005c: Reg(0x1B): 0x00
    tvp514x 3-005c: Reg(0x1C): 0x40
    tvp514x 3-005c: Reg(0x1D): 0x00
    tvp514x 3-005c: Reg(0x1E): 0x04
    tvp514x 3-005c: Reg(0x1F): 0x00
    tvp514x 3-005c: Reg(0x20): 0x07
    tvp514x 3-005c: Reg(0x21): 0x00
    tvp514x 3-005c: Reg(0x22): 0x01
    tvp514x 3-005c: Reg(0x23): 0x00
    tvp514x 3-005c: Reg(0x24): 0x15
    tvp514x 3-005c: Reg(0x25): 0x00
    tvp514x 3-005c: Reg(0x32): 0x00
    tvp514x 3-005c: Reg(0x33): 0x00
    tvp514x 3-005c: Reg(0x34): 0x11
    tvp514x 3-005c: Reg(0x35): 0xEE
    tvp514x 3-005c: Reg(0x36): 0xAF
    tvp514x 3-005c: Reg(0x37): 0xFF
    tvp514x 3-005c: Reg(0x38): 0xFF
    tvp514x 3-005c: Reg(0x39): 0x01
    capt.c: capture_create :cctrl->capt_num =2
    fvid2.c: vps_fvid2_create: cbparams != NULL
    Fvid2 notify_send_event :fctrl->rmprocid=0x00000002 ;fctrl->lineid= 0 ;VPS_FVID2_RESERVED_NOTIFY= 9 ;fctrl->cmdprms_phy=0xbfb140d4
    fvid2.c: vps_fvid2_create: fctrl->fcrprms->fvid2handle == 0X00000000
    Fvid2 handle 0x00000000 with notifyno 13 within 0 ms
    VPSS_FVID2: create handle is NULL
    ti81xxvin ti81xxvin: ti81xxvin_vps_create failed
    ti81xxvin ti81xxvin: Vps create failed
    tvp5147.ko: tvp514x_s_stream
    tvp5147.ko: enable=0,decoder->streaming=1
    VIDIOC_DQBUF__video_do_ioctl : in

    VIDIOC_DQBUF
    : Invalid argument

  • Hi vvt! I got the same problem as yours ,and I change the PORT to VIP1_PORTA,it didn't work also.Have you solved this problem yet?
  • Hi,

       In the DM8168-EVM we got the TVP5147 working with V4L2, you can find more info here:

    http://e2e.ti.com/support/dsp/davinci_digital_media_processors/f/717/p/326172/1170437.aspx#1170437

    -David