GIGABYTE MZ31-AR0 REV 1.1 with Epyc Rome / Milan

Notice: Page may contain affiliate links for which we may earn a small commission through services like Amazon Affiliates or Skimlinks.

Zhang

Member
Sep 18, 2018
52
48
18
Do you happen to have rome BIOS that also works on ES epycs? , I couldn't find BIOS with old agesa versions.
I received several messages recently about the RomeES BIOS I used for MZ31-AR0. So I uploaded it here: MZ31-AR0 BIOS - Google Drive

The version I provided here is R09_F18, with AGESA 1.0.0.2, which I believe is the last version that supports RomeES. The next version, R12_F18 updated AGESA to 1.0.0.4.

I also describe the trick I used to bypass the BMC signature check here, without using a programmer. The exploit is based on SSH access to the BMC. First, confirm that you can ssh into the BMC:

ssh sysadmin@your_bmc_IP
password: superuser

All code below will be run in your BMC shell, not your PC.

1. Copy the modded BIOS (raw image without RBU tail) to the /tmp folder on BMC via ssh. I just upload it into a webserver and then use wget to download it to BMC, but you may also use SCP or other methods.

Bash:
cd /tmp
wget http://xxx/RomeES_BIOS.rom
2. Start a BIOS update from IPMI HTTP interface. Upload an original RBU image (original_image.RBU) that can pass the signature check. Click "Proceed to flash" to upload the BIOS. But do not start flash ("Flash BIOS" button) after uploading.

3. In your BMC shell, run this command to stop the update from the web interface. This is an infinite loop, and leave this command running until step 5.

Bash:
while :; do killall -STOP bios_update; done

4. Click "Flash BIOS" button in web interface to start the actual flashing. However, because of the command in step 3, the update process will be immediately killed, however the SPI flash is currently unlocked and we can update its contents now.

5. In your BMC shell, first ctrl+c to exit the while loop in step 3. Then run this command (assuming you saved the BIOS as RomeES_BIOS.rom in the first step):

Bash:
/usr/local/bin/bios_update --skip-check-rbu --ipmi /tmp/RomeES_BIOS.rom
Note that I did this years ago, and I currently don't have a setup to test these instructions and the BIOS files anymore. If you encountered any problems, please reply and I will try my best to help:)
 

JUGS

Member
Nov 6, 2023
37
3
8
I received several messages recently about the RomeES BIOS I used for MZ31-AR0. So I uploaded it here: MZ31-AR0 BIOS - Google Drive

The version I provided here is R09_F18, with AGESA 1.0.0.2, which I believe is the last version that supports RomeES. The next version, R12_F18 updated AGESA to 1.0.0.4.

I also describe the trick I used to bypass the BMC signature check here, without using a programmer. The exploit is based on SSH access to the BMC. First, confirm that you can ssh into the BMC:

ssh sysadmin@your_bmc_IP
password: superuser

All code below will be run in your BMC shell, not your PC.

1. Copy the modded BIOS (raw image without RBU tail) to the /tmp folder on BMC via ssh. I just upload it into a webserver and then use wget to download it to BMC, but you may also use SCP or other methods.

Bash:
cd /tmp
wget http://xxx/RomeES_BIOS.rom
2. Start a BIOS update from IPMI HTTP interface. Upload an original RBU image (original_image.RBU) that can pass the signature check. Click "Proceed to flash" to upload the BIOS. But do not start flash ("Flash BIOS" button) after uploading.

3. In your BMC shell, run this command to stop the update from the web interface. This is an infinite loop, and leave this command running until step 5.

Bash:
while :; do killall -STOP bios_update; done

4. Click "Flash BIOS" button in web interface to start the actual flashing. However, because of the command in step 3, the update process will be immediately killed, however the SPI flash is currently unlocked and we can update its contents now.

5. In your BMC shell, first ctrl+c to exit the while loop in step 3. Then run this command (assuming you saved the BIOS as RomeES_BIOS.rom in the first step):

Bash:
/usr/local/bin/bios_update --skip-check-rbu --ipmi /tmp/RomeES_BIOS.rom
Note that I did this years ago, and I currently don't have a setup to test these instructions and the BIOS files anymore. If you encountered any problems, please reply and I will try my best to help:)
The BIOS file I shared seems to support my ES epyc and I was able to flash after removing the BIOS chip, it would not work with SOIC CLIPS. that is super helpful and might use that trick later.
I can confirm that I was able to make this board work with Rome ES Epyc, just needs some testing now.
 

zwillia121

New Member
Jul 11, 2024
1
0
1
How do you remove the RBU tail from the BIOs. I'm mostly interested in modding my rev1.1 board to use Rome CPUs in general so your modded should work for commercial CPUs too shouldn't it?

I received several messages recently about the RomeES BIOS I used for MZ31-AR0. So I uploaded it here: MZ31-AR0 BIOS - Google Drive

