Source Tree Information

This page has information about the CE Linux Forum source tree.

Table of Contents:

Download
Download the current version from the CELinux_040503_Release page.

Linux Kernel Version
The source tree, as of 2004-05-03, is based on Linux kernel version 2.4.20.

The current CELF release is: May 5, 2004 (040503).

This is also known as the 'celf3' release.

For past releases, see the Release Info Page.

Major Technologies
Here is a list of some of the major technologies included in this tree: - Preemptible kernel - Lock-break - O(1) Scheduler - Parallel and deferred I/O initialization - see IDE Preempt for one example - Work queues - High resolution timers - see High Resolution Timers - Dynamic Power Management Framework (DPM) - CPU Frequency Scaling - CPUFreq - Clock rate change on non-preemptible regions - Variable Scheduled Timeouts (VST) (previously known as "Deferred periodic kernel processes") - Protected RAM FS - PRAMFS - Fast boot features - option to preset loops_per_jiffy (at compile or boot time) - see PresetLPJ - Kernel Execute-In-Place - KernelXIP - Application Execute-In-Place

'' <> Note - we should make a page for each of the technologies listed above, with information about current status, separate patches (if available), open source projects, etc.)''

Here are some other changes which I'm aware of: - Kernel Function Instrumentation (KFI) - IDE "noprobe" bugfix

Some of these technologies were incorporated into the 2.6 version Linux (from kernel.org) Thus, their use in this tree is only of interest in conjunction with a 2.4.x version of Linux.

Supported Platforms
Linux from kernel.org supports a very large number of architectures and platforms. Only some of these platforms and architectures are actively maintained in the CELF tree. Since our intention is to track Linux as it comes from kernel.org, many platforms that are not actively maintained by the forum will likely be found in the forum source tree. Therefore, you should use caution when using the forum source tree for your own projects.

When we say a board is supported, we mean that it is actively used by forum members, and that it is therefore known to at least boot on the indicated target hardware. It does NOT mean that the code for that board in the CELF tree is up-to-date or bug free.

The forum is not a service organization to answer questions or resolve problems with regard to any particular board or architecture. The forum may make information available to the public in an effort to help our members (and others) use a board in which we are interested. However, there is no guarantee of accuracy or correctness of such information.

If a board is listed in the table below, it only means that forum members are known to be working with this board, and there are reports that someone from the forum has used the board with the forum source code.

Ratification Status
The technologies in the current CELF tree have not been ratified by the forum. What this means is that these technologies were selected because of preliminary interest in them, but the forum has not gone through an approval process to have them become official "Reference Implementations" (the meaning of which is described in the Membership Agreement of the forum).

History (or, why is the tree the way it is now?...)
2003-11-26 was the date of the first release of the source code. In that release, the source tree included only a few platforms. The forum is currently working on adding support for additional platforms to the forum source tree.

Also, the source tree includes a large number of other changes that were unrelated to the work of the CE Linux Forum. This is a result of Sony and Matsushita's selection of MontaVista as the contractor for several projects related to enhancement of Linux for use in Consumer Electronics products. These projects pre-dated the formation of the forum. However, the code base where these projects were performed also included other code which was hard to separate from forum-related code. Rather than wait to perform an exhaustive and possibly dangerous exercise in separating the two sets of changes, the code was donated by Sony and Matsushita to the forum as an integrated code base, in the hopes that this would allow for rapid progress by the forum.

Thus, the fact that the 2.4.x-based CELF source tree has lots of material unrelated to current CELF work is a historical artifact. This is something that we are trying to fix as we move forward.

Plans for the Future
In the future, our intention is to publish the source tree in two forms: - as a set of separate patches which can be applied to a kernel.org (or other) Linux source tree, and - as an integrated tree which can be downloaded and used quickly on a "supported" (see above) platform.

Real Soon Now (r), the forum will begin a 2.6-based tree, and will try to stay in synch with the kernel.org versions of Linux.

/\ It is NOT our intention to create a "fork" of Linux for use in CE products. /\

Short term task list
See Source Task List for a list of short-term items we are working on for the tree.

Patch isolation and kernel version migration phases
In order to get to our desired condition of having separate patches based strictly on a kernel.org tree, we plan to work in phases: - In Phase 1: - categorize technologies in the tree into 3 groups: - an "already available separately" group (category A), - a "needs to be isolated" group (category B), and - a "not relevant to forum work" group (category C) - for category A code, point to or link to the separately maintained patch - for category B code, isolate the code in the source tree and make a stand-alone patch for kernel version 2.4 (if possible) - patches delivered to the forum should be relative to the then-current version of the CELF tree - In Phase 2: - start a 2.6 based kernel tree (we are thinking of using BitKeeper for this) - port patches from phase 1 to the 2.6 tree - patches delivered to the forum may be (and this is hopeful) relative to the then-current version of the CELF tree, OR a recent version of the 2.6 tree.