Need some help for Intel Desktop Board D2700MUD

Thanks for jumping in @noInk !

@simhfc - yes, I am familiar with all methods to modify/open BIOS, none open your BIOS properly at the exact volume we need to edit (The main BIOS volume). Stop using the .bio file for anything, it’s useless to you for any of this, only use your dump.
Even extracting the compressed region or module itself and then reopen in PBT still will not decompress it properly - see attached images. This should expand and we’d see 100+ (guesstimate) DXE BIOS modules, like how the other sections expand (With less modules)
Intel Insyde Tools wont decompress this region we need either.

NoLuck.png

NoLuck2.png



If using UEFI as mentioned above, make sure your install source is on a GPT partition, then windows will make a GPT partition on the disk to install to (You may need to delete all partitions first, giving windows a RAW disk to install onto)

@noInk @Lost_N_BIOS

Okay… So regarding the modded BIOS files A/B/C, I have tested flashing and fresh installing Windows OS carefully, the partition of the USB drive is GPT and EFI booting is active, “UEFI Boot” BIOS setting is enabled, Windows setup finished copying files normally, then it becomes out of luck after the first restart…

noInk said “The BIOS PCH\SATA DXE infrastructure\driver may not support natively AHCI on that port” is absolutely correct, according to the thread on Intel forum, there is no SATA controller for the mini PCIe slot and therefore it won’t include any option rom, which Lost_N_BIOS mentioned before. It seems an option rom integration is necessary, but base on the sad situation I don’t even know if it’s possible? :stuck_out_tongue:

Besides, I found an obsolete tool on a Russian forum called “BIOS Patcher”, which is able to open .BIO file correctly with all modules names and GUIDs listed, and is capable of extracting all modules without an error message, it’ll only work with Windows XP, I’m not sure if it helps but it does show the structure of .BIO file. Here are the links(BIOS Patcher 7.0 / BIOS Patcher 7.alpha.01) and screenshot, and also those extracted files.

BP7.jpg



My only purpose is to keep the SSD as a system drive, without proper NVME booting, my second choice would be booting SSD via chainload(i.e. boot managers like Clover/DUET/Grub), Legacy or UEFI mode really doesn’t matter, the problem is, on either mode, the mini PCIe SSD could only get detected when both SATA ports are disconnected(or disabled in BIOS), otherwise, the boot managers could only see disks on SATA ports, this looks like a BIOS level issue, is it possible to make PCIe SSD and native onboard SATA co-exist in case ‘NVME booting’ option is out of the picture?

Thank you very much~

Intel D2700MUD(extracted by BIOS patcher).rar (1.54 MB)

@Lost_N_BIOS @simhfc

I can add to this discussion from my own experience.

There is no method that I’m aware of to get access to that particular compressed section through a binary dump (no doubt there is one, but I’m not aware of it).

Best way to do it is to update the board to the latest firmware through the usual process and then dump that.

Then get UEFITOOL 0.21.5 from github (<< must be this specific version), and open the latest .BIO file that you just flashed to your board.

In the .BIO is a compressed section with the same GUID as in the binary dump that contains the DXEs you need in accessible form.

You can transplant this into your dump and happily modify whatever you want! Take a look at the attached screenshot to see what i mean (its the latest .BIO file from Intel with the relevant section expanded).

uefitool 21.png

@simhfc
You should try to end the OS installation process with only the mSATA SSD connected while in UEFI mode to let the BIOS write the correct VAR within it’s own storage.
Might not work, but, I would give a try if you are trying to install the OS on it.
If not empty, on the corner of your mSATA PCB there an MXIC MX 25L4006E M2I-12G by dumping the content I could try to insert that option rom directly on the board BIOS to get it loaded before the booting process end.


@IntelModder
yep that’s how you do it, sort of :stuck_out_tongue:
Some other steep are required to make it bootable when edited like the A B files provided here.

@simhfc - thanks for that tool, interesting I’ve never ran into it before, or maybe I have long ago and forgot it’s name (I’ll have to dig through my storage later and see if I already had a copy or not)
You linked 0.44 and 7 Alpha .01, do you also have 7.0? Never mind, tested both, and yes on XP, they open, but same as Win7, once you choose the BIOS file it crashes.
I only tested on your dump, I would not use .BIO file so I did not test this (Initially), plus it does not contain the section you are after anyway. And if you program that in you’ll loose your board specifics, and you can’t flash mod .BIO file so pointless to modify
I checked and the main section we want to mod, crashes it too, same as your dumped BIOS. The reason the stock .BIO file opens is because it does not contain this section.

