[request] IBM iDataPlex dx360 M4 - a challenge to get the PCIe bifurcation and advanced menu

Hello everyone,

This is a link to the bios file

Can not post a link to the bios file but a google search dataplex-dx360-m4-uefi-flash-update-v270-ibm-system-x - first result.

I have successfully modded Lenovo UEFIs before but this BIOS defeated me. Hope for community help from someone more knowledgeable than I am.
I’ll list my discoveries here as a full writeup, who knows what might be helpful.

The ultimate goal is to enable PCIe Bifurcation on BOTH PCIe slots. (Should be available via advanced menu, but I was unable to get access)

Let’s start. How did I get the bios SCAP file.

The BIOS extraction flow:
* Download the ibm_fw_uefi_tde168b-2.70_anyos_32-64.uxz file from IBM
* unzip it (uxz is just a zip archive)
* binwalk the ibm_fw_uefi_tde168b-2.70_anyos_32-64.upd file from the zip to extract the compressed file (nothing fancy - binwalk -e does the job)
* unpack the tde168bus.tar.gz

UEFITool and IFRExtract
* Once extracted I opened CAPSULE_PLATFORM_A.scap with UEFITool
* A quick search for x8x8 and x4x4 points to Platform file (GUID ABBCE13D-E25A-4D9F-A1F9-2F7710786892)
* Unpacking it and running through IFRExtract didn’t work - Unknown protocol
* But opening in a hex editor shows some interesting findings
** it seems there is an entry point for the advanced menu at 0x13E4A
** bifurcation-related settings at 0x8769
* as both advanced menu and bifurcation settings are present it should be possible to enter them

* While upd file does not contain Setup volume, in efivars Setup is present
* Not sure if BIOS reflash is possible without IMM2 blocking it
* Someone on the internet mentioned that some IBM cards enable PCIe native bifurcation, but no idea which cards and if they use a multiplexer
* AMIBCP doesn’t seem to pick up this bios
* The machine is running 2x Xeon E5 2670

Thanks a lot for any help or pointers with this one!


Update 1 (2021/07/20):
* After reading a topic “How to add nvme support for IBM X3650 M4 BIOS” ordered a SOIC16 clip. Will be getting a full BIOS image off the chip directly if needed for future experiments. Does anyone know a software way of dumping a BIOS off this IBM machine?

Hi. Setup Utility of your BIOS is the BdsDxe module. There are no bifurcation settings, so it can’t be enabled by a simple switch.

IFR.txt (71.3 KB)

Thank you for a quick response.

What is Platform then? It seems there are lots of strings there referencing different advanced settings. It seems to be a part of software that IBM Techs access with a USB key.

p.s. already spent a weekend+ digging through efi debug and hex analysis of platform module, can go the hard way :slight_smile: