First take at getting FreeBSD/armv6 running in simulators. Simulators are great for tracking down nasty bugs and building packages.
So here is support for Versatile Platform Board machine supported by QEMU. Most likely this code will not run on real VersatilePB because I do not have this hardware and timing code (or lack of it) on CLCD driver and Keyboard/Mouse interface (PL050) is pure guesswork.
Back to gory details:
As for userland – it’s fully compatible with Raspberry Pi’s userland, or Pandaboard’s one. So you can use latest RPi SD card image. As for now it’s freebsd-pi-r243778.img.gz (124Mb)
I believe that at least QEMU 1.2.0 is required. It’s still 1.1.1 in ports due to some blockers that prevent upgrade to 1.3.0. This patch updates port to 1.3.0 and it worked for me. Also I tested images with QEMU on windows and OS X – works fine.
qemu-system-arm -M versatilepb -m 128M -kernel freebsd-versatilepb.flash -cpu arm1176 -hda freebsd-pi-r243778.img
- Serial console is off by default, use graphics console. If you need headless mode, rebuild image with “device sc” and related options disabled or use prebuilt flash image for headless mode
- root device name is hardcoded so if you’re using some other image or building your own – be sure that’s ROOTDEV actually match real root
- Memory size is hardcoded – 128M. For getting this information run-time we’ll need uboot and ubldr added to boot chain
MD5 (freebsd-versatilepb-headless.flash) = 24a41807bf94c5fec0565adcfef48678
MD5 (freebsd-versatilepb.flash) = 085dedae67895ac1d1a7c04c7cda8468