The work in this architecture (ARM26) is that of a great many people.

This is what has happened:

I [Ian Molton] have been trying to repair the ARM26 architecture support, but it has become an impossible task whilst it is still merged with the ARM32 (arch/arm) code. The ARM26 code is too different to be sensible to keep with the ARM32 code now, and Russell King really doesnt have the time to maintain the ARM26 code. Add to that that most ARM32 developers dont know about or care about ARM26 when writing patches, and you have a reall mess.

As a result, I've split it off into a new architecture of its own. I've named it arm26 since these CPUs have only a 26 bit address space, unlike the other ARMs.

The upheaval in moving around so many source files and chopping out vasty ammounts of cruft was enormous, and the copyright of many files is sometimes unclear. Because of this, I am writing this, in order that no-one is left out / misaccredited / blamed for any of the code.

People I KNOW have made major contributions to the code:

David Alan Gilbert (former maintainer of ARM26 bits)
Philip Blundell
Russell King
Keith Owens

also thanks to Nicholas Pitre for hints, and for the basis or our XIP support.

Currently maintaing the code are

Ian Molton (Maintainer / Archimedes)
John Appleby (kernel / A5K)

If anyone has a problem with attributions in header files / source files, please do contact me to straighten things out.

Ian Molton (aka spyro)  -  ARM26 maintainer
spyro@f2s.com

