[Help request] Unhiding SR-IOV menu in a MSI X470 Carbon Gaming Pro Carbon (MS-7B78)

Hey

I bought this board to replace my old B350 as a home server.
The board had a bricked bios so I got it for cheap and resurrected it using an 1.8v adapter and a hardware flasher.
I can’t seem to find SR-IOV anywhere in the menu so I started poking around with the guides I found here.

Between each try I’ve flashed it using the onboard M-FLASH util. There are seemingly no signature checks.
I’ve confirmed it accepts the new bios by fiddling with the boot logo and seeing it change.
The motherboard is running a Ryzen 1700 with a single 16GB stick.

I’ve been working with bios version 2E, which can be had here: download.msi.com/bos_exe/mb/7B78v2E.zip

What I’ve done so far:
- Using AMIBCP I’ve changed a WHOLE lot of menu items to “USER” accessible. This didn’t do anything. (tried twice with different settings)
- Tried using IFR extractor with no luck, it yields a mostly empty file with only the language entries.
- Poked around with UEFITool and tried patching it, but the result is SR-IOV is still not shown.
- Tried to decode the suppressif manually using UEFIBiosEditor and posts on this forum as a reference.

My progress so far:
Starting with UEFI Bios Editor I looked at the setup VFR to find some search strings (See screenshot).
I found “SR-IOV” just below “Above 4G memory decoding”. The option “Above 4G…” is visible in my bios.

I extracted the setup using UEFI tool and I believe I found both options. Suppressifs are at offsets 5C5FD and 5CFB0:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
 
// Above 4G memory
0A 82 // suppressif
45 8A 01 00 00 00 00 00 00 00 // 64bit 1?
45 0A 00 00 00 00 00 00 00 00 // 64bit 0?
2F 02 // equals
29 02 // endif
19 82 // grayoutif
12 06 11 03 01 00 // questionid 0x0311 equals 1
05 91 96 04 // one of?
97 04 08 02 01 00 D3 01 10 10 00 01 00 09 07 04 00 00 00 00 09 07 03 00 00 00 01 5B 06 00 00 00 00 5B 06 01 00 00 00 29 02 29 02 29 02
 
// SR-IOV
0A 82 // suppressif
45 8A 01 00 00 00 00 00 00 00 // 64bit 1?
45 0A 00 00 00 00 00 00 00 00 // 64bit 0?
2F 02 // equals
29 02 // endif
19 82 // grayoutif
12 06 11 03 01 00 // questionid 0x0311 equals 1
05 91 98 04 // one of prompt?
99 04 09 02 01 00 D4 01 10 10 00 01 00 09 07 04 00 00 00 00 09 07 03 00 00 00 01 5B 06 00 00 00 00 5B 06 01 00 00 00 29 02 29 02 29 02
 
 


Looking at the suppressif and grayoutif I don't see any difference.
Why is the SR-IOV not shown then?

Thanks in advance


Edit by Fernando: Thread title customized

@ ripdajacker
Hi~freind ,i have some questions for this mainboard.

1. How currently kind of bios interface it is?
Is six button or simple interface??

2. If it is a simple interface currently ,please capture a screenshot of Advanced > PCI Subsystem Settings

Thanks.

Hey

1) It’s a simple interface
2) I won’t be able to reboot the machine until some time tonight. I found a screenshot on chiphell.com from the next version of the bios which looks the same except for REBAR. Attached.

143348yi8p1icccdi1pqqh.jpg

Ok~i understand. Now try my mod and responds the result.
After flashing the mod ,check what’s differences under Advanced > PCI Subsystem Settings and under Security tab.

I flashed it just now and it seems to have unlocked all the nice items, thanks!

Just for reference:

1) What did you do?
2) Is it possible to add the AMD CBS menu like in ASUS boards?