Since you already installed to this disk in NON-UEFI mode, this confirms the BIOS and board are capable of using this disk on that port, you may need to change option rom settings in the BIOS (Aside from UEFI Boot) before UEFI Boot will work (Such as but maybe not named exactly, Legacy orom / UEFI orom - load first one or the other etc)
I can expand more on those settings names, once I can parse the BIOS properly.

@IntelModder - thanks for the tip!! I can use that (Most likely!) or the tool he linked above then, and now do the NVME Mod to his actual dumped BIOS - I would never use .BIO file for this. Why is this parsing ability not carried forward into version 26, or at least into all the NE Alpha versions?
Never mind, this does not work either Can’t insert NVME Module in volume on top or bottom, planned to do that and then extract volume and replace (Which is scary though, would never do unless user had programmer in hand and ready), but no dice

However, later when I have more time, I may be able to find the BIOS settings and either show him which I meant for boot option rom settings, or send him a few BIOS with those adjusted different ways (that’s probably what noInk did though)

@noInk - he posted full BIOS dump already at post #15, if you can insert NVME that would be great! He also said he can boot to this NVME in legacy mode and install OS and all is fine that way too, except then he cannot connect his two SATA drives.

@Lost_N_BIOS

The marvell 88SE9170 came out as SATA I/O controller.
I’ve already added the required DXE to A and B.
A and B have NVME support already.

Anyway ending the OS installation process with only the device in question connected will let us know more.
… AND yes, the graphical manager from the BIOS will not be able to list on the menu the NVME device name if present, yet the UEFI boot process will work once set since the VSS store get the path from other route.

Also, cannot he just RAID the SATA drive?

Thanks @noInk - he said even with stock BIOS, and only this NVME device, he can install the OS and boot to it fine (in legacy mode), but then SATA ports are non-functional. So this says to me no NVME mod needed, correct?
This is why I was looking more into what is set for the option rom load (legacy, UEFI, both etc), but I guess that wouldn’t disable SATA ports when other device connected and his manual does not mention some SATA will be lost if using xx device
I see UEFI Boot Enable or Disable only (So UEFI or Legacy). Sadly, none of the options I hoped to see are there, such as which option roms to load first or which to load/not load etc.

Either if you get UEFI Working or not, or he just uses legacy mode which we know works already on stock BIOS (He called it “BIOS Mode”, maybe BIOS name for legacy mode), he may just need to figure out how to get all devices working/installed correctly.
If NVME BIOS Mod, certain method needed to install OS, if legacy mode used nothing special needed. If UEFI mode used, NVME Mod or not, certain install methods must be used as you mentioned, GPT as source install partition and GPT as target partition too.

Wow~ Look at all the reinforcement here~ GREAT! I really appreciate all of you!

@IntelModder
Hi IntelModder! Good to see you join~ Thank you for sharing your own detailed experience, literally I understand what you were saying, as you know, I am inexperienced in modding an Intel ROM file, and not that familiar with NVME boot and Option ROM either.
When I saw CodeRush was introducing UEFITool and comparing with BIOS Patcher 7 on the Russian site “www.rom.by” back at the end of 2013, I realized that I might need some old version tools to open the dumped ROM file, before I try you shared the exact working version here. Aha! thank you for the direction~ :slight_smile:

@noInk
I’m still reading other threads as we interacting here, as you said, I’ve read about the guiding thread summarized by Fernando, it says “Most important: Unplug all storage disk drives except the NVMe supporting SSD.”, all other fixed disk drives except the SSD were disconnected during my test, um… I guess my luck was just not enough.
It’s my fault for not providing the Marvell 88SE9170 dumped ROM file along with the board ROM file in the first place, and I attached it now, I hope this increases my luck.
Added* RAID feature is not available on my board.

