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