[Success!] NVMe + Bifurc. Support for Fujitsu D3348-A1

UPDATE: See below for solution.

Hello,

I would very much appreciate a BIOS mod for the Fujitsu D3348-A1 (from the Celsius M740n, serial number YLXRxxxxxx) which adds NVMe boot support, and ideally also makes available other config options such as PCIe bifurcation.

Can dump current BIOS if link to dumper and instructions are provided.

Thanks in advance!

Off topic question: How many different PC systems with BIOS problems do you have?

1 Like

I had one, this one. I ignored it for years because I could work around it with rEFInd.

Now I have two, so I figured I might as well ask.

Which sort of BIOS has your Fujitsu mainboard? Is it an AMI type UEFI one or something else?
Please give us a link to the BIOS.

Hello,

It looks like Aptio V, core version 5.0.0.9, UEFI 2.3, PI 1.2. Fujitsu’s version number is “R1.15.0 for D3348-A13”.

Fujitsu no longer offers the BIOS online. Is there a way to dump the BIOS from within Linux? If so, let me know how and I’ll get you a dump.

This comment might be helpful.

Thanks in advance!

Hello,

unfortunately I don’t know a way to dump the BIOS from Linux (I doubt that it is possible), but there is a way from Windows with Fujitsu’s DeskView Software:

I found your Post while searching again to no avail for a download source for the D3348-A1x BIOS which was deleted by Fujitsu and saw that your post is very recent. You seem to have the latest available BIOS for the A1 variant installed on your board. Please take the time to dump your BIOS from a throwaway Windows install and upload it if you can spare the time! This might be the only realistic chance to retrieve it. DeskView has a command line option to backup your current BIOS. I can not check the exact command right now but I will update this post later.

For the D3348-A2, I found a mod BIOS with all menus and ReBar enabled in Fujitsu D3348-A23 Bios mod, menu unlock but the BIOS for the A2 variant is not compatible to the A1 variant.

For the D3348-B1 and D3348-B2 (retail versions of the board with standard ATX power connectors), the downloads are still available, but not compatible to the A variants.

1 Like

You seem to have the latest available BIOS for the A1 variant installed on your board. Please take the time to dump your BIOS from a throwaway Windows install and upload it if you can spare the time!

Done. See below for update.

I have no idea what you mean. Which of my work is “magic”?

@Fernando I was mistaken; apologies for the noise.

@Sweet_Kitten Might you be able to help those of us with this motherboard?

Could you try this? I don’t know how to install it on the motherboard. Or it would be too much effort for me.
D3348-A1_1.15.0_NVMe_M.2_BIOS.rar (3.7 MB)

Thanks for the file! Could you list the changes you made to the stock BIOS, as well as how you achieved them?

Did you also unlock all the menus?

1 Like

Were you able to apply the file I prepared and gave you to your motherboard? If so, you will see your NVMe M.2 SSD drive in the BIOS, and you can install Windows in GPT format or Linux and enjoy.

Since installing a modified BIOS can be quite risky, I would really appreciate it if you could let me know what changes you made, and how you made them.

I’m not willing to try it otherwise.

Did you also unlock all the BIOS menus?

Thanks again!

Yes, you’re right.
Then it wouldn’t be right to expect magic to happen here, would it?
This place strives to answer users’ requests as honestly as possible and to help them.
Of course, I’m not an administrator, but you requested help, and I responded to your request. Of course, whether you use the files or not is up to you.
In order to make progress on opening the hidden menus you mentioned, I believe I have the right to know whether you have applied the file I gave you first, and only then can I proceed with the other actions you requested.
Otherwise, if my work doesn’t yield any return, it will be a waste of my time.
I hope you understand.

I’m happy to test it and provide feedback on the sole condition of having some idea of what changes were made to it and how. It would be great to unlock these boxes.

Update: @Sweet_Kitten was generous enough to spend several hours with me figuring out a way to make this happen, and we were successful. As a bonus, no hardware flasher is required; the machine’s case shouldn’t even have to be opened.

Update 2: :warning: DANGER :warning: Setting slot bifurcation to Auto may result in an unbootable machine, and this motherboard does not have a Clear CMOS jumper (and no, Password Skip ain’t it). If you follow these instructions, make absolutely sure you NEVER EVER set slot bifurcation to Auto!!!

NOTE: As part of this process, your machine’s serial number will be erased and the UUID will be set to 03000200-0400-0500-0006-000700080009. (The MAC address of your machine’s onboard Ethernet should not change.) It is unknown whether this change of UUID may cause issues with software which uses the UUID to uniquely identify your specific machine, such as Windows activation (but, if so, this might help after the fact). If this is an issue for you, edit the D3341_A1_1.15_NVMe_UNLOCKED.bin file (from the second zip file below) in a tool such as UEFITool (also available as a Flatpak) to copy the personalization information out of bios.bin (obtained in step 3 of phase 2 below) and into D3341_A1_1.15_NVMe_UNLOCKED.binbefore flashing it to the board. The volumes you will want to copy are the ones with GUID FEA4AD59-2BEE-4392-9064-415D38B46389 and EDD43C8C-E92C-48A4-BCC3-A4911B9339C3.

This process will be much easier if you have a second computer to manipulate the flash drive.

Prepare a USB flash drive: format it as FAT32 (all data on it will be lost). Unpack this ZIP file into the root directory of that flash drive:

