Linux OMAP Kernel Project

From OMAPpedia

Revision as of 07:52, 18 June 2010 by Michael (Talk | contribs)
Jump to: navigation, search

Contents

About Linux OMAP Kernel tree

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

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)

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:

Management of kernel integration tree

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

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.

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:

Building for Zoom2

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

$ git clone git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap-2.6.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

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

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.

Power Management

Please see OMAP Power Management page on eLinux wiki.

OMAP patch merging process

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

How to submit patches

OMAP platform linux mailing list linux-omap@vger.kernel.org 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

OMAP3 (work in progress)

LO-Sync

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

Patches Accepted in open source mailing lists

Patches Accepted

Android

Patches pending upstream submissions

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

Patches Accepted in open source mailing lists

Accepted Patches

OMAP4 (work in progress)

OMAP4430

Patches merged in kernel.org prior to 2.6.33:

Patches merged in kernel.org


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

1. omap4 updates for 2.6.34

       http://permalink.gmane.org/gmane.linux.ports.arm.omap/31570

2. cache-l2x0 and omap4 l2 support

       http://www.mail-archive.com/linux-omap@vger.kernel.org/msg23315.html


Patches submitted, but not yet accepted:

1. Clock fixes

       http://www.mail-archive.com/linux-omap@vger.kernel.org/msg24542.html
       
       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

       http://www.mail-archive.com/linux-omap@vger.kernel.org/msg23930.html

3. DMA descriptors

       http://marc.info/?l=linux-omap&m=125012097403050&w=2

OMAP4 Display

1. OMAP4: Patches sent to open source mailing lists

2. OMAP4: Patches planned for development

3. OMAP4: Ideas under consideration

OMAP4 PM

1. HWMOD Schedule & Status

OMAP4 : Open Source Aligned Development Model

The git trees are hosted publicly by TI at dev.omapzoom.org


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 kernel.org latest and used for submitting to upstream


Added Features on LO kernel

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

Tools & Debugging

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
Namespaces
Variants
Actions
Navigation
Toolbox