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.

DM3730 no input video device

Other Parts Discussed in Thread: DM3730, ADS7846, TVP5150

Hello,

I'm using DM3730 module from Variscite and I need to capture video from parallel camera port (ISP) after DS90CR288AMTD deserializer.

I'can play video files using these commands:

gst-launch playbin2 uri=file:///test.mp4 flags="native-video"
gst-launch -v videotestsrc ! testdisplaysink2

but I can't capture video (using x4lsrc for example). There is no any /dev/mediaX or /dev/v4l2_subdevX devices. I have only /dev/video1 and /dev/video2 devices.

I use linux-2.6.32-psp03.00.01.06.sdk kernel.

There is my bootlog:

***************************************************************************

Texas Instruments X-Loader 1.46 (Feb 23 2012 - 16:46:32)

U-Boot 2009.11 (May 17 2011 - 09:55:39)

AM37x/DM37x-GP ES2.1, CPU-OPP2 L3-165MHz
VAR-SOM-OM3xxx Board + LPDDR/NAND
I2C: ready
DRAM: 256 MB
NAND: 512 MiB
In: serial
Out: serial
Err: serial
Net: smc911x-0
Warning: smc911x-0 MAC addresses don't match:
Address in SROM is ff:ff:ff:ff:ff:ff
Address in environment is 00:11:22:33:44:55

