next up previous
Next: 5 Patch History Up: ARM Linux on the Previous: 3 The Port to

4 ARM Linux Patches

One of the more confusing aspects of Linux development on Assabet is the bewildering array of patches to the source code needed to produce a working kernel. At one point, as many as four patches to the original source have been required to achieve an up-to-date image of the software. This section attempts to explain the patch hierarchy and help developers locate the various components needed to perform useful work. The tour begins with the basic kernel distribution, and proceeds in the direction of increasing Assabet support. As will be discussed later, developers should actually collect the components in the opposite order.

  1. Kernel Distribution

    The official source for the Linux kernel is available via anonymous FTP from, and can be had in gzip and bzip2 formats. In general, the Linux kernel uses a version numbering convention which differentiates ``production'' releases from ``development'' releases. This convention is based on the minor release number, such as the ``4'' in ``2.4.'' When the minor release number is even, the release is intended for production use. When this number is odd, the release is alpha-quality at best, and should be used with caution. Having said this, it is generally true that the most recent StrongARM support is only added to the newest kernel, regardless of the release version. The earliest kernel for which Assabet support was added was 2.3.99, and all development is currently being done on version 2.4.0.

    As a side note, the primary maintainer for the official distribution is Linus Torvalds. Recently, while Linus was away on holiday, ownership was passed to Alan Cox, who maintains a set of patches against the main kernel tree. These patches are identified with the initials of Mr. Cox, so an example patch against kernel 2.4.0-test1 might be 2.4.0-test1-ac6. This patch series is also available from, under /pub/linux/kernel/people/alan/. In general, however, these patches are not used for ARM Linux development.

  2. ARM Linux Patch

    Support for a number of machines based around ARM processors is maintained in the Linux Kernel by Russell King. Available via anonymous FTP from under /pub/linux/arm/source/kernel-patches/ are patches which usually apply directly to the kernel distribution mentioned above. The naming convention for these patches extends the base kernel version with an identifier for the author, as in the example of the Alan Cox series above. For instance, a suitably patched version of kernel 2.4.0-test5 might be 2.4.0-test5-rmk1.

  3. StrongARM SA-1100 Patch

    The StrongARM family of processors is considered to be a separate architecture within ARM Linux. Support for StrongARM-based machines was originated by Russell King, for the SA-110 processor, but has been extended by Nicolas Pitre to include the SA-1100 and derivative processors. Patches for the SA-1100 family extend the ARM patches just described, and are available available from, this time under /pub/linux/arm/people/nico/, these patches follow the naming convention established previously. Extending the last example, such a kernel might have the final version 2.4.0-test5-rmk1-np1. All viable StrongARM SA-1100-related kernel changes made by ARM Linux developers are folded into this series of patches.

  4. Wearable Group Patches

    With the stabilization of Assabet and PCMCIA support in the current StrongARM SA-1100 patch series, the frequency with which the Wearable Group at Carnegie Mellon issues patches has decreased. Occasionally, ``bleeding edge'' patches are released which may not have reached the other patch levels. For example, support for Assabet, Neponset, the SA-1111, PCMCIA Card Services, and several PCMCIA client drivers have all been released by the author prior to their inclusion in the StrongARM SA-1100 patches.

    Information about, and patches implementing, support for Assabet and PCMCIA on the StrongARM is available on the World Wide Web at

When assembling a kernel tree for use on Assabet, it is generally appropriate to begin from the StrongARM SA-1100 patch (maintained by Nicolas Pitre), and work backwards towards the kernel. The ARM Linux and StrongARM SA-1100 patches are necessarily released after the corresponding kernel distribution, so it is usually possible to find versions of the base kernel which are newer than any available ARM patch. Unless a particular StrongARM SA-1100 patch includes significant feature additions, it is usually true that newer patches are more robust than older ones.

next up previous
Next: 5 Patch History Up: ARM Linux on the Previous: 3 The Port to
ICES TR 0x-yy-00, © 2000 John G Dorsey