Xenomai 2 and Xenomai 3 over the Cobalt core (i.e. dual kernel mode) both need special kernel support to deliver fast and deterministic response time to external interrupts, and services seamlessly integrated with the standard Linux kernel.
This support is provided by the interrupt pipeline (aka I-pipe) in the form of a kernel patch you have to apply against a vanilla kernel tree, before the Xenomai co-kernel can be built into Linux.
The Xenomai project currently maintains two kernel trees which include the interrupt pipeline code, both based on the mainline Linux tree which can be found at git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6.git:
- the main tree at git://git.xenomai.org/ipipe.git. Four types of branch may exist in this tree:
- for all CPU architectures supported by the Cobalt core. Such branch is rebased over stable mainline releases over time.
- legacy/core-X.Y is there mainly for archiving purpose, with the early implementation of the I-pipe core series for kernel vX.Y.
- legacy/ipipe-<kver>-<arch> contains the older pipeline implementation for the given kernel version and architecture, which predates the I-pipe core series. Xenomai 2.6 can run over any of these legacy releases. However, Xenomai 3/Cobalt can run over the current I-pipe core series only, and therefore won’t run over the legacy I-pipe releases.
- raw/ipipe-<kver> may appear from time to time. These are unstable branches exchanged between the I-pipe maintainers as they collaborate to port the pipeline to a newer kernel version. You most likely don’t want to use such very early material, which may not even compile for you.
- the ARM-focused development tree available at git://git.xenomai.org/ipipe-gch.git. This tree routinely feeds the main pipeline tree for the ARM architecture, once the support for some new SoCs is ready and validated.
You should have a look at this tree for an early access to a pipeline implementation supporting a particular ARM SoC which might be available there. You should to ask on the mailing list for information about the current state of the ongoing ARM development.
We issue self-contained patches adding the pipeline support to a given mainline kernel version for a particular CPU architecture.
You can fetch them from this download area.