This instruction is no longer correct. New version is here
Took some time but it seems we’re there too :)
Alexander Rybalko, who works on USB drivers for the platform got remote telnet shell to the device: http://pastebin.com/6NqQLWD2
Having fixed serial console for userland applications (two lines change) and after some tweaking of SDHCI driver I got access to multiuser shell too: multiuser.txt Still not usable for putting together distros but stable enough for those who are willing to get their hands dirty with kernel side.
Here is short how to on getting FreeBSD boot on Raspberry Pi:
Get sources:
git clone git://github.com/gonzoua/freebsd-pi.git cd freebsd-pi git checkout rpi
Fetch u-boot files from here: freebsd-pi-uboot-20120806-sd.tar.gz.
Build sources and create SD card image with script like this: `#!/bin/sh set -e
export TARGET_ARCH=arm export SRCROOT=/usr/home/gonzo/Sources/freebsd-pi export MAKEOBJDIRPREFIX=/usr/home/gonzo/Sources/obj export KERNCONF=RPI-B KERNEL_BIN=`realpath $MAKEOBJDIRPREFIX`/arm.arm/`realpath $SRCROOT`/sys/$KERNCONF/kernel.bin
make -C $SRCROOT kernel-toolchain make -C $SRCROOT KERNCONF=$KERNCONF WITH_FDT=yes buildkernel make -C $SRCROOT TARGET_CPUTYPE=armv6 MALLOC_PRODUCTION=yes buildworld
IMG=bsd-pi.img rm -f $IMG dd if=/dev/zero of=$IMG bs=128M count=8 MDFILE=`mdconfig -a -f bsd-pi.img` gpart create -s MBR ${MDFILE} gpart add -s 32m -t ‘!12’ ${MDFILE} gpart add -s 896m -t ‘!12’ ${MDFILE} gpart set -a active -i 1 ${MDFILE} newfs_msdos -L boot -F 16 /dev/${MDFILE}s1 newfs /dev/${MDFILE}s2 mount_msdosfs /dev/${MDFILE}s1 /mnt tar -x -v -z -C /mnt -f freebsd-uboot-sd.tar.gz cp $KERNEL_BIN /mnt umount /mnt mount /dev/${MDFILE}s2 /mnt make -C $SRCROOT DESTDIR=/mnt installworld make -C $SRCROOT DESTDIR=/mnt distribution
Minimal config
echo ‘hostname=“freebsd-pi”’ > /mnt/etc/rc.conf echo ‘/dev/mmcsd0s2 / ufs rw 1 1’ > /mnt/etc/fstab
umount /mnt mdconfig -d -u $MDFILE `
dd image to SD card, insert it to Raspberry Pi and check serial port for some output
There is also U-Boot configuration that uses dhcp/tftp method by default freebsd-pi-uboot-20120806-netboot.tar.gz. It’s more suitable for kernel hacking but requires environment setup.