@Lost_N_BIOS
First, here is my late congratulation on being a Moderator, well, I knew about it just now after reading Fernando’s retiring message.
I mentioned the tool “BIOS Patcher” since it maybe helps with some structure explore, I knew it’s not possible to flash any modded .BIO file as you said before and I’ve read about it for many times in previous Intel threads.
The v0.44 is an actual BIOS Patcher 7 alpha version, please scroll down for developer apple_rom’s comment to this thread: EFI unpacker, and… 9 months later, apple_rom released another BP7.alpha.01(my 2nd link), I’ve compared those 2 files before posting, the latter one is not duplicated.
SSD is not booting natively either on Legacy or UEFI mode, I’m only able to boot the SSD via chainload on Legacy mode(with all other fixed disk drives disconnected), I am not sure about the specific causes based on my current level of knowledge.

Lenovo_SSD_Marvell_88SE9170(on MX25L4006E).rar (20.8 KB)

Thanks @simhfc - and thank you for clarifying how you can and cannot boot again for me on the stock BIOS. Hopefully your comments there and post one will help noInk maybe figure out why those SATA drives get dropped if using legacy mode and this disk via chainloading (I have no clue about any of that)
Also, thanks for the info and clarification on the BIOS Patcher app, I later compared in hex and did see those are different files even though the help/about gives exact same version info and build times etc.

@Lost_N_BIOS
Sorry for my late response, I wish I could reply earlier. :stuck_out_tongue:

@Lost_N_BIOS @noInk
For now, the SSD could not boot natively no matter what, I’ll try to describe the situation precisely: (SSD is inseted in the onboard mini PCIe slot and listed as boot device in BIOS boot order menu, all other fixed disk drives are disconnected.)


On Legacy mode(BIOS option: UEFI boot - Disabled)

Windows setup detects the SSD, files copied normally, however after the 1st restart, the SSD is not booting and message on the screen says “No boot device has been detected, please press any key to reboot!”, there is no new boot entry like “Windows Boot Manager” in boot order list(which is normal sometimes), choosing SSD boot entry manually or unplug USB drive makes no difference.

So I have to chainload it with 3rd party boot managers(e.g. Grub2/Clover/DUET), take Grub2(on USB drive) for example, when entering “LS” command in Grub2, the SSD is listed normally, then I could chainload Windows and finish the Windows setup procedure.

The SSD becomes not listed in Gurb2 after connecting any fixed disk drives with onboard SATA ports, which makes no more chainload even on Legacy mode.


On UEFI mode(BIOS option: UEFI boot - Enabled)

Windows setup detects the SSD, files copied normally, however after the 1st restart, the SSD is not booting and message on the screen says “No boot device has been detected, please press any key to reboot!”, there is no new boot entry like “Windows Boot Manager” in boot order list(which is normal sometimes), choosing SSD boot entry manually or unplug USB drive makes no difference.

When entering “LS” command in Grub2, the SSD is not listed, therefore chainload Windows is not possible.


Added*
Windows setup always detects SSD normally on both boot modes, and it always marks SSD as Disk0 even with other fixed disk drives connected with onboard SATA ports.

Added*
P.S. The cause of Grub2’s different performance, could be Grub2 load different set of driver modules upon different boot mode, which is not the key point in this case.

Thanks for clarification again, so I’ve misunderstood the whole time, up until just now! So you cannot boot to windows, no matter what, even in legacy mode with other SATA devices disconnected or dropped due to lost, even with chainloader method?

I assume noInk will be able to tell you what to do next. With NVME Mod done, BIOS A/B he made, you need to install a certain way exactly, or it will fail similar to above, this does not involve any grub or chainloading etc.
Please see this guide and follow all steps exactly in the “What should I do” section at step #4 - [Guide] How to get full NVMe support for all Systems with an AMI UEFI BIOS
That can be done in UEFI Mode with GPT partitioned source disk (ie put windows install source onto a GPT Partition on USB), install to RAW disk or pre-partitioned GPT disk
Or, in legacy mode with Windows install files on a MBR partition USB, install to MBR Partitioned disk

@Lost_N_BIOS
Ah… not quite misunderstood. :slight_smile:
Here is the summary:

1
2
3
 
                                                         Legacy mode         UEFI mode
No other fixed disk drives connected to SATA ports Chainload only Not booting
Any other fixed disk drives connected to SATA ports Not booting Not booting
 

I saw you have told somebody else to follow those steps exactly in previous threads, also you and @noInk both emphasized again in this thread, so I've double checked to ensure not missing any of them when I was testing noInk's files last time. :)

@simhfc

Try to flash this file.
The Marvell mSATA option ROM you linked on your previous post is embedded.
Might not boot, no real way to test on mine side, if so, restore your working backup.
Lemme know, but, that’s it.

