FreeBSD on Dell PowerEdge 12G Servers
The Problem
We received a number of the new Dell PowerEdge 12G servers and were excited to give them a try. We quickly found a scenario identical to the issue Wayfair Engineering discovered. The issue was that despite the hardware notes stating the LSI Logic SAS2208 chipset was supported (by an odd driver given past precedent) the installation DVD failed to recognize the controller and therefore failed to install FreeBSD.
The Hardware
We were testing FreeBSD 8.3-RELEASE on the following configuration:
Dell PowerEdge R620 w/ H710 RAID Controller
128GB RAM
Eight (8) 2.5″ 500GB SAS HDD

The Resolution
Upon discovery of this issue, I was on the path to resolve it within our environment in the same manner that Wayfair Engineering had done. The difference was that we would be working with stable/8 vs. stable/9.
While working on this approach, we were able to come into contact with FreeBSD contributor Sean Bruno. Sean indicated to us that the mfi driver changes had been committed to stable/8 on 18 May 2012, the week we had attempted to get FreeBSD to install on the R620. You can see the details of this commit here. Obviously, with this commit, it eliminated the need to download the MFI head project that Wayfair Engineering had to download to get it to work.
The mfi commit was done for stable/7, 8, and 9 on 18 May 2012. Therefore, if you are installing FreeBSD on your Dell PowerEdge 12G servers, you should be running one of those versions or a production release with that code.
The Process
# csup stable-supfile
# cd /usr/src/
# make buildworld
# cd /usr/src/release
# make release
You’ll want various environment variables set when you execute `make release` such as CHROOTDIR, CVSROOT, and BUILDNAME. You may also perhaps want to set MAKE_DVD, NO_FLOPPIES, NODOC, etc. Check the release(7) manpage for more information.
ISO files will be stored in $CHROOTDIR/R/cdrom/. Use `mkisofs` from cdrtools to generate your ISO image and burn it to CD/DVD using your favorite burner and software.
My environment variables were set as follows when I built the release:
CHROOTDIR=/usr/release
BUILDNAME=8.0-STABLE
CVSROOT=/usr/cvs
EXTPORTSDIR=/usr/ports
EXTSRCDIR=/usr/src
MAKE_DVD=YES
NO_FLOPPIES=Yes
NODOC=YES