AV3 Flight Computer
We switched from x86 to PowerPC because we won one of IBM's 'Linux on POWER' grants. This is great, because now we've got actual processing power, a nice ISA, the same power consumption, and even more peripherals.
- We spent some real time searching for a good PowerPC chip. We decided on the Freescale MPC5200 after nothing else fit the bill.
- Here's the Freescale MPC5200 homepage. Note that there are a LOT of app notes and other good information on this chip here.
- Here's the datasheet
- We're using the TQ-Components TQM5200
- Here's the User's Manual.
- Here's a Linux and U-Boot manual.
- Also see the FC carrier board page for more information on how the TQM5200 is broken out.
TQM5200 Software (PROBABLY DEPRECATED! ASK SOFTWARE TEAM BEFORE USING.)
(This is a slightly more detailed version of what Josh posted to the psas-team mailing list.)
The flight computer has uboot, a kernel image, a device tree blob, and an initramfs in flash. When the flight computer boots, uboot loads everything into ram and boots from ram. This means all changes to the file system will be wiped on the next power cycle. There are two interesting consequences because of that:
- You have to have install (in flash) all the software you ever want to use during flight (udev, usb sensor node SW, etc).
- Rocket logs should be stored on a compact flash card to avoid being wiped by an in-flight power cycle.
Building a Linux kernel
First, you need to download a Linux kernel designed for the TQM5200 PowerPC chip and peripherals. Denx, the maker of the TQM5200 breakout board, has a git repository for Linux kernels for their hardware. You need to have the git-core
package installed on your computer for this command to work:
git clone git://git.denx.de/linux-2.6-denx.git
Next, you need to be able to cross compile the Linux kernel for the PowerPC board. The emdebian project has a linux-powerpc cross compilation suite. You'll need to add their .deb repository to your /etc/apt/sources.list file in order to download the cross compilation packages. Emdebian has good instructions on how to do this if you're confused.
If you're running Debian, choose the package type that corresponds to what Debian release you're running (i.e. stable, testing, unstable). If you're running Ubuntu, you'll have to guess. If you don't see a recent version of gcc (say 4.3), then use the unstable Debian package repository.
sudo aptitude install gcc-4.4-powerpc-linux-gnu libc6-dev-powerpc-cross linux-libc-dev-powerpc-cross
(Or whatever version of gcc is the latest.)
Other packages you'll need
- device-tree-compiler
- uboot-mkimage