I am a bit confused on which firmware I should use to the VPSS subsystem in the TMS320C6A8168 processor. The hardware I use is based on the DM816X EVM, and the software components I use come from the EZSDK. Recently I ran into a problem when using i2c-2 at the same time as I was using the VPSS, which I read was due to the dm816x_hdvpss.xem3 firmware was using this i2c to communicate with the tvp7002 chip (which I do not have on my hardware).
I read somewhere that I should use the dm816x_hdvpss_v4l2.xem3 firmware instead. This seems to have solved the problem and everything seems to be running fine. However, I am seeing a lot of i2c-stuff from the kernel in the syslog.
<15>Sep 8 16:03:46 kernel: [ 5759.730000] omap_i2c omap_i2c.2: addr: 0x0079, len: 9, flags: 0x0, stop: 1
<15>Sep 8 16:03:46 kernel: [ 5759.730000] omap_i2c omap_i2c.2: IRQ (ISR = 0x0010)
<15>Sep 8 16:03:46 kernel: [ 5759.730000] omap_i2c omap_i2c.2: IRQ (ISR = 0x1010)
<15>Sep 8 16:03:46 kernel: [ 5759.730000] omap_i2c omap_i2c.2: IRQ (ISR = 0x1010)
<15>Sep 8 16:03:46 kernel: [ 5759.730000] omap_i2c omap_i2c.2: IRQ (ISR = 0x1010)
<15>Sep 8 16:03:46 kernel: [ 5759.730000] omap_i2c omap_i2c.2: IRQ (ISR = 0x1010)
<15>Sep 8 16:03:46 kernel: [ 5759.730000] omap_i2c omap_i2c.2: IRQ (ISR = 0x1010)
<15>Sep 8 16:03:46 kernel: [ 5759.730000] omap_i2c omap_i2c.2: IRQ (ISR = 0x1010)
<15>Sep 8 16:03:46 kernel: [ 5759.730000] omap_i2c omap_i2c.2: IRQ (ISR = 0x1010)
<15>Sep 8 16:03:46 kernel: [ 5759.730000] omap_i2c omap_i2c.2: IRQ (ISR = 0x1010)
<15>Sep 8 16:03:46 kernel: [ 5759.730000] omap_i2c omap_i2c.2: IRQ (ISR = 0x0004)
Is this an error indication of some kind? And if so, how can I use this information to troubleshoot the source of the error? Sometimes I also see these messages
[ 5463.620000] omap_i2c omap_i2c.2: Arbitration lost
[ 5622.600000] omap_i2c omap_i2c.2: controller timed out
I use the following procedure to set up my system.
insmod /ti/syslink.ko
/usr/local/bin/firmware_loader 2 /ti/dm816x_hdvpss_v4l2.xem3 start
modprobe vpss sbufaddr=0xBFB00000 mode=dvo2:mobill i2c_mode=1
modprobe ti81xxvo video1_numbuffers=2 video1_bufsize=4147200 video2_numbuffers=2 video2_bufsize=4147200
modprobe ov3640
modprobe ti81xxvin
modprobe ti81xxfb vram=0:8M,1:8M
When I remove the i2c_mode=1, the procedure stops working, and I get a segmentation fault when trying to load the VPSS kernel module. However, when I read http://processors.wiki.ti.com/index.php/DM814X_AM387X_VPSS_Video_Driver_User_Guide it seems to me that I should not use i2c_mode=1. Do I need to modify the VPSS module in some way? The i2c-communication with the decoder is handled by the ov3640 module. Should this work, or is this just a lucky coincident that it acctually does work?