Linux Kernel Int Trees
From OMAPpedia
The following process has been put in place regarding TI integration trees:
- each kernel feature, such as core platform, DSP Bridge, camera, ... is developed in a specific kernel tree, usually hosted at http://dev.omapzoom.org
- some kernel features, like DSS2 are not maintained by TI
- each so-called feature tree is regularly rebased from latest upstream tree. For OMAP3 feature and integration trees, the upstream tree is linux-omap, while for OMAP4 trees the upstream tree is kernel.org. This is chosen because OMAP3 and OMAP4 are in different life-stages of development and community percolation. It is important to note that the feature trees are rebased using a git-rebase, as such every pending commits on each feature tree is regularly re-written.
- for every new TI kernel release, all relevant feature trees are merged together into the appropriate integration tree.
- TI releases are made out of the integration tree. The TI kernel integration trees are here: OMAP3 and OMAP4.
- For the OMAP3 integration tree, master branch contains the most recent integration release. However, for the OMAP4 integration tree the master branch reflects the upstream tree (either kernel.org or linux-omap) and the releases are made on separate branches. These releases are tagged after running several functional and stress tests for each subsystem. The test repo is here.
- For each TI kernel release:
- the branch master is reset with latest upstream tree
- all feature trees are rebased on this version of the upstream tree, or some other tree that they might depend on.
- all feature trees are merged into the integration tree
- a release tag is applied to keep track of all releases
- it is the responsibility of each patch developer to submit his/her patches upstream to the relevant open source community, and track these patches until they are merged to kernel.org.
- Integration tree follows a monthly release cycle
- Description of git trees hosted on dev.omapzoom.org
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:
- mainline Linux kernel is stable, but not the most up-to-date version for OMAP.
- linux-omap is stable, and up-to-date for core platforms features and bug fixes. However some non linux-omap sub systems such as USB, audio, or display might not be up-to-date.
- TI integration tree is in general the most up-to-date version of the kernel for a TI platform since all necessary sub systems have been pre-integrated and tested. Most of the patches in this tree will end up in linux-omap, then in mainline kernel at some point in time.
- Android OMAP kernel should be used if you plan to work on Android for OMAP. Usually it is frozen on a given kernel release.