General summary about installing FreeBSD on servers HP ProLiant Gen9 is next.
Embedded controllers are supported properly, this is no problem (although the software RAIDs of "Bxxi" series is still better not to use). The problem only occurs if you want to use FreeBSD + ZFS.
Disk controllers of HP Gen9 series servers do not support the "clear HBA mode", it specifically modified by the complex logic of these controllers, which can produce some operations that are in conflict with the work of ZFS.
In addition, they do not support OS booting at HBA mode, since they provided booting only from "logical drives", and they are created only in a mode "Smart array" (RAID).
By the way, in the previous series of HP Gen8 servers were controllers, most likely supporting a "clear HBA mode" (B220,H221,H222). But, overall, they are also not completely reliable for use in combination with FreeBSD + ZFS.
If you want to use ZFS, you must to do careful selection of disk controllers from already tested with ZFS file system.
Their list can be found here:
http://blog.zorinaq.com/?e=10
ZFS is strictly incompatible with any variants of the "hardware controllers" and hardware caching. And be aware that most manufacturers do not warn in the documentation that HBA-mode, implemented in their controllers, is not really "clear HBA mode", but modified. It allow intervention of complex logic of the controller in disk operations in HBA-mode.
http://www.tomshardware.co.uk/forum/269606-32-hardware-raid
https://en.wikipedia.org/wiki/ZFS
"ZFS can not fully protect the user's data when using a hardware RAID controller, as it is not able to perform the automatic self-healing unless it controls the redundancy of the disks and data. ZFS prefers direct, exclusive access to the disks, with nothing in between that interferes. If the user insists on using hardware-level RAID, the controller should be configured as JBOD mode (i.e. turn off RAID-functionality) for ZFS to be able to guarantee data integrity.
The problem is that if the underlying RAID controller detects an error it will try to do its own recovery of the data. If it's unable to do so it will declare the volume dead and it won't permit the ZFS file system to access the data in order to recover at that level.
If a drive dies (the error), you replace it and the RAID controller rebuilds the set (the recovery). But if, during the course of the rebuild, it can't read required data from one of the other surviving disks then as far as the controller is concerned the whole volume is toast.
All of this takes place below the ZFS level - the ZFS file system has no ability to control or recover from this process."
http://open-zfs.org/wiki/Hardware#Hardware_RAID_controllers
"One might be inclined to try using single-drive RAID 0 arrays to try to use a RAID controller like a HBA, but this is not recommended for many of the reasons listed for other hardware RAID types. It is best to use a HBA instead of a RAID controller, for both performance and reliability."
With this in mind, I have to postpone the transition to ZFS for a while.