H310/H710/H710P/H810 Mini & Full Size IT Crossflashing
Original Source: https://fohdeesha.com/docs/perc.html
This guide allows you to crossflash 12th gen Dell Mini Mono & full size cards to LSI IT firmware. Mini Mono refers to the small models that fit in the dedicated "storage slot" on Dell servers. Because iDRAC checks the PCI vendor values of cards in this slot before allowing the server to boot, the generic full-size PERC crossflashing guides do not apply. This guide however solves that issue. Technical explanation for those curious. The following cards are supported:
- H310 Mini Mono
- H310 Full Size
- H710 Mini Mono
- H710P Mini Mono
- H710 Full Size
- H710P Full Size
- H810 Full Size
Why
There's two main reasons to do this, assuming you don't need the hardware RAID functionalities of the stock firmware:
Better Performance: the plain LSI IT firmware in this guide drastically increases the max queue depth of the adapter. For instance on the H310 Mini, it goes from 25 with the stock Dell RAID firmware to 600 with the LSI IT firmware. This can mean drastic improvements in IOPS with heavy SSD configurations for example.
Different Driver: The stock Dell firmware (MegaRAID-based) uses the MegaRAID driver in Linux/FreeBSD/etc. In some distributions this can cause issues, for example FreeNAS has issues pulling SMART data from drives connected to a MegaRAID controller. After crossflashing to IT mode, the card is used by the OS via the much simpler mpt3sas driver.
Preparation
Ensure there is only one LSI-based adapter in your system. If there are others besides the adapter you intend to flash, remove them! You also need to disable a few BIOS settings. This step is not optional. In your server BIOS, disable all of the following:
- Processor Settings > Virtualization Technology
- Integrated Devices > SR-IOV Global Enable
- Integrated Devices > I/OAT DMA Engine
You also must set the server boot mode to BIOS, not UEFI:
- Boot Settings > Boot Mode > Set to BIOS
Note: If you're flashing a card on a non-Dell system, such as an AMD based desktop or server, make sure you find any BIOS settings related to IOMMU and Virtualization, and disable them
When you're finished with this guide, don't forget to go back and enable Virtualization, as well as SR-IOV if you plan to use it. Switch boot mode back to UEFI as well if you were using it previously. But only once you've finished the guide!
Remove the RAID battery from the adapter. The IT firmware has no cache for the battery to back, in fact the IT firmware will have no clue the battery is there if you leave it connected. To make matters worse, in rare cases some people observed the battery holding old Dell code in the card's RAM and it made their crossflash process a pain. Just unplug/remove the battery and store it somewhere in case you return to Dell firmware.
Remove all drives connected to the PERC. This typically means any drives in the front of the server in the hot swap bays. If you forget to do this, the flashing process won't touch them or alter them, but having them connected can cause the flash process to fail and you'll be left wondering why. So pull the caddies for now!
Download the ZIP below which contains two ISOs. One
is a FreeDOS live image, the other is a Debian live image. Both come
prepackaged with all the required tools and files, and they can be
booted either via iDRAC virtual media or by burning them to a flash
drive via Rufus in WIndows, using dd
in Linux, or your favorite flashing utility - up to you. If you use
Ventoy, make sure to boot the FreeDOS image in memdisk mode.
Dell Perc Flashing ZIP
Version: v2.5
ZIP Updated: 09-28-2023
MD5: d7f5f926626b295f7005c4c927158569
I HAVE MY OWN COPY of DELL_PERC_FLASHING here.
Finding Your Card Revision
Boot the server off the FreeDOS ISO. Once it's booted just run the following command, it will spit out the name and revision of your card:
info

WARNING: If you are flashing a card in a blade chassis (like an M620 or M820), only use the "for blades" section for your card model below. Blade servers are the M620 and M820 for instance. Standard rackmount models like the R620 and R720 are not blade servers!
In my case, we should see PERC H310 Mini
H310 Mini IT Mode Flashing
Continued instructions for flashing the H310 Mini Mono. You should only continue here after following the Introduction Page. If you haven't done so already, go back.
Verify & SAS
You should still be in the FreeDOS live boot image. Double check you are on the right guide by running the following command again:
info
Product Name : H310 Mini
ChipRevision : B2
SAS Address : xxxx (will differ)
You also need to note the SAS address of the card from the above output so we can program it back later. Take a screenshot of the console, or otherwise note down the address so you can write it back at the end of the guide. It's not a huge deal if you lose it, but it's easiest to program back the original address instead of generating a new one.
Cleaning The Card
Still in FreeDOS, run the following command to wipe the flash on the card and get rid of all Dell firmware. This will also flash the required SBR:
310MNCRS
reboot
Linux Time
You should now be booted into the Linux ISO from the ZIP. Use the following credentials to login: user/live
We highly recommend SSH'ing to the live ISO so you can copy/paste commands and not have to use the iDRAC virtual console. To do so, run the following to find the IP of the install:
ipinfo
Flashing IT Firmware
Now, still in Linux, we need to change to the root user:
sudo su -
H310
Note: For some reason, the very first boot after crossflashing the card will cause a kernel panic - I believe it's iDRAC not letting go of something (I was able to see the card put in a fault state via the debug UART when this happens). This only happens the first reboot after crossflashing. When you boot back into the live ISO and get the panic, either let it reboot itself, or use iDRAC to force a reboot. After that boot back into the live ISO again and all will be well.
Programming SAS Address Back
Now rebooted back into the live Linux image, just run the following commands, filling in the example address with your own, that you noted down earlier:
sudo su -
setsas 500605b123456777
info
Controller Number : 0
Controller : SAS2008(B2)
PCI Address : 00:02:00:00
SAS Address : 5b8ca3a-0-f37a-4500
NVDATA Version (Default) : 14.01.00.08
NVDATA Version (Persistent) : 14.01.00.08
Firmware Product ID : 0x2213 (IT)
Firmware Version : 20.00.07.00
NVDATA Vendor : LSI
NVDATA Product ID : SAS9211-8i
BIOS Version : N/A
UEFI BSD Version : N/A
FCODE Version : N/A
Board Name : SAS9211-8i
Board Assembly : N/A
Board Tracer Number : N/A
Optional: Boot Images
Note: flashing these can add up to 2 minutes to server boot time if you have a lot of drives. Be sure you need them!
If you need to boot from drives connected to this adapter, you'll need to flash a boot image to it. Otherwise, skip it. This is what gives you the "press blahblah to enter the LSI boot configuration utility" text when the server boots. To flash the regular BIOS boot image:
flashboot /root/Bootloaders/mptsas2.rom
flashboot /root/Bootloaders/x64sas2.rom
Optional: Reverting
If for some reason you need to revert back to the stock Dell PERC firmware, that's easy. Boot into the FreeDOS live image, and run the following command:
310REVRT
reboot
command.
Note: This uses the unmodified latest Dell firmware
20.13.3-0001,A11
extracted from the update EXE found here.
No comments:
Post a Comment