Sunday, October 31, 2010
Buying Life Insurance: What Kind and How Much?
Tuesday, October 26, 2010
Jumper Settings for PCI Mode
Jumper Settings for PCI Mode
To use the windows host PCI driver, the related jumpers on the DM64x EVM need to be set to appropriate positions as shown below when the card is inserted in a PCI slot.
2.3 Jumper Settings for EVM-DM6467
SW3 User DIP switches
SW3-1: off (BOOTMODE[0])
SW3-2: on (BOOTMODE[1])
SW3-3: off (BOOTMODE[2])
SW3-4: off (BOOTMODE[3])
BOOTMODE[3:0]= 0x0010
SW3-5: off (BW)
SW3-6: off (PCI: Enable PCI)
SW3-7: off (DSP)
SW3-8: off (SR)
Saturday, October 23, 2010
DM6467 PCI U-Boot Script
DM6467 PCI: Host Sample application for PCI Boot
PCI Throughput on C64x+ DSPs
DM6467 EVM Technical Reference:
Wiki: Pinmux Switching from NAND to PCI
Examples: USB to PCI loopback
FW: DM6467 EVM SW3 settings for PCI boot
Jaya,
The docs are amazingly confusing on the way these switches map to the
polarity of signals. They use all the terms on/off, up/down, "0/1" instead
of making things easy and clear... I spent a day messing around with this
before finally getting it to work.
If you look at the EVM technical ref page 3-29, you'll see the table of
settings for SW3. You'll notice the polarity of the "switch" bits and the
"pins" are reversed; this means that TO MAKE A BIT A LOGICAL 1, THE SWITCH
NEEDS TO BE IN THE DOWN POSITION. The "down" position means the little white
switch is on the side where the little numbers (1-8) are labeled on the
switch casing, the LEFT if you have the board oriented so that you can read
the "SW3" label underneath the switch (long way up with the RJ45 on the
right side).
So, for example, to do PCI with no auto init, switches 1-4 (using the little
numbers on the side of the switch casing to index switches) corresponding to
the BM bits should look like this (where XXXXX is the white switch, and
_____ is blank space
1. XXXXX _____ (LEFT = DOWN = PIN VALUE "1")
2. _____ XXXXX (RIGHT = UP = PIN VALUE "0")
3. XXXXX _____ (LEFT = DOWN = PIN VALUE "1")
4. XXXXX _____ (LEFT = DOWN = PIN VALUE "1")
By the way, we have the other switches as follows:
5. LEFT
6. LEFT
7. LEFT
8. RIGHT
With the switches set this way, and external 5V power disconnected, and
board in PCI slot, I was able to bring up my Fedora box and then do "lspci"
and see the TI board enumerated as a PCI device.
I am still working on getting the actual booting working, but am almost
there...
Steve
Thursday, October 21, 2010
1080p at 60 fps H.264 Decode or 8-Channel D1 Encoding with TI DaVinci Video Processor
1080p at 60 fps H.264 Decode or 8-Channel D1 Encoding with TI DaVinci Video Processor
TI’s 1 GHz DM6467T is a single-chip processor that enables networked digital video applications to decode high-definition (HD) H.264 1080p at 60 frames per second.
By Cliff Roth
Page 1 of 1
Video/Imaging DesignWire
(2/11/2010 12:23:12 AM)
Texas Instruments has introduced the TMS320DM6467T, a new DaVinci video processor designed to meet the demand for increased digital video quality, higher resolution and faster frame rates for video communications and security applications. The 1 GHz DM6467T is a single-chip processor that enables networked digital video applications to decode high-definition (HD) H.264 (1080p at 60 frames per second (fps)). The processor also provides optimized imaging support and the advanced video processing capabilities required to support up to eight simultaneous channels of H.264 D1 real-time video encoding (with a third party solution).
The DM6467T offers developers the ability to create multi-format video supporting multiple channels, with what TI says is superior compression technology and advanced processing capabilities such as analytics. It also lowers system cost while increasing system functionality and offering flexibility with a programmable on-chip digital signal processor (DSP). Designed to improve performance in every capacity, TI says the DM6467T combines 37 percent higher processing performance than the DM6467 with improved video coprocessors and higher speed peripherals to create a scalable architecture for video surveillance, HD video conferencing, multi-format digital media adaptors, real-time digital video recorders (DVRs) and digital signage (www.ti.com/dm6467t-prprod).
DM6467T key features and benefits:
-- The combined performance of a 1 GHz C64x+(TM) DSP and 500 MHz
ARM926EJ-S
-- Supports H.264 1080p decoding up to 60 fps, a well as eight
simultaneous channels of H.264 D1 real-time video encoding with
solution from a third party
-- Higher core speed with flexible DSP programmability provides
sufficient processing capacity to implement advanced video processing
algorithms and functions
-- Faster DDR2 interface at 400 MHz facilitates higher bandwidth for more efficient video throughput
-- Two integrated 500 MHz High Definition Video/Imaging Co-Processors
(HD-VICP) accelerate video processing and increase application
efficiency
-- Faster 150 MHz video port interface supports 1080p capture/display
-- PCI bus increased to 66 MHz for faster data transfer
-- Ready for use, off-the-shelf video analytics function libraries are available now
-- Hardware and software compatibility with the TMS320DM6467, announced in December 2007, enables easy migration to the DM6467T
-- High level of integration further reduces system cost, complexity,
power and size
TI announced that the TMS320DM6467T is now available for sampling and is priced at USD $106.95 in quantities of 1,000 units (1ku). The TMDXEVM6467T evaluation module (EVM) comes complete with software, tools and demonstration applications enabling developers to evaluate video processing algorithms and chip performance as well as immediately begin application development. Board support software includes an Open Source Linux Git, DSP/BIOS Link and frameworks for audio/video and codec engines. The DM6467T EVM is available for USD $1,995 and is software and hardware compatible with the DM6467 processor and EVM. TI will also be offering a TMDXSDV6467T daughter card for backward display compatibility with the DM6467 evaluation module, sold separately.
Find out more about the DM6467T by visiting the links below:
-- TMS320DM6467T processor product folder:
http://www.ti.com/dm6467t-prprod
-- TMS320DM6467T processor data sheet:
http://www.ti.com/dm6467t-prdatasheet
-- TMDXEVM6467T tool folder: http://www.ti.com/dm6467t-prtools
H.264 1080p@30 BP Encoder on DM6467 User’s Guide
video_encode_io1_dm6467
/video_encode_io1_dm6467.x470MV -c h264enc -i ../../clips/ToysAndCalendar_FullHD.yuv -r
1920x1088 -o test.264
video_encode_io1_dm6467
======== Building linux/video_encode_io1_dm6467 ========
Configuring application using linux/video_encode_io1_dm6467.cfg
making package.mak (because of package.bld) ...
generating interfaces for package video_encode_io1_dm6467_config (because package/package.xdc.inc is older than package.xdc) ...
configuring video_encode_io1_dm6467.x470MV from package/cfg/video_encode_io1_dm6467_x470MV.cfg ...
Info: Configuring engine named 'encode' from the info file for DSP server './encodeCombo.x64P',
located in package 'ti.sdo.servers.encode':
Target app will look for the DSP server image 'encodeCombo.x64P' in its current directory.
Adding codec 'h264enc' (ti.sdo.codecs.h264enc.ce.H264ENC), scratch groupId=0
Adding codec 'aacheenc' (ti.sdo.codecs.aacheenc.ce.AACHEENC), scratch groupId=1
Adding codec 'g711enc' (ti.sdo.codecs.g711enc.ce.G711ENC), scratch groupId=1
Info: Reading DSP memory map from the info file for DSP server './encodeCombo.x64P',
located in package 'ti.sdo.servers.encode':
will link with ti.sdo.dmai:lib/dmai_linux_dm6467.a470MV
will link with ti.sdo.ce.image1:lib/release/imgdec1.av5T;lib/release/imgenc1.av5T
will link with ti.sdo.ce.image:lib/release/image.av5T
will link with ti.sdo.ce.video2:lib/release/viddec2.av5T
will link with ti.sdo.ce.video1:lib/release/viddec1.av5T;lib/release/videnc1.av5T
will link with ti.sdo.ce.video:lib/release/video.av5T
will link with ti.sdo.ce.audio1:lib/release/auddec1.av5T;lib/release/audenc1.av5T
will link with ti.sdo.ce.audio:lib/release/audio.av5T
will link with ti.sdo.ce.speech1:lib/release/sphdec1.av5T;lib/release/sphenc1.av5T
will link with ti.sdo.ce.speech:lib/release/speech.av5T
will link with ti.sdo.ce:lib/release/ce.av5T
will link with ti.sdo.ce.alg:lib/release/Algorithm_noOS.av5T;lib/release/alg.av5T
will link with ti.sdo.ce.ipc.dsplink:lib/release/ipc_dsplink_6467.av5T
will link with ti.sdo.ce.osal.linux:lib/release/osal_linux_470.av5T
will link with ti.sdo.fc.acpy3:lib/release/acpy3.a470MV
will link with ti.sdo.fc.memutils:lib/release/memutils.a470MV
will link with ti.sdo.fc.dman3:lib/release/dman3Cfg.a470MV
will link with ti.sdo.ce.node:lib/release/node.av5T
will link with ti.sdo.ce.utils.xdm:lib/release/XdmUtils.av5T
will link with ti.sdo.utils.trace:lib/release/gt.a470MV
will link with ti.sdo.linuxutils.cmem:lib/cmem.a470MV
will link with dsplink.gpp:export/BIN/Linux/DAVINCIHD/RELEASE/dsplink.lib
cl470MV package/cfg/video_encode_io1_dm6467_x470MV.c ...
Compiling appMain.dm6467.o470MV from appMain.c..
Compiling linux/main.dm6467.o470MV from linux/main.c..
Linking linux/video_encode_io1_dm6467.x470MV from appMain.dm6467.o470MV linux/main.dm6467.o470MV linux/video_encode_io1_dm6467_config/linker.cmd /home/samyu/dvsdk_2_00_00_22/dmai_1_20_00_06/packages/ti/sdo/dmai/lib/dmai_linux_dm6467.a470MV..
make[3]: Leaving directory `/home/samyu/dvsdk_2_00_00_22/dmai_1_20_00_06/packages/ti/sdo/dmai/apps/video_encode_io1'
Useful TI support:
H.264 encoder for 1080i on DM6467T DVEVM with DVSDK 3.10 and Arago
h264fhdvenc in DVSDK 3.10!
the new h264fhd encoder on DM6467
Wednesday, October 20, 2010
DVSDK 2.0: Booting via TFTP (with 2.0 Kernel) Using NFS File System
bootU-boot settings:
DM6467 EVM # printenv
bootdelay=3
baudrate=115200
nfshost=192.168.1.2
rootpath=/home/xxxx/workdir/filesys
gateway=192.168.1.1
bootfile=uImage
ipaddr=192.168.1.7
serverip=192.168.1.2
stdin=serial
stdout=serial
stderr=serial
ethaddr=00:0e:99:02:b5:ca
bootcmd=ping 192.168.1.2;tftp 80700000 uImage-dm6467;bootm
bootargs=console=ttyS0,115200n8 noinitrd rw ip=dhcp root=/dev/nfs nfsroot=192.168.1.2:/home/samyu/workdir/filesys,nolock mem=120M davincihd_capture.channel0_n4
setenv bootcmd 'ping 192.168.1.2;tftp 80700000 uImage-dm6467;bootm'
setenv bootargs console=ttyS0,115200n8 noinitrd rw ip=dhcp root=/dev/nfs nfsroot=$(nfshost):$(rootpath),nolock mem=120M davincihd_capture.channel0_numbuffers=4
saveenv
boot
DVSDK 2.0 Kernel: uImage-dm6467
@
~/dvsdk_2_00_00_22/PSP_02_00_00_140/bin/dm6467
cp uImage-dm6467 /tftpboot/
Test if it is working:
==============================================
DM6467 EVM # setenv ipaddr 192.168.1.7
DM6467 EVM # setenv serverip 192.168.1.2
DM6467 EVM # saveenv Saving Environment to NAND...
Erasing Nand...Writing to Nand... done
DM6467 EVM # tftp 80700000 uImage-dm6467 TFTP from server 192.168.1.2; our IP address is 192.168.1.7
Filename 'uImage-dm6467'.
Load address: 0x80700000
Loading: #################################################################
#################################################################
#################################################################
#################################################################
#################################################################
################################################################
done
Bytes transferred = 1988588 (1e57ec hex)
DM6467 EVM # bootm
## Booting image at 80700000 ...
Image Name: Linux-2.6.18_pro500-davinci_evm-
Image Type: ARM Linux Kernel Image (uncompressed)
Data Size: 1988524 Bytes = 1.9 MB
Load Address: 80008000
Entry Point: 80008000
Verifying Checksum ... OK
OK
Starting kernel ...
Uncompressing Linux................................................................................................................................... done, b.
Linux version 2.6.18_pro500-davinci_evm-arm_v5t_le (x0029463@aspbuild11) (gcc version 4.2.0 20070126 (prerelease) (MontaVista 4.2.0-3.0.0.0702771 2007-03-10))9
CPU: ARM926EJ-S [41069265] revision 5 (ARMv5TEJ), cr=00053177
TI support post: NFS root does not work with DVSDK 2.0 / DM6467
http://e2e.ti.com/support/dsp/davinci_digital_media_processors/f/99/p/5878/121145.aspx
"
as suggested above, using ping command from u-boot prompt should allow you to work-around this problem until our next software release fixes this issue.
you can try something similar to the command below if you want to automate the this work-around.
bootcmd=ping 192.168.0.25;nboot 80700000 0 a0000;bootm
"
Davinci HD EVM DM6467 support page
Sunday, October 17, 2010
DM6467 EVM Software Setup
Software Setup
The latest DVSDK release can be downloaded from
here. For Monta Vista Linux distribution, use DVSDK 2.00, which is production quality for DM6467. For community Linux, use DVSDK 3.10, which is currently production quality for DM6467T.
The
GSG: DM6467 DVEVM Software Setup page covers how to install the Linux tools, (DV)SDK software, and Linux Support Package for the DM6467/DM6467T DVEVM, assuming a Ubuntu 8.04 LTS (or similar) distribution.
Note: To use DM6467 on community Linux see the
DM6467 platform setup in DVSDK 3.10 page.
Wiki: DM6467 Getting Started Guide
Additional Documents and Resources
[From the Getting Started Guides]
Additional Documents and Resources
You can use the following sources to supplement this user’s guide:
❏ Spectrum Digital website:
http://support.spectrumdigital.com/boards/evmdm6467
❏ TI Linux Community for DaVinci Processors:
http://linux.davincidsp.com
❏ TI DaVinci Software Updates: http://www.ti.com/dvevmupdates
❏ TI DaVinci Technology Developers Wiki:
http://wiki.davincidsp.com
❏ Codec Engine Application Developer's Guide (SPRUE67)
❏ Other PDF documents included with the DVEVM kit
❏ Section 4.11 lists documentation in the DVSDK software installation.
❏ SoC Analyzer Help menu
TMS320DM6467 DVEVM v2.0 Getting Started Guide
Thursday, October 14, 2010
Experiments: Amazon.com Banner
TI DM6467 Analysis
http://blog.radvision.com/voipsurvivor/2009/11/16/hd-video-chip-case-study-ti-dm6467-analysis/
This post is part of our
Designing Hardware for HD series. Be sure to check it out!
[While I've done my best to cover the various options for HD video chips and the trends in the market, I also wanted to take a deeper dive and explain how we analyze such a chip. In this case, the TI DM6467, which we have selected as the basis for our BEEHD product. For that, I asked Amit Klir, our resident video architecture expert, to share his insights. I do warn you though some of the information here is quite low-level even for me.]
I’ve been working on the
TI DM6467 for a while now, as part of our
VC240 HD (video telephony LCD monitor) project. My role in the project is taking care of the audio and video codecs’ quality and the architecture of the media system we have built into the device, on top of the chip itself.
The DM6467 is a system-on-chip for multimedia applications. From an architecture point of view, it splits the media processing and the application into two separate processors: media processing is targeted to run on a powerful DSP that comes coupled with video accelerators, while the application is targeted to run on an ARM host processor.

TI DM6467 functional block diagram (
PDF)
I won’t go over the whole set of peripherals and devices in the block diagram above, but I do want to touch the areas that I think would interest you the most, especially if you are in a search for a video chip.
EVM
The DM6467 has an EVM (evaluation board), which you can use to start the project without having to design and manufacture the hardware before the programmers start doing their thing. This is possible, as the DM6467 has a host of its own.
Host
The DM6467 comes with a 300 MHz ARM 9 host processor. TI was kind enough to provide
MontaVista Linux out of the box for it, with an almost full set of driver packages to start with.
We have based our solution on top of the TI offering, although at times we had to “tweak” some of the drivers and the kernel itself.
DSP
The DSP on the DM6467 is a C64+ core – a technology that TI is using in a lot in other system-on-chip solutions of theirs, making it quite robust. It is fully programmable, allowing the use of it for a lot of tasks that are not related specifically to video coding. We actually use the DSP to deal with the audio coding in parallel.
In a way, the DSP itself doesn’t run the video coding engine, but acts as the controller of the process, which runs on the various accelerators. It is what allows the DM6467 to achieve HD video coding.
To access the video accelerators, the DSP uses the DMA engine for rapid data transfer, and interacts with small ARM 968 processors that control the accelerators.
Some other cool features the DSP has are the ability to handle very large vector operations and its advanced cache system.
Accelerators
As mentioned already, the DM6467 comes with a set of video accelerators that are designed to meet specific video processing challenges.
VICP
Video coding on the DM6467 is done in the VICP – the High Definition Video Imaging Co-Processor. There are two of those in the DM6467 – one for encoding and the other for decoding. This separation allows simultaneously encoding and decoding in a single chip.
These accelerators where designed to deal with the CPU-intensive video coding tasks required by H.264 and other codecs. These include motion estimation, intra-prediction, mathematical transforms, quantization, loop filtering and syntax coding.
VDCE
The VDCE is an image co-processor which is used for specific pre- and post-processing algorithms on the video frame, such as:
- Conversion between image formats (YUV420 to YUV422 and vice versa)
- Downscaling
- Cropping
- Anti aliasing
DMA
The DMA engine of the DM6467 is quite a powerful one. It deals with all data transfers from/to virtually everywhere on the system (from external memory to internal one, from external memory to the VICPs, etc). This means that the DSP remains “free” of these tedious memory transfers and can be utilized for “real” processing.
As the goal is to deal with HD video, the memory bandwidth is extremely high, to the point that without the DMA engine it would simply be impossible.
Peripherals
The great thing about the DM6467, especially if you are planning on developing an endpoint device, is the fact that it comes with quite a wide range of peripherals: USB, video input and output ports, PCI, Ethernet to name a few.
These make it easier to design the hardware, when you finally get down to it.
Large ecosystem
One thing that should not be left out when selecting a video chip is the ecosystem that comes with it, usually from the chipset vendor. Another aspect of it is the user base – how many have already used the chip (or are currently using) for a similar purpose?
The DM6467 has quite a large ecosystem, which is based on the fact that it uses an ARM 9 as host and a C64+ DSP. The C64+ DSP is one of the most popular DSPs out there, and has been in the market for a few years already. So additional tools and modules that you might need down the road – such as encryption algorithms, audio codecs, image processing libraries and the likes – are probably already available from 3rd party companies.
What Else Is Needed?
While this might seem perfect, there are areas where the DM6467 is going to cause you some pain, if you are planning to use it for an HD videophone product.
Here are a few, which might – sadly – require you to add additional hardware devices in your hardware design:
Only 2 Video Ports
The DM6467 comes with only two video ports. This allows connecting a camera from one side and a display from the other (or other devices). It doesn’t leave a lot of room for additional inputs and outputs that might be required in a full videophone product.
OSD
While the DM6467 has its own On Screen Display (OSD) module, it supports only 2 bits-per- pixel. That’s a range of 4 colors for the OSD, which just doesn’t cut it for a good user interface. It means that you will need to find another solution for your OSD, external to the DM6467.
Upscaler
The DM6467 provides a hardware-based down-scaler, but not an up-scaler. You will either need to implement it in software on the DSP, or do it on an external device. And you will definitely need to upscale once you get video in lower resolutions.
Muxer
There is no hardware acceleration available in the DM6467 for comprising the video layout on the screen (combining several video images into a single display).
No PCI Express Interface
While you might not need a PCI Express interface, but it might come handy at times – especially if the way you plan to deal with the OSD, Upscaling and muxing is by means of moving the data to and from the DM6467 to external devices doing these operations by way of PCI Express.
The fact that there isn’t such an interface means that some architecture solutions will simply be harder to implement (if not impossible altogether).
Limited USB and PCI
If you plan on using the USB or PCI interfaces that come with the DM6467, you should check their specs closely. The way they are designed, and especially their memory management, doesn’t allow for high throughputs – at given use cases they provide a lot less bits per second than you need.
Limitations Aside – DM6467 is a Solid Choice
While this may seem to a bit harsh, it still is one of the best solutions on the market today, and for good reasons:
- The video processing capabilities of this chip are impressive. They give you the ability to do video at high definition with a lot of flexibility – something that greatly assisted us when we were adding our SVC technology to our solution. This flexibility is given at a price point that is quite low – probably the lowest you will find today for a flexible multimedia system-on-chip.
- I don’t know of other solutions out there that give all of the benefits that come from the DM6467 without any of its limitations, so it’s still the best you can get.
- TI is assisting their customers when it comes to finding workarounds to these deficiencies and with great success. They take video telephony seriously when it comes to DM6467 and their system engineers are quite capable of providing the answers necessary. This assistance, for me, is quite important when designing such a complex product.
I’d say that this is
why this chip is so popular by video conferencing vendors.

Subscribe to Comments [Atom]