Modding Dell PowerEdge R300 BIOS for booting NVMe drive (files included)?

Hi all (and especially @Lost_N_BIOS ),

First; thank you for taking the time to read my post. Highly appreciated.

For work (and for fun obviously) I have two older Dell PowerEdge R300 servers (generation 10 I believe). I want to see if I can get them working with a NVMe M.2. SSD.
I purchased a NVMe to PCIe bracket and a NVMe SSD (PNY XLR8 CS3030 internal solid state drive M.2). Actually I purchased two NVMe to PCIe brackets for testing; Akasa M.2 to PCIe adapter (currently installed) and a Startech M.2 adapter to PCIe adapter.

I tried installing CentOS 7.x and it does see the NVMe drive (it’s even being recognised as one) and it also installs CentOS 7.x on it without issues. However the issue is, is that I cannot boot from it. It will not find any boot devices, also it does not discover PCIe adapter withe NVMe M.2 SSD on it. So it’s clearly that the BIOS is lacking this functionality. Now I am wondering if support for booting NVMe can be modded in the BIOS?

I did actually read the following (similar) topic: (nvme boot) modding dell 12th gen poweredge server bios
Unfortunately the original poster never replied back apparently. Therefor I am creating a new thread.

I am willing to perform quite a few tests in getting this working and maybe do my own programming flashing (and buy the needed tools as mentioned in the topic above). But I would like to know if it’s possible.

I know for “normal” motherboards it’s possible. Heck, thanks to the Win-Raid Forum, I even managed to get my “old” Asus P9X79 PRO to support booting a NVMe M.2 SSD on a PCIe bracket. :slight_smile:

So I am really hoping there are some things to experiment on this Dell PowerEdge R300 server. If so, maybe it can also be used on different Dell PowerEdge servers in general?
This would be great.

I hope someone can advice me or point me in the right direction. Maybe it’s not even possible at all.

I tried a few things; including removing the RAID controller, so it only has the PCIe adapter with the NVMe SSD in the server, but still no luck. Though it does get recognised by CentOS 7.x (as NMVe drive) and will install on it. The only (and main issue) is that it will not boot from it.

Maybe this can be modified somehow? And would buying a “CH341A programmer” be useful in my situation (I never used something like this before though).

Regards,
HHawk



PS: to be somewhat useful I have included several files in one rar file. One is the extracted Windows version, the other files are done with the command to /writeXX.



//edit 1:
I will also include the necessary .bin file in a few minutes (didn’t work in DOS so I am creating a WinPE USB as we speak), as asked in the other thread. Hopefully it will help.


//edit 2:
Well that was pretty pointless; I used v3 (and also v2 and others) but no luck in getting the BIOS dump file.
It finds the flash device (MX25L80005 ID:0xC22014 Size: 1024KB (8192Kb), howeve when running “fprog -bios -d r300biosreg.bin” it results in an error: Cannot determine the target region location because the flash descriptor is invalid!

//edit 3:
Sorry for the edits, but I want to be as thorough as possible. If I use the command “fprog -d fulldump.bin” it dumps everything (?) without issue. I discovered the command after reading this. No clue if it’s useful. I am including it anyways.

r300_bios_files.rar (4.03 MB)

FULLDUMP.rar (363 KB)

Yes, CH341A + SOIC8 or SOIC16 clips with cables (or both) would be ideal, often this may be only way to get the modified BIOS onto the chip.

What is fprog? The commands you used when mentioning fprog, and the ones you tried to use that failed, look like Intel FPT commands. I’ve never heard of fprog, so wondering if it’s something similar from Intel, or what’s going on there?
What are you using V2, V3, etc from?? You’ve included a lot of details above, thanks, but also missing clarification on a lot of what you mention too

Please link me to stock BIOS package from Dell. Does this system use Intel CPU?

No matter what, if we can modify your BIOS, you will need to reinstall the OS again

What is this r300_bios_files.rar exactly? I haven’t downloaded, limited internet, try to only download what I need.
I have not downloaded any files above yet. Whatever you dumped from 0xC22014 is a 1MB chip (8MBit not 8MB), this is probably not BIOS unless this is a 10+ year old board, then it may be possible BIOS is only 1MB.
If that is the case, then no, without even looking I can tell you that you cannot mod BIOS for NVME and your only option will be bootloader type of NVME booting, such as links below
[Guide] NVMe-boot for systems with legacy BIOS and older-UEFI (DUET-REFIND)
[Guide] NVMe-boot without modding your UEFI/BIOS (Clover-EFI bootloader method)

Hi Lost_N_BIOS,

Okay; guess i will order those then. Never did BIOS programming, so hopefully it will work.

Well that “fprog” tool was included in “Intel ME System Tools v3 r1” so that’s why I used it…
There is no “FPT” included in that version, so I cannot use that obviously. :wink:

Latest stock BIOS for the R300 is located here, in several formats: https://www.dell.com/support/home/us/en/…=poweredge-r300
I guess you will need the Non-Packaged version, which is meant for DOS flashing.

It’s an older server indeed, but I am hoping I can give it a 2nd use by booting up with NVMe support.
The .rar includes all different kind of dumps from the BIOS update file; .EXE, .HEX, .ROM, .HDR, etc. Since I have no idea what was needed, I included everything.

Okay, so in short it’s not possible to mod the BIOS with NVMe support than… :frowning:
I looked through those provided links, but they are only Windows-based, not Linux. I am running Linux. Maybe I overlooked though.

Thanks for the reply so far though.

Regards,
HHawk

//edit: yes, it’s an Intel CPU (Intel server). So if I cannot mod the bios, I don’t need to purchase the programming tools either, I guess?

Programming is easy, once you learn how it all works. Please show me a link to this “Intel ME System Tools v3 r1” you are referring to, I guess I’ve never seen or heard of this.

No, I want the exe from Dell, hopefully it’s in your link. What do you mean “Dumps from the BIOS update” rom/hex/bin would all be same thing, and very likely HDR/rom same thing too, I’ll have to check BIOS. But see, this is why I didn’t download and paused to ask

I don’t know if it’s possible to mod the BIOS or not, I’ve not looked at the BIOS yet. If you cannot mod BIOS, and have to do bootloader method, I think both provide Linux solutions, but I’m not sure, you may need to drop a comment in each to ask if you don’t find a good answer on page one of each thread.

Yes, that is correct, IF BIOS mod is not possible (not that it’s not possible, just not compatible with old BIOS type) due to BIOS type/age, then you do not need BIOS programming tools for now.

Checking Dells link you gave me now, will edit in update shortly. * Edit before post - Yes, this is very old 771 or 775 socket motherboard, made LONG before UEFI BIOS (the only kind you can NVME Boot with)
So you do not need BIOS programming tools, and the only way you can boot NVME is via bootloader method. If the above links don’t work for you, and no one replies if/when you ask about Linux in those threads, google NVME Bootload method Linux and you should find a solution.