The version I provided here is R09_F18, with AGESA 1.0.0.2, which I believe is the last version that supports RomeES. The next version, R12_F18 updated AGESA to 1.0.0.4.

I also describe the trick I used to bypass the BMC signature check here, without using a programmer. The exploit is based on SSH access to the BMC. First, confirm that you can ssh into the BMC:

ssh sysadmin@your_bmc_IP
password: superuser

All code below will be run in your BMC shell, not your PC.

1. Copy the modded BIOS (raw image without RBU tail) to the /tmp folder on BMC via ssh. I just upload it into a webserver and then use wget to download it to BMC, but you may also use SCP or other methods.

Bash:
cd /tmp
wget http://xxx/RomeES_BIOS.rom
2. Start a BIOS update from IPMI HTTP interface. Upload an original RBU image (original_image.RBU) that can pass the signature check. Click "Proceed to flash" to upload the BIOS. But do not start flash ("Flash BIOS" button) after uploading.

3. In your BMC shell, run this command to stop the update from the web interface. This is an infinite loop, and leave this command running until step 5.

Bash:
while :; do killall -STOP bios_update; done

4. Click "Flash BIOS" button in web interface to start the actual flashing. However, because of the command in step 3, the update process will be immediately killed, however the SPI flash is currently unlocked and we can update its contents now.

5. In your BMC shell, first ctrl+c to exit the while loop in step 3. Then run this command (assuming you saved the BIOS as RomeES_BIOS.rom in the first step):

Bash:
/usr/local/bin/bios_update --skip-check-rbu --ipmi /tmp/RomeES_BIOS.rom
Note that I did this years ago, and I currently don't have a setup to test these instructions and the BIOS files anymore. If you encountered any problems, please reply and I will try my best to help:)
 

automobile

Active Member
May 16, 2017
132
30
28
45
server_mb_bios_MZ31-AR0_R34_F22
R34 = Rome
F22 = Naples
server_mb_bios_MZ31-AR0_M04_R32
R32 = Rome
M04 =Milan

you need RBU file:
i can mod a flash_F.rom or flash_R.rom to a RBU file. which do you need ?
check this
Haven't succeeded in my case. I have Milan (7763), At first I used your RBU file "M04", system said that flashed everything successfully (but before, when I tried to dump an old BIOS it said can't dump an old BIOS, I said - fine, it not necessary as I have a programmer's dump). So, M04 RBU flashed successfully as I said already, but after installing a CPU (7763) it doesn't boot. OK, then I flashed the chip with flash_M.rom via the programmer (FlashCatUSB) -> didn't work
bad sign always. time to swap the BIOS chip with a SMD socket.
mine BMC led lights up as well when I connect flashcatusb programmer to MXIC MX25L128 chip
... keeps showing old CPU 7282 and one stick of RAM eventhough I tried resetting BMC along with CMOS, I tried RBU Update and it doesnt work no matter which version I use...
I have the same behavior except it shows another old CPU (7501)
I was able to flash after removing the BIOS chip, it would not work with SOIC CLIPS. that is super helpful and might use that trick later.
I can confirm that I was able to make this board work with Rome ES Epyc, just needs some testing now.
So, if I want my board to work with Milan CPU I should REMOVE BIOS chip? But wtf, how does it work?!o_O
 
Last edited:

automobile

Active Member
May 16, 2017
132
30
28
45
if you have got full successfull verify of prev. flashing, no need to remove.
How can I know it was successful? The board said it was, but didn't POST with 7763. OK, then I flashed MXIC MX25L128 BIOS chip with a programmer, clip and flash_M.rom file. (I used flashcatusb with 8 pin clip to connect to MXIC MX25L128 BIOS chip - it successfully recognized the chip and flashed and verified flash_M.rom into). But still no POST. BMC shows old CPU (7501)
 

cb88

New Member
Jan 5, 2025
3
1
1
I have an MZ31-AR0 board with BMC version 2.94.0 and it doesn't seem to upgrade to the latest correctly. When I upload the .bin file of the latest fw 126121.bin it gets part way through the upload stops near 40-50% and then the the percent resets and it does this over and over every so often.

The firmware is AMI MegaRAC SP-X so it not the old old version of the BMC firmware, the password on it is not the serial number currently either (it matches the gigabyte bmc documentation of it being ADMIN ADMIN). I logged into the BMC shell and get a smashlite shell not bash as some others are referencing to.

I have an EYPC 7352 in the system now on the R20 bios. Any idea how I can get on the latest BMC firmware so I can upgrade, I'd also like to patch it for rebar since I have 2x MI60 in there? Also checked BIOS chip is 16M via dmidecode.

1736139611239.png
 
Last edited:

RolloZ170

