3. Target Hardware

Start by picking the processor which most closely matches your I/O requirements, and work out roughly how much RAM and ROM space you need. Then see if you can find an off-the-shelf board which also most closely matches what you need.

3.1. CPU

3.1.4. Motorola 8xx

http://e-www.motorola.com/webapp/sps/prod_cat/sel_guide.jsp?catId=M98655

Information from Motorola is fragmented, because the 850/860 and 823 are handled by different groups. Information about the bits they have in common is generally equally applicable to both, so it's worth perusing the 823 resources even if you're using an 850/860.

These devices are all covered in the MontaVista kernel.

3.2. RAM and ROM space

Linux has a slightly larger memory footprint than most conventional embedded operating systems when configured with equivalent options. This is the price you pay to leverage the advantages of its enormous desktop user base, and being able to share a common desktop and embedded environment. For most applications the difference is insignificant, but if every last byte counts in your application, you might want to consider RTEMs or eCos instead.

Beware that commercial embedded operating system vendors often make meaningless claims regarding the footprint of their micro-kernel, and the total memory footprint (and often the royalties payable) increases substantially once all the optional packages needed to provide the required functionality for a typical networked device are included. Work out what functionality you need before attempting to make valid comparisons.

For good architectural reasons, Linux isn't a micro-kernel. However, it does allow large chunks of code to be removed easily at configuration time. In practice the architectural distinction between micro and monolithic kernels makes little difference to total memory requirements of the overall system.

Minimum memory requirement when using an initrd based root filesystem is generally 2 MB of flash ROM and 8 MB of RAM, and here's what you can expect to fit in:

This is the most common configuration because it attempts to minimize ROM space at the expense of RAM, since ROM is generally more expensive. However, you can trade off ROM space to reduce RAM usage by using a compressed flash file system and/or running the kernel directly from ROM. Both these options are more difficult, but have been successfully deployed and discussed on the linuxppc-embedded mailing list.

3.3. Commercially available boards

There are many off-the-shelf options including systems from Motorola and other parties. If you're planning on building your own custom hardware, consider using one of the Single Board Computer systems listed below instead. You might get by with just a custom daughter card, or might not need to do any hardware of your own at all.

All the boards listed below are known to run Linux, although the degree of support can vary. Mention to the vendor that you want to run Linux on the board, and they should be able to point you to the relevant files you need. The best supported boards are supported directly in the main kernel development tree, which is most evident by having a dedicated _MACH_... constant already assigned in include/asm-ppc/processor.h.

If you still think you want to do a full custom design, pick a board from one of the following sources with the closest feature match to what you plan to kick start your software development while your custom board is being designed and built:

3.3.1. Embedded Planet

http://www.embeddedplanet.com/

These boards are officially supported by the MontaVista kernel.

Use the new PlanetCore bootloader, as the old RPXU monitor times out on large tftp downloads.

3.3.1.1. Linux Planet

This is a complete development kit, including hardware and software.

3.3.2. Bright Star Engineering

http://www.brightstareng.com/

Has an onboard FPGA for configuring hardware, making it extremely flexible for interfacing to exotic devices. They have a Linux development kit available for it too.

If using a 2.2.x kernel, see: http://lists.linuxppc.org/listarcs/linuxppc-embedded/199912/msg00088.html

3.3.4. QS850 QuickStack Network Interface/Network Management Module

http://www.snmc.com/products.html

The QS850 is a highly integrated and compact module for adding networking features to any embedded system. It provides a complete hardware and Linux-based software solution for Internet connectivity, Network Management, and Non-volatile File System services. See QSLinux.

3.3.5. TQComponents

http://www.tqc.de/

Have a range of very small mini-modules suitable for integration in a larger system, plus a starter kit for development. Supported by Denx Software Engineering, with pictures at: http://www.denx.de/embedded-ppc-en.html

Also, see: http://lists.linuxppc.org/listarcs/linuxppc- embedded/199910/msg00088.html

3.3.6. MicroSys

http://www.microsys.de/html/linux-e.html

A VMEBus board vendor who now provides Linux ports for their boards.

3.3.8. AG Electronics

http://www.agelectronics.co.uk/prod_ppc.html

A range of high-performance PowerPC-based products.

3.3.9. Force Computers

http://www.forcecomputers.com/

A range of high-performance PowerPC-based products.

3.3.11. Total Impact - the briQ

http://www.totalimpact.com/

The briQ is a PowerPC based network appliance computer the size of a standard CD-ROM drive targetted at a range of applications such as firewalls, routers, security devices and web servers. It is available with either a PowerPC 750 (G3) or 7400 (G4) processor and can run any PowerPC-based Linux distribution available.

3.3.15. Cogent Computer Systems

http://www.cogcomp.com/

Modular development architecture including many varieties of PowerPC processor.