Table of Contents

  • The One True Guide
  • Why (are we doing this)
  • How (do we flash the cards)
    • Pre-Requisites
  • What (supported cards)
    • LSI Compatibility Matrix
  • Troubleshooting
  • Glossary of Terms

The One True Guide

See https://fohdeesha.com/docs/perc.html.

(this article is just a summary of that, as a quick reference for how we set things up)

Why are we flashing these?

Who cares! Skip ahead!

We want to run a CephFS cluster on commodity hardware.

For that we need direct, non-abstract (meaning HBA/JBOD/IT Mode) access to the drives.

There are tons of used Dell PowerEdge Rx20 series servers that are well-worn, but otherwise in good condition that are being pulled from other data centers and dumped on the market, but they don’t have good HBA

Also, this allows us to experiment with features of other modern file systems (including ZFS and BTRFS) which use the low-level access for their built-in redundancy and performance features.

The de-branded LSI firmware doesn’t have all the iDRAC management controls, but it’s necessary to make these boards usable for this purpose.

Caveats

  • This guide is specific to the H710p Mini on an R620/R720/xd, no fluff
    (that said, it’s the same procedure for the similar cards)
  • The LSI firmware won’t be visible to the iDRAC

How To Flash Hx10 Cards to IT Mode

Essentially you download to custom-made images and run some custom commands.

  1. Download perc-crossflash-v2.3.zip
    https://fohdeesha.com/docs/store/perc/perc-crossflash-v2.3.zip
    It has everything you need. At the time of this writing:
    Version: v2.3
    ZIP Updated: 01-12-2023
    MD5: d0f15f46112762f16fe32832cd9a7492
    
    PERC Mini Crossflashing/
    ├── deesh-FreeDOS-v2.2.iso
    ├── deesh-Linux-v2.3.iso
    └── v2.3.txt
    
  2. Mandatory: Remove the Battery from the PERC board (unclips easily)
  3. Mandatory: Physically Remove / Disconnect all drives
  4. Mandatory BIOS Settings
    • F2 to boot into the BIOS (System Setup)
      • Disable: Processor Settings > Virtualization Technology
      • Disable (default): Integrated Devices > SR-IOV Global
      • Disable (default): Integrated Devices > I/OAT DMA Engine
      • BIOS (default): Boot Settings > Boot Mode > BIOS (NOT UEFI)
  5. Recommended Speed up Boot Times!
    (there are several reboots as part of this process, which account for most of the time)
    • Remove all but one stick of RAM per CPU
      (there are two RAM configurations per reboot, and they’re slow)
    • F2 on Boot for iDRAC Settings, Lifecycle Controller, Disable
    • System BIOS Settings, Miscellaneous Settings, In-System Characterization: Disabled
  6. FreeDOS Time
    • connect deesh-FreeDOS-v2.2.iso as Virtual Media
    • click to Map
    • Hit F11 during boot to select Virtual CD
  7. Once booted run info
    Write Down the SAS Address
    info
    
    DOS/32A -- Protected Mode Run-time Version 7.2
    Copyright (C) Supernar Systems, Ltd. 1996-2002
    Product Name : PERC H710 Mini
    ChipRevision : D1
    SAS Address :5848f690ec066900   <==== 🎗️ WRITE THIS DOWN
    
  8. Based on the Product Name and Chip Revision you will need 2 custom commands
    Clear (FreeDOS)
    Flash (Linux)
    and Revert (Linux), if you ever need it
  9. Run the clear command - for us, on H710/H710p Minis, it will be one of these:
    B0CROSS  # H710 Mini B0
    D1CROSS  # H710 Mini D1
    PB0CROSS # H710p Mini B0
    PD1CROSS # H710p Mini D1
    
  10. Linux time:
    • reboot to reboot FreeDOS
    • Connect and Map deesh-Linux-v2.3.iso
    • it’s normal to get a kernel panic on the first reboot just reboot again
  11. Switch to the root user:
    sudo su -
    
  12. Run the flash command - for us that will be one of these:
    B0-H710  # all B0 variants of H710/H710p/H810 cards
    D1-H710  # all D1 variants of H710/H710p/H810 cards
    H310     # all H310 variants
    
    And reboot:
    shutdown -r now
    
  13. Boot errors are normal for the first 1 or 2 boots.
    It’s just the various firmware systems being out of sync.
    If you encouter core, cache, kernel or not found errors, just reboot and retry.
  14. Now set the SAS Address and add boot capabilities (if you boot that way):
    # set the SAS Address
    setsas 0000000-0-0000-0000
    
    # optionally add support for BIOS boot
    flashboot ./Bootloaders/mptsas2.rom
    
    # optionally add support for UEFI boot
    flashboot ./Bootloaders/x64sas2.rom
    
    # optionally turn off 3rd party fan failsafe
    # (will rely only on other temps because the iDRAC won't get HDD temp anymore)
    ipmitool –I open raw 0x30 0xce 0 0x16 5 0 0 0 5 0 1 0 0
    
    Optionally, you can run info to check the card info:
    info
    
        Controller Number              : 0
        Controller                     : SAS2308_2(D1)
        PCI Address                    : 00:02:00:00
        SAS Address                    : 0000000-0-0000-0000
        NVDATA Version (Default)       : 14.01.00.06
        NVDATA Version (Persistent)    : 14.01.00.06
        Firmware Product ID            : 0x2214 (IT)
        Firmware Version               : 20.00.07.00
        NVDATA Vendor                  : LSI
        NVDATA Product ID              : SAS9207-8i
        BIOS Version                   : N/A
        UEFI BSD Version               : N/A
        FCODE Version                  : N/A
        Board Name                     : SAS9207-8i
        Board Assembly                 : N/A
        Board Tracer Number            : N/A
    
  15. Reboot and put your BIOS settings back to normal:
  • F2 to boot into the BIOS (System Setup)
    • Enable: Processor Settings > Virtualization Technology
    • Enable: Lifecycle Controller

