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
49
38
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:)