Best regards

  1. I still can’t see the real result ,could you capture some screenshots? Swapping sub-items and tabs is what i did.
    *.PCI Subsystem Settings to PCI Subsystem Settings ,Security tab to Advanced tab.

    2. I don’t know ,because i rarely modify bios for desktop motherboard , i’m not sure if it’s able link to amd cbs menu in this bios.
    The reason why i help you out to modify this bios is that i found out the modified file can be reflash via m-flash and you also own a programmer ,so i don’t need to consider the problem of write bios. So i tried to edit your bios.

    I believe most features from amd cbs menu you could find under Overclocking > Advanced CPU Configuration or >CPU Features .

Hey

Screenshots attached.

Screenshot_20210414_151535.jpg

Screenshot_20210414_151658.jpg

Screenshot_20210414_151710.jpg

Screenshot_20210414_151717.jpg

Screenshot_20210414_151728.jpg

Screenshot_20210414_151745.jpg

Screenshot_20210414_151944.jpg

Ok~thanks.

@genius239 Thank you very much for the mods.

SR-IOV needs PCI-E ARI which is under AMD CBS.

I took your work and started fiddling in a hex editor.
I looked into some mods 1usmus did for MSI X370 boards and repeated the process.

There is a blacklist in AMITSE that blocks AMD CBS and AMD PBS.
I nulled these two and the menus showed up!

The file can be had here: https://katfile.com/lv4xn1xlengu/E7B78AMS.2E0.zip.html


Edit: Despite enabling both PCIE ARI and SR-IOV I still can’t get my NIC to enable virtual functions. It may be time for another motherboard. It was a nice learning process :slight_smile:

@ripdajacker
Are they appear under old Advanced tab or new Advanced tab???

If in asus’s laptop ,you still need edit cbs or pbs module ,but it seems that it didn’t need on msi motherboard ,so it’s easier.
I’m think about how edit cbs menu on this motherboard ,it need spent much time ,so i don’t reply to you.

You’re smart enough in this forum!! great:)

@genius239 AMD CBS and PBS are in both advanced tabs.
They are in the bottom with whitespace before in the original and in the top of your modded one.

Thanks for the kind words.

MSI (at least on this desktop board) just hide the AMD CBS and PBS. All the menus seem to be enabled, I am comparing with a different ASUS board.

@ripdajacker
Ok! i understand !
Thanks for your response.
I would suggest you edit bios again ,but please only do replace amitse. Because my special way to swapped “PCI Subsystem Settings” is not a good method ,as they’re exist in different Advanced tab ,so when you return to previous level ,you will go into another Advanced tab not original.


Good luck~

Hi,

I hope it’s OK if I revive this thread…

I’m trying to enable SR-IOV on an MSI X470 Gaming Pro motherboard, which appears to be very similar to the MSI X470 Carbon Gaming Pro discussed here. I’ve updated the BIOS to the latest official version, but unfortunately, the option to enable SR-IOV is still hidden.

I would really appreciate some pointers to get me on my way modding the BIOS. @ripdajacker @genius239 are you both still active on this forum? Did you get it to work in the end?

Thanks very much!!

<bump>

Meanwhile I’ve tried a few things on my own. Played around with AMIBCP, UEFITool and IFR Extractor. I’ve basically tried the same things on my BIOS that @ripdajacker described trying in the opening post, with just as little success. The SR-IOV option remains hidden, and I don’t see any way to change that. I have no idea how to swap sub-items and tabs like @genius239 did…

To be honest, if it is difficult to modify the BIOS, you can use Setup_ver. I used Setup_ver to enable SR-IOV on MSI MEG X570 ACE, although now MIS should support this function on AMD motherboards…
Unless the X470 itself is faulty.

Sorry for the necro thread reply, I forgot all about this post.

The SR-IOV does in fact work, the issues I had after enabling it were software and Linux kernel config issues. After some fiddling my Dell-branded Intel i350 card had it’s VFs show up.

To reiterate:

The bios I posted April 2021 did in fact enable SR-IOV in the bios.

It was exactly the same nulling of what I assume is a blacklist (as 1usmus made back in the day for X370 boards).
This was in the AMITSE part of the BIOS.

On the other X470 Gaming Pro the offsets in the menu may be different, but I can’t imagine it’s that much difference.