Done! Now it’s ready to use!

Pre-Req

BIOS v2.9.0

We’re using the v2.9.0 BIOS.

And we do all this remotely via the v2.65.65.65 iDRAC.

iDRAC v2.65.65.65

note: the .BIN files aren’t actually firmware “bin"s, they’re self-extracting shell scripts. They WILL NOT WORK for BIOS or iDRAC updates.

Supported Cards

These are pretty much the same LSI-manufactured chips, in different packages with different amounts of RAM, etc:

  • H310 / H710 / H710p / H810
    • Mini Mono, Blade, and Full Size PCIe variants

LSI Compatibility Matrix

From the FreeDOS .iso you can run an info command that gives product & revision info about your card:

info
Product Name : PERC H710 Mini
ChipRevision : D1

Using that information, you’ll be able to find which (ALL-CAPS) commands to use here:

Clear (DOS) Flash Revert Product Fohdeesha Guide
R620, R720
310MNCRS H310 310REVRT H310 Mini H310
B0CROSS B0-H710 B0REVERT PERC H710 Mini H710-B0
D1CROSS D1-H710 D1REVERT PERC H710 Mini (D1) H710-D1
PB0CROSS B0-H710 PB0REVRT PERC H710P Mini H710P-B0
PD1CROSS D1-H710 PD1REVRT PERC H710P Mini (D1) H710P-D1
Full PCIe
310FLCRS H310 310FLRVT H310 Adapter H310-full
BIGB0CRS B0-H710 BIGB0RVT PERC H710 Adapter H710-B0-full
BIGD1CRS D1-H710 BIGD1RVT PERC H710 Adapter (D1) H710-D1-full
BGPB0CRS B0-H710 BGPB0RVT PERC H710P Adapter H710P-B0-full
BGPD1CRS D1-H710 BGPD1RVT PERC H710P Adapter (D1) H710P-D1-full
810B0CRS B0-H710 810B0RVT PERC H810 Adapter H810-B0-full
810D1CRS D1-H710 810D1RVT PERC H810 Adapter (D1) H810-D1-full
M620, M820
D1BLDCRS D1-H710 D1BLDRVT PERC H710 Mini (Blade) H710-D1-Blade

Troubleshooting

If you have any troubles or curiosities, consult The One True Guide for extra details.

Remember, these things are only $35 on ebay, so it’s not a big deal if you brick one - it’s probably a better use of your time just to buy them.

FYI: The “Mini Mono"s are considered “Integrated RAID” in the BIOS. Yes, they are a card but… it’s a daughterboard, they’re still IR.

Glossary of Terms

Art of Server: RAID vs HBA SAS Controllers

Term Description
iDRAC Integrated Dell Remote Access Control
A completely separate computer (think Raspberry Pi compute), but built into the same motherboard, just for controlling the main server
EXE Not what you think. A zip file for the iDRAC
LSI The company that makes the boards LSI => Avago => Broadcom
HBA Host Bus Adapter - the enterprise term for a “direct disk access” card
JBOD Just a Bunch of Disks - the consumer term for “direct disk access”
IT Mode Initiator Target - the IT term for “direct disk access”
IR Mode Integrated RAID - firmware RAID (as opposed to true hardware RAID)
RAID Redundant Array of Independent Disks - contigencies for failing drives
SAS Serial Attached SCSI - enterprise alternative to USB, for drives
SCSI Small Computer System Interface - enterprise storage system
BIOS Basic Input Output System - the firmware that boots the computer
UEFI Unified Extensible Firmware Interface - new-age BIOS
CephFS A cluster file system - what Digital Ocean and such use for storage