Dell 7010 NVME + BIOS Lock Mod Discussion

@sith - 7010 BIOS is 12MB total, 4MB + 8MB - Unsure what your 6MB dump is, DOS FPT of BIOS region only? If you have programmer, use that instead, dump both BIOS, unless you are just more comfortable with FPT and BIOS region, that’s fine too
Just general statement there on the BIOS size/files, I’m sorry this thread is not specific to you and I tried to look back to see what’s going on and why you posted BIOS for me, but I can’t figure that out.
NVME insert does not go inside or near CMSCORE, that’s just given as example to select in MMTool to be sure you are selecting the correct volume # when you insert with MMTool.
As a generic example, here is image, I inserted NVME module (full size) into 7010 8MB BIOS Dump (Inserted at" FV Main Nested", after last DXE module - same volume as CMSCore then put after GUID 1712AD21-B6EC-4764-97C7-837DA5DDE4CD - IntelLOMUEFIdriverx64)

Dell-7010NVME.png



I have also test inserted at the other possible working location, at end of main BIOS volume, after DxeSbACPI and the full size module inserts there fine too, but I do believe above location is best method for this BIOS layout

Dell7010-NVME-OUtsideFVNested.png


I described this with GUID Details at post #143, as second method in my comments at that post. The main ideal method I also describe there, as shown in above image (inside FV Main Nested), this method in first image is the ideal and suggested insertion location IMO

All these inserted done with UEFITool 25, no reason particular for that version, it was just the one I had open then.

@Lost_N_BIOS

Bios Region Mod Only

I did take 12mb and 6mb dumps via FTP. I am more comfortable only modding the bios region. That’s why I’m modifying just bios region. Also, the service mode jumper still leaves some regions locked.

I saw in the 12MB Bios Descriptor that certain regions (i.e. ME) have locks with specific offsets. I haven’t been able to understand how to read these offsets and locate the piece of hex (Using HxD64) that I would have needed to change. I seem to get confused with trailing zeros on lines but will have a guess with the Bios lock (0Bh 0Ah)

Bios Region.PNG



I assume 0Bh is the line B which for some reason is labelled 000000B0 (why in HxD it has a trailing zero makes no sense to me unless they just want it 8 digits long! why not 0000000B!)

The column I guess is 0Ah which is likely labelled 0A (I understand the trailing h just signifies the number is hexadecimal)

HxD64 of 12MB Dos Dump.PNG



The bios lock location shows the highlighted code ‘FF’. Have I done this correctly?



The pictures I recently posted in #146 were looking at Snakeman’s mod which bricked his system. I believe my mod was at the correct location. I hoped you could verify this.

I will try the mod using an older version of UEIFtool 0.25.x if that is working, as my alpha version from Jan 19 didn’t allow the insertion.

I don’t have the programmer yet, but have bought one and learned how to use it, just in case. I hope I never need it and am much happier using FPT in dos.

The reason I shared the bios was to confirm that the normal size (uncompressed) NVME module could not be inserted into the correct place and that my insertion of NVME (small + compressed) was the only viable method. I also wanted reassurance that the MMTool compression method (Tiano) won’t render the mod unreadable. Other regions of the bios region which are compressed don’t have any description of the type of compression used.

I believe I read on another thread yesterday that someone else was forced to insert the small module compressed due to space on the 7010 bios.

Possible success. I downloaded the older UEIFTOOL 0.26.0 and I was now able to insert. The bigger NVME file was also able to fit. This is now the one I will install and forget about the other one. I am feeling brave. Tonight I flash the modded BIOS!

@sith I’m ready for the results so we can compare. My programmer is on the way also, I had to pay a lot more it than you. Should be here in a couple of days.

snakeman

Well @snakeman I class this evenings effort as 99% successful. At the end, I will let you know the 1% frustration.

I filmed the FTP process in case something went wrong I could review the video and find out what killed my PC! I uploaded it to YouTube so you can relive the nerve-racking 40 seconds of flashing the modded bios.

https://youtu.be/-QYe6DWuQLY

The system rebooted and loaded up into windows. Using the windows version of FPT I took a dump of the bios and compared it to my modded bios and they didn’t match. I assumed this was just as I had removed the service jumper before restarting and locks were back in place, so I loaded the bios dump into UEIFTool and searched for NVME.

I found one reference as expected and went to the search result to find that it was the ‘NVME Small’ file that was present. I had flashed the wrong modded bios version!!!

In DOS my filenames were too long and I had two bin files on the root and I believed they were the same but one was the moded version with small NVME (Made via MMTools) and the other was the one I made this morning with normal size NVME module (made via UEIFTools).

The lesson here is to only have one bin file in your DOS root or have short names