Hit any key to stop autoboot: 3 2 1 0
smc911x: detected LAN9220 controller
smc911x: phy initialized
smc911x: MAC 00:11:22:33:44:55
Using smc911x-0 device
TFTP from server 172.25.0.16; our IP address is 172.25.0.216
Filename 'uImage_dm3730'.
Load address: 0x80000000
Loading: *T #################################################################
#################################################################
#################################################################
#################################################################
#################################################################
#################################################################
#################################################################
#########################
done
Bytes transferred = 2454260 (2572f4 hex)
## Booting kernel from Legacy Image at 80000000 ...
Image Name: Linux-2.6.32
Image Type: ARM Linux Kernel Image (uncompressed)
Data Size: 2454196 Bytes = 2.3 MB
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.32 (orokach@park) (gcc version 4.4.1 (Sourcery G++ Lite 2009q3-67) ) #3 Sun May 15 10:33:12 IDT 2011
CPU: ARMv7 Processor [413fc082] revision 2 (ARMv7), cr=10c53c7f
CPU: VIPT nonaliasing data cache, VIPT nonaliasing instruction cache
Machine: Variscite VAR-SOM-OM3X
Memory policy: ECC disabled, Data cache writeback
OMAP3630/DM3730 ES1.0 (l2cache iva sgx neon isp 192mhz_clk )
SRAM: Mapped pa 0x40200000 to va 0xfe400000 size: 0x100000
Reserving 4194304 bytes SDRAM for VRAM
Built 1 zonelists in Zone order, mobility grouping on. Total pages: 45056
Kernel command line: mem=50M@0x80000000 mem=128M@0x88000000 console=ttyS2,115200n8 noinitrd rw root=/dev/nfs nfsroot=172.25.0.16:/home/zubkov/VisionSystem_rootfs,nolock ethaddr=00:11:22:33:44:55 ip=dhcp consoleblank=0 mpurate=1000 omap_vout.vid1_static_vrfb_alloc=y omapfb.mode=dvi:800x600-24@60 omapdss.def_disp=dvi
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: 50MB 128MB = 178MB total
Memory: 171324KB available (4236K code, 356K data, 172K init, 0K highmem)
Hierarchical RCU implementation.
NR_IRQS:402
Clocking rate (Crystal/Core/MPU): 26.0/400/800 MHz
GPMC revision 5.0
IRQ: Found an INTC at 0xfa200000 (revision 4.0) with 96 interrupts
Total of 96 interrupts on 1 active controller
OMAP GPIO hardware version 2.5
OMAP clockevent source: GPTIMER1 at 32768 Hz
Console: colour dummy device 80x30
Calibrating delay loop... 799.29 BogoMIPS (lpj=3121152)
Mount-cache hash table entries: 512
CPU: Testing write buffer coherency: ok
regulator: core version 0.5
NET: Registered protocol family 16
Target VDD1 OPP = 4, VDD2 OPP = 2
OMAP DMA hardware revision 5.0
bio: create slab <bio-0> at 0
SCSI subsystem initialized
usbcore: registered new interface driver usbfs
usbcore: registered new interface driver hub
usbcore: registered new device driver usb
i2c_omap i2c_omap.1: bus 1 rev4.0 at 2600 kHz
twl4030: PIH (irq 7) chaining IRQs 368..375
twl4030: power (irq 373) chaining IRQs 376..383
twl4030: gpio (irq 368) chaining IRQs 384..401
regulator: VUSB1V5: 1500 mV normal standby
regulator: VUSB1V8: 1800 mV normal standby
regulator: VUSB3V1: 3100 mV normal standby
twl4030_usb twl4030_usb: Initialized TWL4030 USB module
regulator: VMMC1: 1850 <--> 3150 mV normal standby
regulator: VDAC: 1800 mV normal standby
regulator: VAUX2_4030: 2800 mV normal standby
regulator: VPLL2: 1800 mV normal standby
regulator: VSIM: 1800 <--> 3000 mV normal standby
i2c_omap i2c_omap.2: bus 2 rev4.0 at 400 kHz
i2c_omap i2c_omap.3: bus 3 rev4.0 at 400 kHz
Switching to clocksource 32k_counter
musb_hdrc: version 6.0, pio, host, debug=0
musb_hdrc: USB Host mode controller at fa0ab000 using PIO, IRQ 92
musb_hdrc musb_hdrc: MUSB HDRC host driver
musb_hdrc musb_hdrc: 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.32 musb-hcd
usb usb1: SerialNumber: musb_hdrc
hub 1-0:1.0: USB hub found
hub 1-0:1.0: 1 port detected
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.
omap-iommu omap-iommu.0: isp registered
NetWinder Floating Point Emulator V0.97 (double precision)
VFS: Disk quotas dquot_6.5.2
Dquot-cache hash table entries: 1024 (order 0, 4096 bytes)
JFFS2 version 2.2. (NAND) © 2001-2006 Red Hat, Inc.
msgmni has been set to 335
alg: No test for stdrng (krng)
io scheduler noop registered
io scheduler deadline registered
io scheduler cfq registered (default)
OMAP DSS rev 2.0
OMAP DISPC rev 3.0
OMAP VENC rev 2
OMAP DSI rev 1.0
Serial: 8250/16550 driver, 4 ports, IRQ sharing enabled
serial8250.0: ttyS0 at MMIO 0x4806a000 (irq = 72) is a ST16654
serial8250.1: ttyS1 at MMIO 0x4806c000 (irq = 73) is a ST16654
serial8250.2: ttyS2 at MMIO 0x49020000 (irq = 74) is a ST16654
console [ttyS2] enabled
brd: module loaded
loop: module loaded
omap2-nand driver initializing
NAND bus width 86 instead 85 bit
NAND device: Manufacturer ID: 0x2c, Chip ID: 0xbc (Micron NAND 512MiB 1,8V 16-bit)
Creating 5 MTD partitions on "omap2-nand.0":
0x000000000000-0x000000080000 : "xloader-nand"
0x000000080000-0x000000240000 : "uboot-nand"
0x000000240000-0x000000280000 : "params-nand"
0x000000280000-0x000000780000 : "linux-nand"
0x000000780000-0x000020000000 : "jffs2-nand"
smsc911x: Driver version 2008-10-21.
smsc911x-mdio: probed
eth0: attached PHY driver [Generic PHY] (mii_bus:phy_addr=ffffffff:01, irq=-1)
smsc911x: get mac from cmd line.
ethaddr parsed from commandline: 00:11:22:33:44:55
net eth0: MAC Address: 00:11:22:33:44:55
ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver
ehci-omap ehci-omap.0: OMAP-EHCI Host Controller
ehci-omap ehci-omap.0: new USB bus registered, assigned bus number 2
ehci-omap ehci-omap.0: irq 77, io mem 0x48064800
ehci-omap ehci-omap.0: USB 2.0 started, EHCI 1.00
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: OMAP-EHCI Host Controller
usb usb2: Manufacturer: Linux 2.6.32 ehci_hcd
usb usb2: SerialNumber: ehci-omap.0
hub 2-0:1.0: USB hub found
hub 2-0:1.0: 3 ports detected
Initializing USB Mass Storage driver...
usbcore: registered new interface driver usb-storage
USB Mass Storage support registered.
udc: OMAP UDC driver, version: 4 October 2004 (iso) (dma)
mice: PS/2 mouse device common for all mice
ads7846 spi1.0: touchscreen, irq 337
input: ADS7846 Touchscreen as /devices/platform/omap2_mcspi.1/spi1.0/input/input0
twl_rtc twl_rtc: rtc core: registered twl_rtc as rtc0
twl_rtc twl_rtc: Power up reset detected.
twl_rtc twl_rtc: Enabling TWL-RTC.
i2c /dev entries driver
Linux video capture interface: v2.00
omap-iommu omap-iommu.0: isp: version 1.1
OMAP Watchdog Timer Rev 0x31: initial timeout 60 sec
usbcore: registered new interface driver usbhid
usbhid: USB HID core driver
Advanced Linux Sound Architecture Driver Version 1.0.21.
No device for DAI omap-mcbsp-dai-0
No device for DAI omap-mcbsp-dai-1
No device for DAI omap-mcbsp-dai-2
No device for DAI omap-mcbsp-dai-3
No device for DAI omap-mcbsp-dai-4
asoc: twl4030 <-> omap-mcbsp-dai-0 mapping ok
ALSA device list:
#0: var_snd_soc_card (twl4030)
TCP cubic registered
NET: Registered protocol family 17
NET: Registered protocol family 15
Power Management for TI OMAP3.
usb 2-1: new high speed USB device using ehci-omap and address 2
Compensating OPP4 for 63mV Orig nvalue:0xaa978b New nvalue:0xab8afc
Compensating OPP3 for 63mV Orig nvalue:0xaaccb3 New nvalue:0xaab59e
Compensating OPP2 for 50mV Orig nvalue:0x9a87eb New nvalue:0xaaeecf
Compensating OPP1 for 50mV Orig nvalue:0x8982df New nvalue:0x99ceb1
Unable to set L3 frequency (400000000)
Switched to new clocking rate (Crystal/Core/MPU): 26.0/400/1000 MHz
IVA2 clocking rate: 800 MHz
SmartReflex driver initialized
VFP support v0.3: implementor 41 architecture 3 part 30 variant c rev 3
twl_rtc twl_rtc: setting system clock to 2000-01-01 00:00:00 UTC (946684800)
omapdss DPI error: display already enabled
omap_vout omap_vout: 'dvi' Display already enabled
omapdss DPI error: display already enabled
omap_vout omap_vout: 'dvi' Display already enabled
omap_vout omap_vout: Buffer Size = 3686400
omap_vout omap_vout: : registered and initialized video device 0
omap_vout omap_vout: Buffer Size = 3686400
omap_vout omap_vout: : registered and initialized video device 1
usb 2-1: New USB device found, idVendor=0424, idProduct=2514
usb 2-1: New USB device strings: Mfr=0, Product=0, SerialNumber=0
hub 2-1:1.0: USB hub found
hub 2-1:1.0: 3 ports detected
net eth0: SMSC911x/921x identified at 0xd08b2000, IRQ: 189
Sending DHCP requests .., OK
IP-Config: Got DHCP answer from 0.0.0.0, my address is 172.25.0.101
IP-Config: Complete:
device=eth0, addr=172.25.0.101, mask=255.255.255.0, gw=172.25.0.1,
host=172.25.0.101, domain=, nis-domain=(none),
bootserver=0.0.0.0, rootserver=172.25.0.16, rootpath=
Looking up port of RPC 100003/2 on 172.25.0.16
Looking up port of RPC 100005/1 on 172.25.0.16
VFS: Mounted root (nfs filesystem) on device 0:12.
Freeing init memory: 172K

