Difference between revisions of "Malta Linux Repository"

From LinuxMIPS
Jump to: navigation, search
(wikify)
m
(18 intermediate revisions by 9 users not shown)
Line 1: Line 1:
MIPS Technologies Inc (MTI) is maintaining an additional repository containing a stable and tested kernel with focus on hardware support for MIPS Technologies' synthesizable cores and the [[Malta]] evaluation board.
+
Imagination Technologies Ltd (IMG) (who purchased the former MIPS Technologies Inc (MTI)) is maintaining an additional repository containing a stable and tested kernel with focus on hardware support for IMG MIPS synthesizable cores and the [[Malta]] and [[SEAD3]] evaluation board.
  
These kernels have undergone a range of conformance and soaktesting on the Malta platform, to provide 'stable' kernels with some degree of confidence. This code is now maintained on the <code>linux-mti-*</code> branches in the [http://www.linux-mips.org/git?p=linux-mti.git;a=summary repository], or you can clone it from '''git://www.linux-mips.org/pub/scm/linux-mti.git'''.
+
These kernels have undergone a range of conformance and soaktesting on the Malta platform, to provide 'stable' kernels with some degree of confidence. This code is now maintained on the <code>linux-mti-*</code> branches in the [http://www.linux-mips.org/git?p=linux-mti.git;a=summary repository], or you can clone it from '''git://git.linux-mips.org/pub/scm/linux-mti.git'''.
  
 
Tarballs of particular releases are available [http://www.linux-mips.org/pub/linux/mips/mti-stable/v2.6/ here].
 
Tarballs of particular releases are available [http://www.linux-mips.org/pub/linux/mips/mti-stable/v2.6/ here].
  
MTI aims to keep the <code>linux-mti-*</code> branches reasonably up to date with the latest available stable branch, or at most one version behind. This aiming to balance being modern and up-to-date with some degree of stability and reliability.
+
MTI aims to keep the <code>linux-mti-*</code> branches reasonably up to date with the latest available LTS branch. This aiming to balance being modern and up-to-date with some degree of stability and reliability.
  
 
The kernel branches are labeled with the kernel version number, patch and the MTI build number, e.g.<code>linux-mti-2.6.19.1-0</code>. The current available kernels are:
 
The kernel branches are labeled with the kernel version number, patch and the MTI build number, e.g.<code>linux-mti-2.6.19.1-0</code>. The current available kernels are:
Line 16: Line 16:
 
|-
 
|-
 
| 2.6.19.1
 
| 2.6.19.1
| linux-mti-2.6.19.1-14
+
| linux-mti-2.6.19.1-15
| [link to changelog...]
+
| [http://www.linux-mips.org/git?p=linux-mti.git;a=shortlog;h=linux-mti-2.6.19.1-15 Changelog]
 +
|-
 +
| 2.6.23.11
 +
| linux-mti-2.6.23.11-1
 +
| [http://www.linux-mips.org/git?p=linux-mti.git;a=shortlog;h=linux-mti-2.6.23.11-1 Changelog]
 +
|-
 +
| 2.6.23.11
 +
| linux-mti-2.6.23.11-2
 +
| [http://www.linux-mips.org/git?p=linux-mti.git;a=log;h=refs/tags/linux-mti-2.6.23.11-2 Changelog]
 +
|-
 +
| 2.6.29.4
 +
| linux-mti-2.6.29.4-1
 +
| [http://www.linux-mips.org/git?p=linux-mti.git;a=log;h=refs/tags/linux-mti-2.6.29.4-1 Changelog]
 +
|-
 +
| 2.6.32.15
 +
| linux-mti-2.6.32.15-1
 +
| [http://www.linux-mips.org/git?p=linux-mti.git;a=log;h=refs/tags/linux-mti-2.6.32.15-1 Changelog]
 +
|-
 +
| 2.6.35.9
 +
| linux-mti-2.6.35.9
 +
| [http://www.linux-mips.org/git?p=linux-mti.git;a=log;h=refs/heads/linux-mti-2.6.35.9 Changelog]
 +
|-
 +
| 3.4.22
 +
| linux-mti-3.4.22
 +
| [http://www.linux-mips.org/git?p=linux-mti.git;a=log;h=refs/tags/linux-mti-3.4.22 Changelog]
 +
|-
 +
| 3.4.30
 +
| linux-mti-3.4.30
 +
| [http://www.linux-mips.org/git?p=linux-mti.git;a=log;h=refs/tags/linux-mti-3.4.30 Changelog]
 +
|-
 +
| 3.8.10
 +
| linux-mti-3.8-1
 +
| [http://www.linux-mips.org/git?p=linux-mti.git;a=log;h=refs/tags/linux-mti-3.8-1 Changelog]
 +
|-
 +
| 3.8.13
 +
| linux-mti-3.8.13-1
 +
| [http://www.linux-mips.org/git?p=linux-mti.git;a=log;h=refs/tags/linux-mti-3.8.13-1 Changelog]
 +
|-
 +
| 3.10.14
 +
| linux-mti-3.10.14
 +
| [http://www.linux-mips.org/git?p=linux-mti.git;a=log;h=refs/tags/linux-mti-3.10.14 Changelog]
 +
|-
 +
| 3.10.28
 +
| linux-mti-3.10.28
 +
| [http://www.linux-mips.org/git?p=linux-mti.git;a=log;h=refs/tags/linux-mti-3.10.28 Changelog]
 +
|-
 +
| 3.10.42
 +
| linux-mti-3.10.42
 +
| [http://www.linux-mips.org/git?p=linux-mti.git;a=log;h=refs/tags/linux-mti-3.10.42 Changelog]
 
|}
 
|}
 +
 +
The quilt patch stacks used to generate these are present [http://www.linux-mips.org/pub/linux/mips/mti-stable/v2.6/patches here]. The patches may be applied against the appropriate linux-2.6.xx-stable and linux-2.6.xx-stable branches.
  
 
==How to check out the linux-mti kernels==
 
==How to check out the linux-mti kernels==
  
The following two commands will get you a local repository with the the tag or branch checked out into a local branch for you to work on.  
+
For more generic information on how to use git with linux-mips.org, see [[git]].
  
     git-clone git://ftp.linux-mips.org/pub/scm/linux-mti.git
+
The following two commands will get you a local repository with the the tag checked out into a local branch for you to work on.
 +
 
 +
     git-clone git://git.linux-mips.org/pub/scm/linux-mti.git
 
     git-checkout -b my-linux-mti-x.x.x.y-z linux-mti-x.x.x.y-z
 
     git-checkout -b my-linux-mti-x.x.x.y-z linux-mti-x.x.x.y-z
  
Where x.x.x.y-z is either the tag name, or branch of the kernel you want. For example linux-mti-2.6.19.1-14 is the tag for 2.6.19 patch level 1 and the MIPS build or patch level is 14.
+
Where x.x.x.y-z is the tag name you want. For example linux-mti-2.6.19.1-14 is the tag for 2.6.19 patch level 1 and the MIPS build or patch level is 14.
  
 
For example:
 
For example:
  
     git-clone git://ftp.linux-mips.org/pub/scm/linux-mti.git
+
     git-clone git://git.linux-mips.org/pub/scm/linux-mti.git
 
     cd linux-mti
 
     cd linux-mti
 
     git-checkout -b my-linux-mti-2.6.19.1-14  linux-mti-2.6.19.1-14
 
     git-checkout -b my-linux-mti-2.6.19.1-14  linux-mti-2.6.19.1-14
  
Additional MTI generated configuration files can be found with the <code>malta_defconfig</code> in the MIPS configs directory:  
+
Additional IMG generated configuration files can be found with the <code>malta_defconfig</code> in the MIPS configs directory:  
 
<code> arch/mips/configs/malta_*config</code>. To use one of these configurations copy it to the root of your checked out linux kernel tree and run <code>make oldconfig</code>.  
 
<code> arch/mips/configs/malta_*config</code>. To use one of these configurations copy it to the root of your checked out linux kernel tree and run <code>make oldconfig</code>.  
  
Line 47: Line 99:
 
Note that the trailing '-' in the example above is a part of the prefix, not a typo.
 
Note that the trailing '-' in the example above is a part of the prefix, not a typo.
  
If you want to submit changes back to linux-mips.org, you need to read [http://www.linux-mips.org/wiki/The_perfect_patch The Perfect Patch] page.
+
If you want to submit changes back to linux-mips.org, you need to read [[Submitting Patches]].
 +
 
 +
==Memory Ordering Patches==
 +
 
 +
By design, the MIPS32 specification allows for a weakly consistent memory model for shared memory multiprocessor systems. The rationale behind this relaxed model is that it provides opportunities for significant performance improvements with a reduction in hardware complexity. Unfortunately since a lot of Linux user-land software had x86 centric origins where the ordering is stricter, programmers didn't pay heed to ordering related constraints which cause unpleasant side effects when the software is run on weakly ordered systems. MTI's TimeSys based distribution contains patches to popular user-land software that was known to suffer from these problems. These patches are available [http://www.linux-mips.org/pub/linux/mips/people/robin/weak_ordering here] for people who are interested in fixing up similar problems in their own user-land software. While these patches are relevant to the distribution specific versions of the software, applying them to vanilla versions should be trivial.
 +
 
 +
==Oprofile for MIPS==
 +
 
 +
A patch that provides bugfixes and support for newer MIPS processor types is available [http://www.linux-mips.org/pub/linux/mips/people/robin/oprofile here]. The patch is against version 0.9.3 of the oprofile tools which are available for download [http://oprofile.sourceforge.net/download here].

Revision as of 18:13, 30 June 2014

Imagination Technologies Ltd (IMG) (who purchased the former MIPS Technologies Inc (MTI)) is maintaining an additional repository containing a stable and tested kernel with focus on hardware support for IMG MIPS synthesizable cores and the Malta and SEAD3 evaluation board.

These kernels have undergone a range of conformance and soaktesting on the Malta platform, to provide 'stable' kernels with some degree of confidence. This code is now maintained on the linux-mti-* branches in the repository, or you can clone it from git://git.linux-mips.org/pub/scm/linux-mti.git.

Tarballs of particular releases are available here.

MTI aims to keep the linux-mti-* branches reasonably up to date with the latest available LTS branch. This aiming to balance being modern and up-to-date with some degree of stability and reliability.

The kernel branches are labeled with the kernel version number, patch and the MTI build number, e.g.linux-mti-2.6.19.1-0. The current available kernels are:

Kernel version linux-mti tag Notes
2.6.19.1 linux-mti-2.6.19.1-15 Changelog
2.6.23.11 linux-mti-2.6.23.11-1 Changelog
2.6.23.11 linux-mti-2.6.23.11-2 Changelog
2.6.29.4 linux-mti-2.6.29.4-1 Changelog
2.6.32.15 linux-mti-2.6.32.15-1 Changelog
2.6.35.9 linux-mti-2.6.35.9 Changelog
3.4.22 linux-mti-3.4.22 Changelog
3.4.30 linux-mti-3.4.30 Changelog
3.8.10 linux-mti-3.8-1 Changelog
3.8.13 linux-mti-3.8.13-1 Changelog
3.10.14 linux-mti-3.10.14 Changelog
3.10.28 linux-mti-3.10.28 Changelog
3.10.42 linux-mti-3.10.42 Changelog

The quilt patch stacks used to generate these are present here. The patches may be applied against the appropriate linux-2.6.xx-stable and linux-2.6.xx-stable branches.

How to check out the linux-mti kernels

For more generic information on how to use git with linux-mips.org, see git.

The following two commands will get you a local repository with the the tag checked out into a local branch for you to work on.

   git-clone git://git.linux-mips.org/pub/scm/linux-mti.git
   git-checkout -b my-linux-mti-x.x.x.y-z linux-mti-x.x.x.y-z

Where x.x.x.y-z is the tag name you want. For example linux-mti-2.6.19.1-14 is the tag for 2.6.19 patch level 1 and the MIPS build or patch level is 14.

For example:

   git-clone git://git.linux-mips.org/pub/scm/linux-mti.git
   cd linux-mti
   git-checkout -b my-linux-mti-2.6.19.1-14  linux-mti-2.6.19.1-14

Additional IMG generated configuration files can be found with the malta_defconfig in the MIPS configs directory: arch/mips/configs/malta_*config. To use one of these configurations copy it to the root of your checked out linux kernel tree and run make oldconfig.

   cp arch/mips/configs/malta_smtcconfig .config
   make oldconfig

In order to build the kernel, you will probably have to specify the prefix of your cross-compilation toolchain. For example:

   make CROSS_COMPILE=mipsisa32r2el-linux-

Note that the trailing '-' in the example above is a part of the prefix, not a typo.

If you want to submit changes back to linux-mips.org, you need to read Submitting Patches.

Memory Ordering Patches

By design, the MIPS32 specification allows for a weakly consistent memory model for shared memory multiprocessor systems. The rationale behind this relaxed model is that it provides opportunities for significant performance improvements with a reduction in hardware complexity. Unfortunately since a lot of Linux user-land software had x86 centric origins where the ordering is stricter, programmers didn't pay heed to ordering related constraints which cause unpleasant side effects when the software is run on weakly ordered systems. MTI's TimeSys based distribution contains patches to popular user-land software that was known to suffer from these problems. These patches are available here for people who are interested in fixing up similar problems in their own user-land software. While these patches are relevant to the distribution specific versions of the software, applying them to vanilla versions should be trivial.

Oprofile for MIPS

A patch that provides bugfixes and support for newer MIPS processor types is available here. The patch is against version 0.9.3 of the oprofile tools which are available for download here.