I have an older Dell server, a Poweredge 2900 II, and I would like to use it with large HDDs (> 8 TB). For this, an expansion card is needed, since the motherboard nor the PERC RAID controller can deal with drive larger than 2 TB.
However, the BIOS (even at the latest version) does not have any capability to enable option ROMs, so that the SATA expansion card will work. I can see the card in Linux (Knoppix), and the ACHI driver claims the card, but no drives show up.
I am thinking because the BIOS never executes the option ROM on the SATA card, that the controller never fully initializes itself and doesn't let the drives be seen from Linux.
I managed to extract the option rom image from the SATA card (Marvell 9215), but I could not trick the machine to load the image in hopes of initializing the card (boot it as a floppy image, use it as a bootloader).
I don't care that I cannot boot from the drives of this PCIe SATA card, I just need to access the drives in Linux.
Any way to get the card working without seriously hacking the BIOS? I know it is a problem with option roms, because others have tried to install video cards and also PCIe storage cards without luck. The BIOS seems not to care about any of these option roms whatsoever.
Thanks a lot for your insight!
Cheers
in response to Michael:
Yes, it does load the option ROM for the PERC controller, but only because it has a dedicated PCIe x4 slot. If you put a different controller there (say, a different PCIe x1 or x2 card), the BIOS halts the boot process completely because it detects that the current amount of lanes in use for that slot is not 4.
I was thinking about hacking the BIOS firmware image to disable the check, but I am uncertain as of yet whether the BIOS image is signed. There is no guarantee that the BIOS doesn't try to read or write to some registers on the (non-existent) PERC card even after the BIOS hack, failing miserably in the process.
I would just insert a JMP to the address of the option ROM of the new controller card, but it seems that the BIOS is not even mapping that ROM into the memory space of 0xC0000 - 0xF00000, because I couldn't find the option ROM code with the ree utility (https://github.com/alexmyczko/ree). Even poking around at the first few megabytes of /dev/mem manually didn't show any of the ASCII strings from the controller ROM in question.
You are right about the ancientness of the server. They are mostly only usable as a boat anchor, but I wanted to see if it could serve as a simple RSYNC backup solution for personal use instead of playing around with dumb external HDD enclosures. I got it for free, but wanted to rescue it from the recycling depot.
I heard of some people having some success with similar DELL servers by installing a PCIe x8 or x4 graphics card, because then for whatever reason the BIOS decides to probe the rest of the PCIe slots for option ROMs. Though, I don't have such a card lying around (only x16 bus width, and I don't want to hack saw it down to an x8!). Even so, many others have said that PCIe graphics cards don't work in such a rig, because "it's a server, and only needs KVM over IP / VGA".
Some even said putting the PCIe SATA card in the final PCIe slot would cause it to work, but I have had no success.