INIT: version 2.86 booting

Please wait: booting...
Starting udev
Activating swap
Remounting root file system...
Caching udev devnodes
Populating dev cachemv: cannot rename '/tmp/devices': No such file or directory
Loading modules:
Mounting local filesystems...
logger: mount: mount point /proc/bus/usb does not exist
Populating volatile Filesystems.
ALSA: Restoring mixer settings...
NOT configuring network interfaces: / is an NFS mount
System time was Sat Jan 1 00:00:10 UTC 2000.
Setting the System Clock using the Hardware Clock as reference...
System Clock set. System local time is now Sat Jan 1 00:00:10 UTC 2000.
Fri Mar 25 02:12:00 UTC 2011
Saving the System Clock time to the Hardware Clock...
Hardware Clock updated to Fri Mar 25 02:12:00 UTC 2011.

INIT: Entering runlevel: 5

Starting system message bus: dbus.
Starting Dropbear SSH server: dropbear.
Starting telnet daemon.
Starting syslogd/klogd: done
Starting thttpd.
Starting PVR
PVRSRV_PIXEL_FORMAT_ARGB8888
Starting Matrix GUI application.

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

Arago Project http://arago-project.org dm37x-evm ttyS2

Arago 2011.02 dm37x-evm ttyS2

dm37x-evm login: root
root@dm37x-evm:~# ls /dev
bc_cat ram1 tty36
bccat0 ram10 tty37
block ram11 tty38
bus ram12 tty39
char ram13 tty4
console ram14 tty40
cpu_dma_latency ram15 tty41
fb ram2 tty42
fb0 ram3 tty43
full ram4 tty44
i2c-1 ram5 tty45
i2c-2 ram6 tty46
i2c-3 ram7 tty47
initctl ram8 tty48
input ram9 tty49
kmem random tty5
kmsg rtc tty50
log rtc0 tty51
loop0 shm tty52
loop1 snd tty53
loop2 tty tty54
loop3 tty0 tty55
loop4 tty1 tty56
loop5 tty10 tty57
loop6 tty11 tty58
loop7 tty12 tty59
mem tty13 tty6
mtd0 tty14 tty60
mtd0ro tty15 tty61
mtd1 tty16 tty62
mtd1ro tty17 tty63
mtd2 tty18 tty7
mtd2ro tty19 tty8
mtd3 tty2 tty9
mtd3ro tty20 ttyS0
mtd4 tty21 ttyS1
mtd4ro tty22 ttyS2
mtdblock0 tty23 ttyS3
mtdblock1 tty24 ubi_ctrl
mtdblock2 tty25 udev_network_queue
mtdblock3 tty26 urandom
mtdblock4 tty27 vcs
network_latency tty28 vcs1
network_throughput tty29 vcs2
null tty3 vcsa
omap-resizer tty30 vcsa1
psaux tty31 vcsa2
ptmx tty32 video1
pts tty33 video2
pvrsrvkm tty34 watchdog
ram0 tty35 zero
root@dm37x-evm:~#