So now that I confirmed the mod had been applied and I hadn’t bricked the PC. Rather than flashing this morning’s bios version I thought let’s see if I can get it to boot from PCIe NVME drive.

I grabbed the adapter and NVME drive from my daughters PC, as she is on holiday and won’t find out. I shut down the Optiplex added the NVME drive to the graphics card slot and disconnected every other drive.

Turned on PC and it said 'No hard drive found. F1 To Continue F2 Setup F5 diagnostic etc)

I pressed F2 and had a poke around the bios. I found the ‘Mass Storage’ drive listed in the PCIe slot.

[[File:Mass-Storage-(2).jpg|none|auto]]

I was hopeful as it was at least seeing the NVME as a ‘Mass Storage’ device. I switched from legacy boot to UEIF boot options and restarted and again got the ‘No hard drives found’ message. My heart sank!

I pressed F5 and got the message that ‘No hard drives or drive controlled not recognised’ in the diagnostic program. My heart sank again.

I restarted with a windows USB installation disk in the front USB port and got as far as the windows program showing the NVME as a detected drive. There were a few error messages. I might have been able to install to here but I wasn’t willing to format my daughters NVME drive. I cancelled the installation, thinking when I get my drive and adapters I’ll try to do a fresh Windows install and see if having the formatting a different version (Not MBR but GPT) would possibly work!

Cancelling the install restarted the PC and I went through the bios again and did nothing of much substance.

I restarted and thought, what the hell one option left. I pressed F1 and in a few seconds, Windows had booted from the NVME drive.

Then through windows file explorer, I looked at the properties of the boot drive just to convince myself it wasn’t a dream.

Asgard-on-Optiplex.jpg



I couldn’t believe my eyes. Weeks I’ve been learning from the forum and my efforts have bloody worked again. I love this forum!

Here are the speeds of the Asgard NVME drive on the Optiplex 7010 via what I believe is a PCIe 2.0 slot (blue, x16 length and near the CPU).

Asgard-bench-Optiplex.jpg



Now the 1% frustration is that I might have to press F1 every time I boot the PC, unless I or some kind person on the forum can help me find a solution to this issue. I hope there is a bios setting to not halt on errors or something like that. But I’ve put back the NVME drive in my daughters PC and won’t tinker again until I have my drive and adapter.

Now for a well deserved Titantic Dark and Strong ‘Plum Porter’

Mass-Storage-(2).jpg

Ok guess what my work around is for my machine. It does the same thing. I installed a non boot drive on the sata connector! Boots everytime! How did you do that speedtest?


snakeman

I was wondering if that might work. I plan to have a HDD attached for general storage of videos etc. Fingers crossed that resolves the issue because I found no bios setting that I can use to get around that POST error.

I have several benchmark programs. That one is Crystal Disk Mark. I got it from the Microsoft store for free I think. But it can be downloaded from the developer also.

http://crystalmark.info/en/software/crystaldiskmark/

@sith
Oh the service jumper is how I discovered it. :slight_smile: I installed the service jumper and it booted the first time. We just need a little time out 2-5 secs!

I will post my benchmark soon.

@sith
* KB = 1000 bytes, KiB = 1024 bytes

Sequential Read (Q= 32,T= 1) : 810.777 MB/s
Sequential Write (Q= 32,T= 1) : 710.682 MB/s
Random Read 4KiB (Q= 8,T= 8) : 692.865 MB/s [ 169156.5 IOPS]
Random Write 4KiB (Q= 8,T= 8) : 681.120 MB/s [ 166289.1 IOPS]
Random Read 4KiB (Q= 32,T= 1) : 289.057 MB/s [ 70570.6 IOPS]
Random Write 4KiB (Q= 32,T= 1) : 248.749 MB/s [ 60729.7 IOPS]
Random Read 4KiB (Q= 1,T= 1) : 32.088 MB/s [ 7834.0 IOPS]
Random Write 4KiB (Q= 1,T= 1) : 63.902 MB/s [ 15601.1 IOPS]

Test : 1024 MiB [C: 70.8% (28.1/39.7 GiB)] (x5) [Interval=5 sec]
Date : 2019/04/04 4:47:26
OS : Windows 10 Professional [10.0 Build 17763] (x64)
7010 nvme x2 cheap

@sith - to unlock all regions you need to reflash/reprogram the FD region (First region when viewing complete BIOS in UEFITool) - here is method, see section B spoiler #2, first image applies to your BIOS - [Guide] Unlock Intel Flash Descriptor Read/Write Access Permissions for SPI Servicing
Aside from doing this edit at full BIOS file (12MB file), you can also edit the FD at the beginning of the 4MB dumped chips contents, this is the start of the BIOS. Do the edit on this chips dump, then program it back
Once you do that, and get the FD programmed back, you can then using FPT to reflash any and all BIOS regions. And yes, sorry no one mentioned, but you need to use UEFITool 25 or 26 to edit, UEFITool NE 51-55 etc are for viewing (Hex view), checking modules, inspecting other BIOS things, diagnosing mods etc

