Raspberry Pi

From Embedded Xinu
Revision as of 02:52, 30 May 2012 by Michael (talk | contribs) (Added some command line info from Linux)
Jump to navigation Jump to search
A freshly unpacked Raspberry Pi with additional SDHC card.

The Raspberry Pi (RPi) does exist, but while waiting for it to be delivered here are some notes to make it easier to begin porting Xinu to the platform. (Work in Progress)


You will need the device itself. As of mid-March 2012, this can be ordered for ~$40 from Newark/element14 or RS Components and only includes the board itself (no power supply, cables, or case).

Power Supply

The RPi uses a fairly standard USB micro-B connector for power (only the power pins are physically present). It needs 700 mA at 5 V, so most computers or cell phone chargers should work. Embedded Linux source

Serial Port

The shipped RPi board doesn't come with a serial port attached (no surprise there). But it does have an expansion header that includes pin outs for a serial port (and more). The details can be found on the Embedded Linux RPi page. You will probably just want to solder on the full 2x13 pin header then deal with the outputs later incase you want to take advantage of the other pins.

SD Card

You will want at least a Class 6 or above SD card (lower class cards have been known to have read failures). I (Michael) ordered two Kingston 8 GB Class 4 SDHC memory cards from Amazon. 8 GB is probably excessive, but they only cost ~$7 each, and if you intend to have a full Linux install available it might not be a bad idea to go for > 4 GB.


Xinu is, of course, the target operating system for the RPi platform. However, there are some steps to take before we get there.

Network Boot

Sadly the RPi does not come with a standard bootloader. Instead it simply boots off the SD card (and only the SD card) when power is applied, so a straight from the network boot is not an option. However, SD cards are low cost so you should be able to install a bootloader on the SD card that enables a network boot. It may "taint" the environment, but it shouldn't be horrible or worse than a typical boot loader.

It looks like the grub bootloader should be able to support network booting Grub PXE network boot. This is probably the most viable option, but other options may exist and work better for the RPi.

Command Line Information

cat /proc/cpuinfo

Processor	: ARMv6-compatible processor rev 7 (v6l)
BogoMIPS	: 697.95
Features	: swp half thumb fastmult vfp edsp java tls 
CPU implementer	: 0x41
CPU architecture: 7
CPU variant	: 0x0
CPU part	: 0xb76
CPU revision	: 7

Hardware	: BCM2708
Revision	: 0000
Serial		: 0000000014xxxxxx

cat /proc/meminfo

MemTotal:         186540 kB
MemFree:          130592 kB
Buffers:            9552 kB
Cached:            29360 kB
SwapCached:            0 kB
Active:            18404 kB
Inactive:          29176 kB
Active(anon):       9108 kB
Inactive(anon):        4 kB
Active(file):       9296 kB
Inactive(file):    29172 kB
Unevictable:           0 kB
Mlocked:               0 kB
HighTotal:             0 kB
HighFree:              0 kB
LowTotal:         186540 kB
LowFree:          130592 kB
SwapTotal:             0 kB
SwapFree:              0 kB
Dirty:                24 kB
Writeback:             0 kB
AnonPages:          8680 kB
Mapped:            10476 kB
Shmem:               448 kB
Slab:               5648 kB
SReclaimable:       2816 kB
SUnreclaim:         2832 kB
KernelStack:         568 kB
PageTables:          688 kB
NFS_Unstable:          0 kB
Bounce:                0 kB
WritebackTmp:          0 kB
CommitLimit:       93268 kB
Committed_AS:      94416 kB
VmallocTotal:     188416 kB
VmallocUsed:         896 kB
VmallocChunk:     186708 kB