*******************************************************************

Best regards,
Vitaly 

  • Vitaly,

    Have you enabled capture drivers in kernel config? Also do you have driver for the capture interface where the data is coming through the deserializer?

  • Thanks for your reply, Thomas.

    We use video camera which generates 8 bits bayer per pixel image. Using four LVDS channels it is connected to DS90CR288AMTD deserializer. Вeserializer's pins are connected to these camera port's pins:

    CAM_D0, CAM_D1 ... CAM_D7 - 8 bits for each pixel data,
    CAM_HS, CAM_VS - vertical and horizontal synchronization,
    CAM_PCLK - clock.

    We a going to replace our camera with FPGA which will generate the same bayer video stream in future.

    There is configuration of kernel:



    As i can see - there is no any video decoders on the last screenshot, maybe I should select one to capture bayer or, if it is not possible, simply grayscale image.

    Best regards,
    Vitaly 

  • Vitaly,

    This configuration is not sufficient. It will not load the TVP515x driver as it will not be able to probe and find the device. Effectively there wont' be any camera capture driver loaded. 

    What you've to do is to write a small driver for your camera/FPGA and include it in the kernel and make few more modifications to add to your board file. 

  • Thanks, Thomas.

    Do I understand correctly that adding Texas Instruments TVP5150 video decoder from the last screenshot and recompiling this kernel sources will not be enough to probe and find capture device?

    Is the most correct way to solve my problem is to write my own driver similar to any fairly simple driver in kernel' sources? May be you could recommend me any standart simple capture driver to explore or any documentation?

    Best regards,
    Vitaly 

  • Vitaly,

    Since you don't have TVP515x physically connected on the board, it will fail during the probe function when it tries to do a I2C read. If TVP5150 is present, then it will succeed. 

    You can start writing your own driver by taking a simple driver from Analog devices or TVP5150 as an example. I'm not sure about the availability of documentation.  You can also refer V4l2 specs.

    http://linuxtv.org/downloads/v4l-dvb-apis/