On ARM and PowerPC, you can compile one kernel that will support
multiple machines, as long as they all belong to the same group (e.g.
have a compatible CPU). On ARM, each machine needs to register a
machine id at http://www.arm.linux.org.uk/developer/machines/ and then
the boot loader passes this value to the kernel via a register. On
PowerPC, information about the machine can be found in OF's
On MIPS, you need a separate kernel for each machine, which makes it
hard for distros to support many machines. For example, it would be
nice if you could compile one kernel for vr41xx devices since they
only differ slightly, e.g. in their PCI mappings. I'm therefore
wondering if there are any plans to introduce a scheme on MIPS that
would allow one kernel for several machines.