Linux OMAP Kernel Project

From OMAPpedia

Jump to: navigation, search


[edit] About Linux OMAP Kernel tree

This project is to support OMAP3 processors and future OMAP platform generations.

[edit] Getting Started with Linux OMAP (LO) Kernel

A high level overview video presentation on Linux-OMAP kernel development is available here (skip to 27 min:14sec)

[edit] Migration to open source kernel

TI is migrating its OMAP Linux offering to the linux-omap kernel. This Linux kernel project has had an active open source community for several years, and is a downstream of the Linux mainline kernel. That way, TI can fully leverage the existing open source communities around the Linux kernel, and ensure that OMAP platform is fully supported in the mainline kernel. This is an advantage for both TI and TI's customers. As a consequence OMAP3 and OMAP4 support will be soon fully enabled in the mainline Linux kernel releases.

There are some very important notes regarding this migration that need to be understood by all Linux OMAP stakeholders:

[edit] Management of kernel integration tree

For more information on how to maintain a kernel integration tree, please refer to Linux OMAP integration tree

[edit] Linux OMAP kernel on Android git repositories

Android project is also hosting a Linux OMAP kernel here. This Linux kernel is also considered as a downstream of mainline Linux kernel. The main difference between this tree and the linux-omap tree is that the Android OMAP tree is frozen on a specific version of the Linux kernel. It is currently based on v2.6.29. This tree is owned by Android engineers and includes contributions from linux-omap tree, TI software development teams, as well as many other open source partners.

[edit] Where to get the source code?

Based on the above discussions, there are various versions of Linux OMAP kernel that can be used: mainline Linux kernel, linux-omap tree, Android project or TI integration tree. You need to make sure you understand the various states of each project and pick the most appropriate one. In general you can use the following rules:

[edit] Building for Zoom2

Once you have downloaded the appropriate Linux kernel source code for your OMAP platform, such as:

$ git clone git://

You can build the kernel for any supported platform. To build for Zoom2:

$ make CROSS_COMPILE=arm-none-linux-gnueabi- ARCH=arm omap_zoom2_defconfig 
$ make CROSS_COMPILE=arm-none-linux-gnueabi- ARCH=arm  uImage

Note: uImage is an image format used by the u-boot bootloader, uImage is created by a tool called mkimage which is generated by u-boot. Make sure that you have mkimage in your $PATH. Check Bootloader_Project for more information.

Building Kernel Modules

$ make CROSS_COMPILE=arm-none-linux-gnueabi- INSTALL_MOD_PATH=<path to rootfs> modules
$ make CROSS_COMPILE=arm-none-linux-gnueabi- INSTALL_MOD_PATH=<path to rootfs> modules_install

[edit] Building for Zoom36x

Kernel code can be obtained from OMAP3 git tree

The build instructions for kernel are the same except that the config to be used is omap_zoom3_defconfig

[edit] Bridge ARM side driver

This kernel project contains ARM side driver for the DSP (often called as MPU or ARM side Bridge) under driver/dsp/dspbridge. The user space Bridge components, DSP executables are available in the DSPBridge Project.

[edit] Power Management

Please see OMAP Power Management page on eLinux wiki.

[edit] OMAP patch merging process

The merging process on the Linux-Omap tree is described here.

[edit] How to submit patches

OMAP platform linux mailing list can be used for patch submissions and discussions. Click here to subscribe to the list or/and get more information.

We recommend the use of git-format-patch and git-send-email to generate and submit patches.

More detailed information here: Releasing to Linux kernel using patches and emails

[edit] OMAP3 (work in progress)

[edit] LO-Sync

[edit] Patches pending upstream submissions

1. Patches on linux-omap-sync tree under internal review

2. Patches sent to open source mailing lists

3. Patches planned for development

4. Ideas under consideration

[edit] Patches Accepted in open source mailing lists

Patches Accepted

[edit] Android

[edit] Patches pending upstream submissions

Here are the Patches being done on 2.6.29 Android kernel not yet submitted

[edit] Patches Accepted in open source mailing lists

Accepted Patches

[edit] OMAP4 (work in progress)


Patches merged in prior to 2.6.33:

Patches merged in

Patches recently accepted (merged in maintainer's trees):

1. omap4 updates for 2.6.34

2. cache-l2x0 and omap4 l2 support

Patches submitted, but not yet accepted:

1. Clock fixes
       Abhijit Pagare (1):
       ARM: OMAP4 clock domain: Add check for avoiding dependency related update.
       Rajendra Nayak (1):
       OMAP4: clock: Rename leaf clock nodes to end with a _ick or _fck
       Santosh Shilimkar (2):
       OMAP4: clock: Add dummy clock nodes for interface clocks
       OMAP4: clock: Remove clock hacks from timer-gp.c

2. omap4: Add i2c board support for omap4 platform

3. DMA descriptors

OMAP4 Display

1. OMAP4: Patches sent to open source mailing lists

2. OMAP4: Patches planned for development

3. OMAP4: Ideas under consideration


1. HWMOD Schedule & Status

[edit] OMAP4 : Open Source Aligned Development Model

The git trees are hosted publicly by TI at

Each Feature Tree is based of linux-omap git tree.

Heads in each Feature Tree:

master --> //tracks linux-omap master

omap4_dev --> //this is the core patches for the feature for which the tree is intended

omap4_upstream --> //this is based of linus latest and used for submitting to upstream

[edit] Added Features on LO kernel

This section details on community efforts to enable USB keyboard and mouse and also HDMI on LO kernel.

[edit] Tools & Debugging

[edit] SystemTap

Systemtap is a tracing & probing tool to analyse Linux (particularly kernel) problems. Here are instructions on how to use it on OMAP.

Personal tools