Some time ago I found myself having to upgrade the firmware of my PERC 5/i RAID controller sitting in my PowerEdge 1950 II server. Dell provides upgrade packages for various kinds of Linux and Windows systems, but not FreeBSD. I thought I would have to boot the server on a Linux livecd and run the updates from there, but Ian Freislich taught me that it's possible to update from within FreeBSD.
Somewhere on Dell's website you will find a Windows installer for the firmware upgrade. In my case the file was called DELL_PERC-5-I-INTEGRATED_A09_R189337.EXE. This file is actually a self-extracting zip archive, so simply transfer it to your server and unzip it:
$ unzip DELL_PERC-5-I-INTEGRATED_A09_R189337.EXE Archive: DELL_PERC-5-I-INTEGRATED_A09_R189337.EXE inflating: update.bat inflating: FW5461II.rom inflating: R189337.txt inflating: dos4gw.exe inflating: FIND.exe inflating: MegaFl.exe inflating: nocheck.bat
The file containing the firmware updates is FW5461II.rom. To flash the controller card, use mfiutil:
# mfiutil -u0 flash FW5461II.rom WARNING: Firmware flash in progress, do not reboot machine... finished mfi0 Pending Firmware Images: Name Version Date Time BTBL R.2.3.12 Nov 13 2006 15:19:25 BIOS MT28-9 MPT1 MPTFW-00.10.62.00-IT 05/14/08 21:52:15 APP 1.03.50-0461 May 21 2008 09:08:28 BCON 1.03-04 Sep 28 2006 14:10:07 CTLR 1.04-019A Aug 13 2007 23:21:34
The above command may take a minute or two to finish. Now simply reboot and enjoy your updated RAID controller!