@Lost_N_BIOS
With the NVME DXE (A and B) bioses all he need to do is attach a NVME physical module somewhere to get it working.
Windows 10 will provide the software (driver) and accomplish everything needed to make it bootable.
On the mSATA drive, dunno, he might need to provide the compatible F4 driver manually.
Point is; I m quite sure the Lenovo SSD on the first page is just another mSATA device.

@noInk
Thank you for the modded ROM file~
Tested by following those steps strictly with fresh Windows setup, the same thing happened again, not booting…

You are correct about the SSD interface, I checked both reports from HWiNFO64 and AIDA64, it says “Drive Controller: Serial ATA 6Gb/s @ 6Gb/s” in HWiNFO64 and “Device Type SATA-III” in AIDA64, the Marvell 88SE9170 acts as a SATA controller on PCIe lane, so the SSD would get recognized by PCIe interface.

Another proposal, Is it possible to make the 9170 SATA controller co-exist with the onboard SATA controller? It seems if the onboard one is active, it replaces 9170 in booting, I’d prefer an easier way since either one would be enough for me. Thank you!

@simhfc

Nope, without the board and the time I would not able to.
For NVME support use either A or B on spare parts.
About the mSATA you can try other compatible/updated Marvell ROM by manually editing the binary @ offset 20000 and flashing the whole back to the MXIC MX 25L4006E M2I-12G.
Remember to use either A B or C or your deafult BIOS, the last image A_MRV "overwrite" (technically it just write it first) in the memory the ROM present within the Lenovo PCB.
GL!

@noInk
Thank you noInk for modding files & tips! I saw the codes start from that offset.

@noInk @IntelModder @Lost_N_BIOS

Today I’ve just known that Marvell has firmware files regarding 2 modes(BIOS and UEFI) for their controllers including 9170, the one that I’ve dumped is a BIOS one, same as this one, and I’ve requested UEFI firmware for testing.

Before testing the coming firmware, I’d like to practice UEFITOOL v0.21.5 as IntelModder discussed, there is only one GUID entry in the .BIO file which is expandable, when I extracted it and try to “transplant” it into my dumped file, I found it’s over-sized(file size in .BIO is 706505, same GUID file in dumped file is 671531), by comparing the file modded by noInk, I see one module within the compressed section has been removed, which I did not succeed even by a simple searching around the forum. :stuck_out_tongue:

So, would you mind sharing the experience on how to successfully reduce the size and “transplant” that compressed section with UEFITOOL v0.21.5? Thanks~

@simhfc

This is going a bit beyond where i got to on my motherboard. In my case i was able to transplant directly the compressed volume into my dumped rom (my bios chip was 8MB and had enough room for it).

In your case, the compressed volume can’t be directly transplanted because its uncompressed total size is greater than the total size of the dumped rom. If you’re hardware oriented, you could replace the bios chip with something larger and rebuild your bios. But that’s getting a bit out there and doesn’t really solve your problem.

Attached to this post you can find an example rom i knocked up by transplanting the compressed volume using uefitool 0.21.5 and a hex editor. I was unable to modify the transplanted volume by adding an NVME module the way that @noInk did (this one needs opened in uefitool 0.21.5).

I’ve also included two different ways of incorporating an NVME module into the volume for you to look at. In the first one the uncompressed volume with the DXEs is expanded (2808kb) by writing the NVME module at the end of the file with a hex editor and changing the volume size, block map size, and checksum in the vol header.

In the second (2788kb - same size as the original), i’ve removed two DXEs with uefitool, saved, then opened mmtool 4.50.0.23 and added back those two removed DXEs with the option ‘compressed’ checked. I’ve then added the NVME module to the volume with mmtool (these two files can be opened in any uefitool version).

As long as you have a hardware programmer, you can get creative with what you do. Anything beyond this is beyond my abilities.

Good luck!

d2700mud.zip (2.63 MB)

@IntelModder

Thank you IntelModder for the detailed sharing, I’ll get some practice soon, have a great weekend!

@simhfc
The very problem is the bios you dumped isn’t the full bios which couldn’t be flash by the programmer.I think you could dumped it by pin-mod or programmer.

this is an old topic but i have bought d2700mud for a small project but intel dropped support for the board and does not allow to download bios files anymore. Anybody have the latest original bios file?