Difference between revisions of "Source Tree Information"

From eLinux.org
Jump to: navigation, search
m (Major Technologies)
Line 27: Line 27:
  - High resolution timers - see [[High Resolution Timers]]
  - High resolution timers - see [[High Resolution Timers]]
  - Dynamic Power Management Framework (DPM)
  - Dynamic Power Management Framework (DPM)
  - CPU Frequency Scaling - [[CPUFreq]]
  - CPU Frequency Scaling - [[CPU Freq]]
  - Clock rate change on non-preemptible regions
  - Clock rate change on non-preemptible regions
  - Variable Scheduled Timeouts (VST) (previously known as "Deferred periodic kernel processes")
  - Variable Scheduled Timeouts (VST) (previously known as "Deferred periodic kernel processes")

Revision as of 02:12, 15 November 2008

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

Table of Contents:


Download the current version from the CELinux_040503_Release page.

Current Status

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 - CPU Freq
- 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 Preset LPJ
- Kernel Execute-In-Place - Kernel XIP
- 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.

Supported Boards and Platforms Processor Status Resources
TI OMAP Innovator TI OMAP 1510 (ARM9 core with DSP) Included in 031030 (Oct. 30, 2003) release Innovator Instructions
Generic i386 x86 Included in 040126 release .
VIA Eden board VIA ???? (x86 compatible) Included in 040126 release .
ARM Integrator board ARM ??? Included in 040126 release ARMIntegratorInfo
Renesas rts7751r2d board SH7751R (SH-4 series) Included in 040126 release RTS7751R2DHandlingManual
Toshiba rbtx4927 board tx4927 (MIPS) Included in 040304 release RBTX4927Info
Kyoto MicroComputer KZP SH board SH7751R (SH-4 series) Included in 040503 release KZPInfo
Renesas Solution Engine SH7600 and SH7303 Included in 040503 release Solution Engine Info
NEC T-Cube/SHIMAFUJI VR5701 (MIPS) Included in 040503 release TCubeInfo
Samsung SMDK2440 board S3C2440 (ARM 9 family?) Included in 040503 release SMDK2440Info

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.