Your second image at post 153, this is not the FD at all, you’re in BIOS region dump only I assume? See my comments above for where to do the edit, it will match and look exactly like the guides image and you’ll edit line #60
Or, was that image about “BIOS Lock” all very confusing there too? If that image, where you discuss A0h and highlighted FF, is about BIOS lock setting editing, then no this is incorrect as well, for many reasons.
FF is not what you’d edit a BIOS lock setting to be, and that does not look like an extracted setup BIOS module, which is what you edit to unlock BIOS lock.
BIOS Lock is in the setup module at GUID 899407D7-99FE-43D8-9A21-79EC328CAC21, extract as-is and then get your IFR to find BIOS Lock location (or cheat and use image below )
You must swap “30” from one setting and move to the other setting, so one you will change 00 to 30 and the other you will change 30 to 00 - this switches the default setting

7010-BIOS-Lock-Mod.png



On your programmer, if you have it now, learn how to use it and make a backup.
You need to know how to use it, what software works etc, and have that backup made, before you “Have” to use it later to recover, see what I mean, this way you know how it works and you have a backup ready in case you ever have to recover

Not all BIOS modules will have names, this is due to lazy engineers, or how the headers are laid out, some might not need a name, some should have but no one put on in header etc, this has nothing to do with how it’s compressed or not.
If MMTool is best for your BIOS or not, all depends on how it modifies the file, hard to know for sure without having tested or looked at BIOS before/after etc.
I did check your mod and it looks “OK”, but I am not sure how critical it is to have NVME insert after last DXE or can just be at end of volume.
How you have it inserted is NOT after last DXE, but at end of volume, which is not the normal suggested way to do the mod (Nor would be directly after IntelLOMUEFIdriverx64. Also, you used the small module, which is not necessary
And I see pad-file above microcode is removed, so I would suggest you Do Not use this BIOS (bios_d_mod.bin from post #144), it may brick the board - sounds like you did already by accident, glad it didn’t brick the board.

On F1 issue, what is the exact error it’s saying? Did you remove the jumper? Did you reconnect all fans, and the front panel connector and the power switch cable?
This may be related to your option rom settings, legacy, UEFI etc, and what you have set for those and secure boot, secure boot disabled etc vs what is in the card’s BIOS image as it loads.
If you can give me exact error show/description, I may be able to bypass it for you - Information on some 7010 / 9010 F1 errors and port pinouts (For everyone’s future reference) - https://linustechtips.com/main/topic/987…o-panel-pinout/

* Edit! I see on post #24, sorry I missed previously, you mentioned 'No hard drive found. F1 To Continue" error, is that the only one you are getting? If yes, let me dig into a few modules in assembly and I think I can show you how to bypass this
Please show me an image of the error, so I have the exact terminology and punctuation used etc.
** Edit 2 - Is this the exact error? “No bootable devices - - strike F1 to retry boot, F2 for setup utility”
If yes, I can show you how to fix this possibly, but it may take a few tests that could fail until we find correct edit (So flash programmer needed in case you have to recover), if you want to try this and have a verified and valid backup and are ready to recover, send me a dump of your current BIOS region

* @sith @snakeman - I’ve moved these posts to their own 7010 BIOS thread, since our discussions on NVME/BIOS lock etc had nothing to do with extracting BIOS from Dell BIOS package. Please feel free to edit the title if you want.
And of course, I now see I left the post subtitles original

* Edit, BIOS settings you can try adjusting (via mod if you do not see these in your BIOS)
One Of: SATA RAID ROM, VarStoreInfo (VarOffset/VarName): 0xBDC, VarStore: 0x2, QuestionId: 0x13A, Size: 1, Min: 0x0, Max 0x0, Step: 0x0 {05 A6 9A 01 9B 01 3A 01 02 00 DC 0B 10 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00}
One Of Option: Legacy ROM, Value (8 bit): 0x0 (default) {09 0E 9C 01 30 00 00 00 00 00 00 00 00 00}
One Of Option: UEFI Driver, Value (8 bit): 0x1 {09 0E 9D 01 00 00 01 00 00 00 00 00 00 00}
One Of Option: Both, Value (8 bit): 0x2 {09 0E 9E 01 00 00 02 00 00 00 00 00 00 00} << Change this to be default

Boot option filter, VarStoreInfo (VarOffset/VarName): 0xBDF, VarStore: 0x2, QuestionId: 0x305, Size: 1, Min: 0x0, Max 0x0, Step: 0x0 {05 A6 92 09 93 09 05 03 02 00 DF 0B 10 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00}
One Of Option: UEFI and Legacy, Value (8 bit): 0x0 (default) {09 0E 94 09 30 00 00 00 00 00 00 00 00 00} Already default = good
One Of Option: Legacy only, Value (8 bit): 0x1 {09 0E 95 09 00 00 01 00 00 00 00 00 00 00}
One Of Option: UEFI only, Value (8 bit): 0x2 {09 0E 96 09 00 00 02 00 00 00 00 00 00 00}

These two below, you may need to try both ways, especially the "Other PCI Device"

One Of: Launch Storage OpROM policy, VarStoreInfo (VarOffset/VarName): 0x2E, VarStore: 0x2, QuestionId: 0x307, Size: 1, Min: 0x0, Max 0x0, Step: 0x0 {05 A6 99 09 9A 09 07 03 02 00 2E 00 10 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00}
One Of Option: Do not launch, Value (8 bit): 0x0 {09 0E 9D 09 00 00 00 00 00 00 00 00 00 00} I’d say never set this, but it could be answer as well, if you are not using the normal SATA slots
One Of Option: UEFI only, Value (8 bit): 0x2 {09 0E 9E 09 00 00 02 00 00 00 00 00 00 00}
One Of Option: Legacy only, Value (8 bit): 0x1 (default) {09 0E 9F 09 30 00 01 00 00 00 00 00 00 00}

One Of: Other PCI device ROM priority, VarStoreInfo (VarOffset/VarName): 0x1, VarStore: 0x2, QuestionId: 0x309, Size: 1, Min: 0x0, Max 0x0, Step: 0x0 {05 A6 A0 09 A1 09 09 03 02 00 01 00 10 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00}
One Of Option: UEFI OpROM, Value (8 bit): 0x1 {09 0E A2 09 00 00 01 00 00 00 00 00 00 00}
One Of Option: Legacy OpROM, Value (8 bit): 0x0 (default) {09 0E A3 09 30 00 00 00 00 00 00 00 00 00}

Good Day to Everyone!,

Question: ‘assuming’ everything is working with the modded BIOS, will this work with all 7010 series/form factors? ie DT, MT, SFF, USFF?

@ambad4u - that is a lot to assume, in what you are asking I mean, we have to assume what you meant
I would assume not, and would correct BIOS specific for your system. Unless you compare stock BIOS from each, post extraction and find all regions to be matching.

Additionally, you would not want to use any file here, otherwise you will loose your board specific details (serial, asset tag, LAN MAC ID etc)
You could use FD region from any BIOS here, but that is as far as I would assume unless it’s been proven and tested that the ME and or BIOS region is swappable between all those and everything still functions properly.

Noted, I will just have to wait until I get one (an SFF).

Yes, once you have system, you can send me dumped BIOS and I can do whatever you need done to it.

@Lost_N_BIOS

What he met the "F1" when he boot the machine @sith means He boot it only with the nvme SSD and without any SATA HDD or SSD.
So the bios would show the "F1".

I also wonder how to solve this "problem" by modding bios?

@gloobox - sorry, I don’t know what you mean above (or what you’re referring to there either), or what that problem is, so I can’t tell you how to solve with mod BIOS.
Ohh, I looked back, I think you mean you get stop on POST Screen with F1 message about no hard drive? If yes, then do M.2 or NVME mod to BIOS, then follow guide, get BIOS setup to boot from that device then F1 should go away
If you mean how to bypass the error itself like I mentioned on post #29, I was talking about editing the module that contains that error to bypass it in assembly, so it’s never a possible option

@Lost_N_BIOS
Yeah,I mean I got stop on POST Screen with F1 message about no hard drive.
I ever saw someone mod the bios of HP Z97 and had bypassed the error message even no hard drive or no fan plugged in.So I wonder how to mod it.
Here is the modded bios about the HP mobo.
HP 2B36-A0.13.bin
http://s000.tinyupload.com/?file_id=49116626727914067304

Hey @sith ,
Do you happen to have the txt file for FPT I could use? I tried digging for it but all the download links don’t work anymore. When I run FPT, I get “FPT cannot be run on the current platform”.

Also, I get “Platform Signature not found” while using phlash16.

Thanks to anyone who can help!



My 3020m give me these messages at startup

Front I/O Cable Failure
Rear Fan Failure

i not have a idea which module need edit

@Jah-On I believe this is the text file that works with FTP which is 639kb

And the source of the FTP was in the attached zip file of Intel ME System Tools in the ‘Flash Programming Tool / DOS’ folder.

fparts.txt (7.52 KB)

Intel ME System Tools v8 r3.rar (3.11 MB)