Linux Port for Innovator Board
About Embedded Linux                     About OMAP                                          

Supervisor: Prof. Subhashis Banerjee

Status:Dated 15th Sept
                The primary target right now is to port linux on to Innovator Board from Texas Instruments.The board is yet to arrive ,so right now i am studying the architecture ,capabilities of the board.I have also compiled a kernel and the boot loader for the same,but they need to be tested.I have collected / built all the tools necessary for linux installation ,and even for testing and developing DSP applications.So right now --'Wait'.


About Innovator Board:
    Innovator is just a portable assembly of the ARM based OMAP5910 with its peripherals all provided in a compact mobile form.The main peripherals are:
    1 LCD touchscreen
    2 Camera,CIF cmos image sensor
    3 Input device :keypad ,microphone etc
   
4.Audio codec
    5.Speakers
    6.IrDA Interface
Ports:
    1.Dual channel serial and usb ports.
    2.Jtag interface


The main feature of the board is the OMAP5910 ,it has a MPU(TI925) core built along with DSP  core on chip thus facilitating use as audio,video device and in wireless application development.

It has seperate extension slot that can hold  GSM/GPRS modules for wireless networking applications.

Architecture:

We need to look at this document to understand the way OMAP 5910 is designed allowing integration of DSP and MPU cores that can execute thair own code when needed.OMAP5910(pdf)


Status:Dated 4th Dec
                We weren't able to get the DSP part up and running because of the lack of availability of  Code Composer  Studio(TI) ,that  is the only development tool for OMAP platforms that i could find reference of on the net.It seems that there is no other development tool for the same.Despite this we were able to get the board up and running with linux 2.4 on it and test few important peripherals.
                The board now has:
                a) Linux 2.4 with omap patch applied
                b) Network capability
                c) Ext2,ntfs,JFS filesystem  support
                d) rrload  Bootloader
                e) BusyBox ramdisk for basic functionality
                f) A GUI based on Microwindows toolkit ,nanowm windowmaker (Pixil- a desktop manager is being tried but i am facing
                    problems in compiling it compiling it statically.
                g) We are able to receive input from Touch-screen .

Other peripherals on board need to be tested. We plan to do the thing in the winter breaks.

Development Track:
                Since we couldn't get hold of Code Composer Studio,we were forced to use JTAG interface with Multi-ICE .The problem then was to get hold of  JTAG daisy chain initialization scheme making MPU the target of the JTAG.Again we had problems here since nobody seems to have done this without CCS. After much toil and some trial and error we figured out the  daisy chain configuration.

    Then out immediate target was to get a bootloader running on the Boot-flash.For that we first needed to initialize the MMU properly for access of the ram by the Multi-ICE device throught the current bus master  the MPU.Now this required a h/w dependent configuration file to be supplied for initialization of the ICE when we establish a session  for working with TI925 processor.

    For that we used a default arm initialization file  supplied with the Multi-ICE device and then built over it given our memeory configuration (Memory Map).Then we had this idea that CCS must be using some h/w dependent configuration files to initialize this particulat platform thus we looked for the file in the "Gel" script thats come with CCS and then  after some little effort  we were able to  understand the  initialization .Rest  was a simple replication of this script in the format needed by ICE.

Bootloader:
             We tried two bootloaders -rrload which is an old loader used with TI Arm devices and Redboot.We wanted the bootloader sitting on the platform to function as monitor on the board such that we can transfer the linux image on the user flash.For that we needed the loader to first run from the memory and then be able to transfer the bootloader image on to the flash.Redboot failed here in being able to write to the intel flash ,but then we were able to write on to the flash using rrload, this is the bootloader currently being used.

Linux:
             We already had all the tools needed for compiling linux-2.4-18, as well as the source. The omap patch added support for all the special devices on this board and we just needed to configure the kernel for out purpose.But then we faced another problem .The current version of rrload doesn't support passing a command line to the kernel.So we needed two seperate version one to have a ramdisk and onother to pick up the root device from the flash .
             We made a slight change in the innovator_fixup code in arch dependent section to have initial ramdisk at our desired location and then we lonloaded the ramdisk to our desired location using rrload in the memory and then we had a running system !!

Ramdisk:
             We didn't have the tools to write a jfs image for straight download to the flash so what we did  was the copy the disk image from memory to the flash when the system was up with the ramdisk in the memory being used as the initial ramdisk device.

To Do:
    a) Make The DSP part work
    b)Test other multimedia devices
    c) Test the shared peripherals


Avinash ,2000379
Dec'2003