Well-Known Member
Apr 24, 2016
7,643
2,397
113
I have an MZ31-AR0 board with BMC version 2.94.0 and it doesn't seem to upgrade to the latest correctly. When I upload the .bin file of the latest fw 126121.bin it gets part way through the upload stops near 40-50% and then the the percent resets and it does this over and over every so often.
rom.ima_enc is the correct file for remote update
 
Last edited:
  • Like
Reactions: etorix

cb88

New Member
Jan 5, 2025
3
1
1
I was able to upgrade the BMC and updated to the 2.x board latest BIOS 16M.rbu. For whatever reason when I tried the latest for the 3.x board it never posted.
1736220522326.png
 

automobile

Active Member
May 16, 2017
132
30
28
45
Can anyone, please, just upload a file for a programmer to flash this board (rev. 1) to a Rome BIOS?
UPD: Should I update the BMC (IPMI) to the latest (or whatever) version to update this board to support Rome CPU? Or I can just flash a BIOS via programmer and the BMC (IPMI) left intact? (I tried to flash flash_R.rom file via programmer, but no luck) mine BMC led lights up as well when I connect flashcatusb programmer to MXIC MX25L128 chip - if it matters... :rolleyes:
UPD: Flashed back to original (initial) BIOS from programmer's backup. Will install Naples CPU to check if everything is fine. So, how can I flash it via DOS to support Rome without soldering the MX25L128 chip?
UPD: Installed an old Naples CPU - the board successfully boots up! So, it's not a damaged BIOS chip issue.
Tried to update BIOS via a Win64 tool replacing "image.bin" file in SPI_UPD folder (32Mb) with flash_R.rom file (16 Mb) -> no luck, see the attached picture:

so, is there any way to extract Rome\Milan part of 32Mb BIOS, as I have 16 Mb chip?
 
Last edited:

cb88

New Member
Jan 5, 2025
3
1
1
Can anyone, please, just upload a file for a programmer to flash this board (rev. 1) to a Rome BIOS?
UPD: Should I update the BMC (IPMI) to the latest (or whatever) version to update this board to support Rome CPU? Or I can just flash a BIOS via programmer and the BMC (IPMI) left intact? (I tried to flash flash_R.rom file via programmer, but no luck) mine BMC led lights up as well when I connect flashcatusb programmer to MXIC MX25L128 chip - if it matters... :rolleyes:
UPD: Flashed back to original (initial) BIOS from programmer's backup. Will install Naples CPU to check if everything is fine. So, how can I flash it via DOS to support Rome without soldering the MX25L128 chip?
UPD: Installed an old Naples CPU - the board successfully boots up! So, it's not a damaged BIOS chip issue.
Tried to update BIOS via a Win64 tool replacing "image.bin" file in SPI_UPD folder (32Mb) with flash_R.rom file (16 Mb) -> no luck, see the attached picture:

so, is there any way to extract Rome\Milan part of 32Mb BIOS, as I have 16 Mb chip?

Just do exactly what I did... update the BMC first. Then the bios. As stated above the 16MB chip still supports 2 generations it just doesn't have a backup bios partition. The file you need for the BMC update is rom.ima_enc. Note your password may change but mine was still a variation of admin / password. I think before the update it was Admin / password etc... its documented in the BMC manual. For my board it was NOT the board serial number by your mileage may vary. Only after that upgrade your BIOS via the BMC... you don't need a flash tool at all as long as you can get into the BMC it is literally a secondary computer on there just for this purpose.
 
  • Like
Reactions: automobile

RolloZ170

Well-Known Member
Apr 24, 2016
7,643
2,397
113
As stated above the 16MB chip still supports 2 generations it just doesn't have a backup bios partition.
wrong, the BIOS includes two independent BIOS for each gen.
16mb = one gen
32mb two gens.

image.RBU (32mb M04_R32)
flash_M04.rbu (16mb)
flash_R32.rbu (16mb)

MZ31-AR0_M15 - Milan16M.rbu (16mb)
 
Last edited:
  • Like
Reactions: automobile

iliuxa007

New Member
Sep 7, 2021
27
3
3
Tell me, I want to buy MB revision 1.1 and flash it to work with 7xx2 processor, what bios and bmc to use for this? It is important for me to keep IPMI working for remote server control.
 

RolloZ170

Well-Known Member
Apr 24, 2016
7,643
2,397
113

iliuxa007

New Member
Sep 7, 2021
27
3
3

RolloZ170

Well-Known Member
Apr 24, 2016
7,643
2,397
113
Has anyone tried to re-solder the bios chip to a larger capacity like the rev2-3
not on that board.
what i do:
i cut off the pins of the chip with a tiny precision side cutter, only one side is enough then bent the chip until it falls off.
clean the solder pads and apply the new chip or better a SOP8 socket.
Adafruit 4726
Wieson G6179-10
G6179-100000
SOK-SPI-8W
IMG_20230422_141829_56.jpg
if i use hot-air i shield the components around with a thin self adhesive copper foil, cheap at a*a*on.