D3348-A1_FLASH_UNLOCK.zip (521.5 KB)

  1. Remove all bootable media from the machine (USB drives, SATA, everything)
  2. Insert the USB flash drive with the flash unlocker into the machine
  3. Spam F12 until the boot menu appears; choose to boot from the USB
  4. Some output will be generated. If it looks like it was successful, REMOVE THE FLASH DRIVE FIRST then type exit and press Enter (if you get an error, let us know here BEFORE PROCEEDING FURTHER)
  5. You should end up in BIOS setup, and there should be a new IntelRCSetup menu at the top
  6. Go to IntelRCSetup - PCH Configuration - Security Configuration
  7. Set both BIOS Lock and Host Flash Lock-Down to Disabled.
  8. ESC key to get back to the main menu, save changes, but don’t reboot yet.

Delete everything on the flash drive, or reformat it as FAT32. Unpack this file into the root directory of the now-empty USB flash drive:

D3341_A1_1.15_NVMe_UNLOCKED.zip (4.3 MB)

  1. Insert the USB flash drive back into the machine
  2. Reboot, then spam F12 until the boot menu appears; choose to boot from the USB
  3. At this point, we’re going to read the BIOS that’s already on the machine; type fpt.efi -d bios.bin -bios then press Enter
  4. To test that we can write the BIOS after unlocking it above, type fpt.efi -f bios.bin -bios -rewrite then press Enter; this will rewrite the BIOS with the image you just took from it. If you get any error, STOP AND LET US KNOW HERE BEFORE PROCEEDING.
  5. ONLY IF THE PREVIOUS STEP WAS SUCCESSFUL, type fpt.efi -f D3341_A1_1.15_NVMe_UNLOCKED.bin -bios then press Enter (it will go more slowly if you add -rewrite, but nothing will be harmed)
  6. IF FLASHING WAS SUCCESSFUL (and it should be, because you just confirmed that you can flash in step 4), remove the flash drive, cross your fingers, and hold the power button until the machine powers off.
  7. Power the machine back on and spam F2 to get into BIOS setup.
  8. ???
  9. Profit!

In the event you’re not old enough to fully appreciate steps 8 and 9, this may help.

At this point, you should re-enable the flash locks:

  1. IntelRCSetup menu
  2. PCH Configuration
  3. Security Configuration
  4. Set both BIOS Lock and Host Flash Lock-Down to Enabled

For me they were already relocked after flashing (except the first one, GPIO Lockdown, which is Disabled by default, and I recommend not changing it).

If you are presented with a password prompt: move the jumper from the default position (across pins 20 and 22, as marked in the diagram below) to being across pins 18 and 20 instead, then reboot, clear the password in the menu by setting a blank password, then save changes and put the jumper back across pins 20 and 22.

At this point, you should be able to configure PCIe bifurcation (IntelRCSetup - IIO Configuration - IIO0 Configuration). Beware that some slots are already bifurcated, which I suspect is why there are some 4-lane slots on the board. I recommend not touching those, and instead enabling bifurcation only on the x16 slots if needed.

With this patched BIOS, your machine can now boot from NVMe natively without the use of shims/workarounds (such as the excellent rEFInd). In addition, this was the last BIOS released by Fujitsu for this board, so there should never be any further updates necessary (although, if they do ever release another update beyond 1.15, you should not apply it if you rely on this patch!).

If any clarification is needed, or if the steps prove to be not quite clear or correct enough, please let me know.

Thanks again to @Sweet_Kitten for their help, without which none of this would have been possible!

Thanks, I might test this if I get the time.

1 Like

@fsck-usernames

Thank you very much for all your efforts, this is far more than I could have hoped for! Today I finally had the time to try this, but unfortunately step 4 of the flash unlock fails.

I assume this is because my mainboard still has the UEFI version R1.5.0 flashed instead of the latest R1.15.0 (unmodified) and therefore the pattern for which the tool searches for patching is not found.

Earlier you uploaded the original unmodified UEFI R1.15.0 for the A1 version of the UEFI but this was with the file ending .UPD and a file size of 16 MB. After the backup of my current UEFI with the Deskflash tool in Windows (command: dskflash.exe /AR) I get a file “D3348.A1.bup” which contains the currently flashed original UEFI R1.5.0 and has a size of only 3,9 MB.

When I try to flash the file D3348.A1_R1.15.0.UPD which you provided with the command “dskflash.exe /UPD /O=D3348.A1_R1.15.0.UPD I get “Error: invalid or missing file(s)”, which is expected because it seems that the file format is not correct for use with the Deskflash tool.
How did you obtain the file “D3348.A1_R1.15.0.UPD” and how am I supposed to flash it? I assume that if I would be able to first flash the original UEFI R1.15.0, then the steps for flashing the modified UEFI would also work.

Edit:
I probably found the mistake: The .bup file which is created by the Deskflash tool is an archive that contains three files:

  • BupInfo.xml
  • C3348.A1.nvu (seem to be NVRAM settings)
  • D3348.A1.UPD (the actual UEFI file)

You only provided the .UPD file from this archive. I extracted the .bup file for UEFI version R1.5.0 that I created with the tool, replaced the file D3348.A1.UPD with yours and edited the item in the xml to reflect version R1.15.0. Then I zipped the three files, renamed file extension to .bup and fed it to Deskflash, but it did not accept it (“Error: invalid or missing file(s)”). So it seems that I need the complete .bup file for R1.15.0, not only the .UPD file that it contains.

Update:
I was able to flash the UEFI to 1.15 by extracting the .bup backup file created with Deskflash, only replacing the .UPD file with the one for version R1.15.0 (and renaming it to D3348.A1.UPD), NOT editing the xml file, repacking it as .zip and changing file extension back to .bup.

After that I was able to also flash the modded BIOS, but only with removing every SATA and USB device and the CSM settings in this picture:

Flashing the modded BIOS might have worked also on the older UEFI version with these settings.

Thank you for the update! If anyone else has trouble with this, reply here and I’ll see what I can do to help.