Wednesday, September 20, 2006

Arr !!! Linux 2.6.18

Finally Linus had released Linux 2.6.18.

Following patches of drivers will be available in linux-2.6.19-rc1:

1. smc91x support for H4.
2. OMAP Keypad driver
3. OMAP watchdog driver
4. OMAP I2C driver
5. OMAP IrDA driver
6. OMAP RNG driver, which actually builds :-).

I have _not_ tried to submit menelaus driver to upstream, as I had shifted my focus to DSPGW re-organization, dspfs and IVA DOFF format.

DSPFS is now available for public, please see the recent announcement e-mail to OMAP mailing list.

IVA DOFF format (Dynamic Object File Format):

- It is a properietary file format developed by Texas Instruments. Most of the multimedia companies _now_ releases there algorithms running on DSP/IVA in this format.

For unknowns, CCS (Code Composer Studio) produces the output file in COFF (Common Object File Format) , and _some_ magic TI tool converts that COFF to DOFF file.

You can easily compare the size of the both files, and DOFF is stripped down version of COFF with internal re-organization of COFF such that, you can improve the loading time of images.

It seems to be very easy to write down DOFF parser and loader if you hae doff.h from TI :-). But you may not be able to release that code until TI agrees to publish that file to public under _some_ license.

Writing the IVA/DSP DOFF Loader:

It is very easy under dspfs, as you can simply expose the internal memory as mmaped files to application. In case of IVA it might look like this:

|-- c55x
| |-- codecs
`-- iva1
|-- codecs

intmem - 128k IVA internal memory
copmem - linear 39k co-processor memories including image buffers A and B.
shmem - Shared memory in SDRAM

Now, once you have image data available and know what is the target load location, you can then "memcpy" into above memories, after mmaping it :-).

Sounds trivial, isn't it.

Please e-mail me to if you want to hear/contribute some more ideas on bridge driver.


But why can't we load CCS generated COFF file then? As this format is widely know to people, and it will be easy shared the code/loader/parser written for it. Like current Nokia-DSPGW distributes DSP dynamic loader along with coff.h files, and I am sure we don't need to ping TI for DOFF then.

I am going to have look at this coff.h files, and try to write parser/dump tool for it first, as it will be easy to just load the data to target memory afterwards, I will keep posted.

DaVinci updates:

1. I2C cleanup driver submitted and pushed to davinci-git tree.
2. Started MMC cleanup, but didn't go far, as I need to understand EDMA architecture. As of now, it looks like that I may not able to give more time to DaVinci for few weeks.