Become a MacRumors Supporter for $50/year with no ads, ability to filter front page stories, and private forums.

SheetLorde

macrumors newbie
Original poster
Apr 17, 2020
21
11
Quoted myself from https://www.macgpu.com/how-to-flash-hd-7950-for-mac-pro.html

Original post is in http://forum.netkas.org/index.php/topic,5619.0.html

A GTX680 or HD 7950/7970/280/280X is still the best GPU option for old Mac Pro if you want both Metal and boot screen. (Opencore is a different question). While GTX 680 is the easiest thing to flash, Radeon cards are need a patch rom. NOTE: only DVI port works for boot screen after this flash.

netkas's guide have two problems:
1. The script have a bug that if CRC is 0 it will fail silently.
2. The EfiCompress.macosx is a 32bit binary that doesn't work for Catalina and later.

I fixed both and uploaded to Download here also include a linux version of atiflash I found on internet.
Rest is the same as before. You first get the original ROM by either dump from ATIFlash or download from techpowerup.

Then switch to MacOS or linux run (you will need java and python to run this)
./makerom.sh --efifile=7950mac.efi --romfile=efiromheader.rom --devid=679a --originalrom=your_7950_or_280.rom

For 7970/280x run this (you will need java and python to run this)
./makerom.sh --efifile=7950mac.efi --romfile=efiromheader.rom --devid=6798 --originalrom=your_7970_or_280x.rom

Then flash the generated *.efi.rom using atiflash, I usually flash on Windows. I don't know how can you flash on MacOs, some people mentioned virtual machine but I have not tried it.
 

Attachments

  • bundle.zip
    2.5 MB · Views: 1,252
Last edited:
Quoted myself from https://www.macgpu.com/how-to-flash-hd-7950-for-mac-pro.html

Original post is in http://forum.netkas.org/index.php/topic,5619.0.html

A GTX680 or HD 7950/7970/280/280X is still the best GPU option for old Mac Pro if you want both Metal and boot screen. (Opencore is a different question). While GTX 680 is the easiest thing to flash, Radeon cards are need a patch rom. NOTE: only DVI port works for boot screen after this flash.

netkas's guide have two problems:
1. The script have a bug that if CRC is 0 it will fail silently.
2. The EfiCompress.macosx is a 32bit binary that doesn't work for Catalina and later.

I fixed both and uploaded to Download here also include a linux version of atiflash I found on internet.
Rest is the same as before. You first get the original ROM by either dump from ATIFlash or download from techpowerup.

Then switch to MacOS or linux run (you will need java and python to run this)
./makerom.sh --efifile=7950mac.efi --romfile=efiromheader.rom --devid=679a --originalrom=your_7950_or_280.rom

For 7970/280x run this (you will need java and python to run this)
./makerom.sh --efifile=7950mac.efi --romfile=efiromheader.rom --devid=6798 --originalrom=your_7970_or_280x.rom

Then flash the generated *.efi.rom using atiflash, I usually flash on Windows. I don't know how can you flash on MacOs, some people mentioned virtual machine but I have not tried it.
The Download link seems to be broken, is there another?
Then I tried the attachment and it downloaded! Sorry... ignore this post...
 
I've just bought a second-hand Sapphire Vapor X HD-7950 which I've confirmed works fine inside my cMP 5,1 running MacOS 10.13.6.
Now that it's confirmed working I want to flash it to get the Mac EFI boot screen, so I've downloaded the zip file from the first posting here in order to try figure it all out, but I'm either misunderstanding something or it doesn't quite work here.....

If I'm not mistaken, the first step (after downloading/unzipping "bundle.zip") is to run the Windows app "ATIflash" so I can read the contents of my Vapor X HD-7950 and save it as a file.

I assume this is found within the /bundle/atiflash_293/ folder. It looks to be "amdvbflashWin.exe", but if I double-click it I get an error message saying "Cannot find discrete ATI video card":
Screen Shot 2023-01-21 at 17.43.42.png


So I found another Windows app in the same folder named "amdvbflash.exe". It appears to be a DOS app (I'm assuming equivalent to the other app I mentioned) which, when I run it, gives me a whole lot of options. But it's a little confusing. What should I do here in order to read and dump the memory contents of the video card?
I'm running Windows (version 7) within VirtualBox VM 6.1 on my Mac running MacOS 10.13.6.

Also, does anyone know of a user-manual of this video card? I haven't been able to find one online and from what I've picked up there's a firmware switch, and I'd like to know where it is and what to set it to.
 
I'm running Windows (version 7) within VirtualBox VM 6.1 on my Mac running MacOS 10.13.6.

You can't flash a GPU via VM, the VM doesn't have direct access to the hardware. You need to boot Windows natively or install the GPU to a PC.
 
Aha, I see!
I don't have access to a PC, so what's the easiest way to create a suitable Windows, Linux or whatever environment on my cMP 5,1?
I have several hard drives and SSDs I can use for this -either attached to a drive-sled inside the computer or via USB in external enclosures for experimenting without risking messing up my normal startup drive. I also have a few USB flash drives.
I've played around with Boot Camp in the past, but it was such a hassle to get working that I just installed Virtualbox and got it working there (not the easiest thing to do either, but certainly easier than Boot Camp).
 
Aha, I see!
I don't have access to a PC, so what's the easiest way to create a suitable Windows, Linux or whatever environment on my cMP 5,1?
I have several hard drives and SSDs I can use for this -either attached to a drive-sled inside the computer or via USB in external enclosures for experimenting without risking messing up my normal startup drive. I also have a few USB flash drives.
I've played around with Boot Camp in the past, but it was such a hassle to get working that I just installed Virtualbox and got it working there (not the easiest thing to do either, but certainly easier than Boot Camp).
May be you can try the Linux Live USB first. It's good to learn how to create such an USB drive as your emergency backup OS anyway.
 
A live USB sounds like a good solution, but can I create something like that with Windows instead? And on my Mac? (I don't have a Windows PC).
All of the non-Mac apps for flashing GPUs seem to be Windows only, and the instructions also refer to those.
 
A live USB sounds like a good solution, but can I create something like that with Windows instead? And on my Mac? (I don't have a Windows PC).
All of the non-Mac apps for flashing GPUs seem to be Windows only, and the instructions also refer to those.
You can create Linux Live USB in pretty much in any OS. And amdvbflash is the tool in Linux to flash AMD cards, no Windows required.
 
Last edited:
No, I meant to create a Windows Live USB, not Linux.
But if there is a Linux version of "amdvbflash" and it does the same thing as ATIflash as mentioned in the instructions in posting #1, then it probably doesn't matter if I do it within Linux or Windows.
 
No, I meant to create a Windows Live USB, not Linux.
But if there is a Linux version of "amdvbflash" and it does the same thing as ATIflash as mentioned in the instructions in posting #1, then it probably doesn't matter if I do it within Linux or Windows.

Normally we only use the WindowsToGo USB when it's inconvenient to open the computer to install a SATA disk, like the case of AIO and laptop computers.
It's clearly not the case for the cMP. You just need to open the case and pop in a SATA disk with Windows 10 pre-installed, and boot from it.
There are several ways to create a WindowsToGo USB, like Rufus and Hasleo (Google for more info). This must be done on a computer running Windows 10.
 
Why not just download the windows 10 iso from:
https://www.microsoft.com/en-us/software-download/windows10ISO
and use bootcamp to install windows on one of your spare SSD or HDs?
You may need to burn the iso onto a double layer DVD, since it's >6GB
and your bootcamp is looking for you to insert an installer DVD. After the install, when
you boot into windows just skip the registration and customize parts of
the initialization. Most of windows 10 works just fine including ATIFlash.exe.
Note the install will require a NTFS formatted drive (not FAT32).
 
Last edited:
Why not just download the windows 10 iso from:
https://www.microsoft.com/en-us/software-download/windows10ISO
and use bootcamp to install windows on one of your spare SSD or HDs?
You may need to burn the iso onto a double layer DVD, since it's >6GB
and your bootcamp is looking for you to insert an installer DVD. When
you boot into windows just skip the registration and customize parts of
the initialization. Most of windows 10 works just fine including ATIFlash.exe.
Note the install will require a NTFS formatted drive (not FAT32).

Why do one need to burn a DVD or a USB flashdrive, while there are 6 SATA ports inside the cMP 5,1?
 
Because bootcamp assistant won't let you install directly from the iso file you've downloaded from MS. Bootcamp assistant is looking for an installer disk. You would still be installing to one of the internal drives (formatted as NTFS).
 
Last edited:
Can someone please tell me what I'm doing wrong here (trying reflash a "Sapphire HD-7950 Vapor-X OC boost")?
(I now have a Windows 7 setup on my cMP which I can boot into in order to reflash etc.)

First, I noticed that you're not supposed to enter the full ID as shown in ATIwinflash (in Windows). In my case it was 0x679a. It then gives me an error message:

$ ./makerom.sh --efifile=7950mac.efi --romfile=efiromheader.rom --devid=0x679a --originalrom=850MHz_Sapphire_HD7950_3072_120926_2.rom
running on 7950mac.efi, efiromheader.rom with devid 0x679a
Device-id should be like this - 697C

So I've changed 0x679a to 679a which appears to work.

Second, the script is looking for a folder named /7950/MAC/ (see red highligted text below).
Should I create an empty folder/subfolder on my desktop with those names?

Finally there's an error where it doesn't find a file named "7950mac.efi.comp".

$ ./makerom.sh --efifile=7950mac.efi --romfile=efiromheader.rom --devid=679a --originalrom=850MHz_Sapphire_HD7950_3072_120926_2.rom
running on 7950mac.efi, efiromheader.rom with devid 679a
Patching files 7950mac.efi, efiromheader.rom for device-id 0x679a
Successfully patched efi file
Successfully patched efi rom file
./makerom.sh: line 42: /Users/johndoe/Desktop/7950/MAC: No such file or directory
dd: 7950mac.efi.comp: No such file or directory

EFI part is ready at 679a.efipart.rom
orig size - 65536
65536+0 records in
65536+0 records out
65536 bytes transferred in 0.215309 secs (304381 bytes/sec)
rm: 7950mac.efi.comp: No such file or directory
Before:
OpRom (size=65536, indicator_offset=0x241, indicator=0x80, checksum=0xff)
OpRom (size=48128, indicator_offset=0x31, indicator=0x80, checksum=0x0)
RawData (size=17408)

After:
OpRom (size=65536, indicator_offset=0x241, indicator=0x0, checksum=0x7f)
OpRom (size=48128, indicator_offset=0x31, indicator=0x80, checksum=0x87)
RawData (size=17408)
the rom is ready at 850MHz_Sapphire_HD7950_3072_120926_2.rom.efi.rom
$
 
Last edited:
  • Like
Reactions: mac in mtl
I think I figured it out!
I recalled it being mentioned earlier somewhere, (not to have any spaces in the filenames when flashing), so I created a new folder on my Mac Finder desktop without any spaces in its name, also ensuring the GPU ROM-file either.
This time it appeared to work without any error:

$ ./makerom.sh --efifile=7950mac.efi --romfile=efiromheader.rom --devid=679a --originalrom=850MHz_Sapphire_HD7950_3072_120926_2.rom
running on 7950mac.efi, efiromheader.rom with devid 679a
Patching files 7950mac.efi, efiromheader.rom for device-id 0x679a
Successfully patched efi file
Successfully patched efi rom file

Orig Size = 125440
Comp Size = 47591
47591+0 records in
47591+0 records out
47591 bytes transferred in 0.160514 secs (296491 bytes/sec)
EFI part is ready at 679a.efipart.rom
orig size - 65536
65536+0 records in
65536+0 records out
65536 bytes transferred in 0.218931 secs (299346 bytes/sec)
Before:
OpRom (size=65536, indicator_offset=0x241, indicator=0x80, checksum=0xff)
OpRom (size=48128, indicator_offset=0x31, indicator=0x80, checksum=0x0)
RawData (size=17408)

After:
OpRom (size=65536, indicator_offset=0x241, indicator=0x0, checksum=0x7f)
OpRom (size=48128, indicator_offset=0x31, indicator=0x80, checksum=0x47)
RawData (size=17408)
the rom is ready at 850MHz_Sapphire_HD7950_3072_120926_2.rom.efi.rom
$

So now I'll boot into Windows and try to reflash my GPU with it.
 
... so I proceeding by booting into Windows 7 in order to reflash it with ATIflash.
Based on previous experience the past few days (when attempting to locate and reflash my GPU with the original factory-installed ROMs) and by reading others' recommendations I've ended up using the DOS commandline version of ATIflash instead of the Windows one.
However, in this case the result was opposite as it didn't work:
EFI reflash error Capture.PNG


But for some strange reason it worked perfectly in the Windows version!
But success with Windows version -EFI reflash OK Capture.PNG


And after rebooting:
20230222-153616_P2220020.jpg


So after all that it worked!
 
  • Like
Reactions: h9826790
May 2023: the links to the BIOS script files seem to have expired. Does anyone have a current link, or happened to save a copy of the file? Thx
 
May 2023: the links to the BIOS script files seem to have expired. Does anyone have a current link, or happened to save a copy of the file? Thx

The poster added it as an attachement in post#1. IMHO the text should have been edited so as to clear this up (instead having a non-working download link).
I used the attachement a few months ago to successfully flash my Sapphire HD-7950 Vapor-X.
Good luck!
 
Last edited:
  • Like
Reactions: mac in mtl
The poster added it as an attachement in post#1. IMHO the text should have been edited so as to clear this up (instead having a non-working download link).
I used the attachement a few months ago to successfully flash my Sapphire HD-7950 Vapor-X.
Good luck!
Thank you for that! i don't think i woulda ever found it on my own LOL

ok, i'm old school, but feeling like a n00b. i've extracted the ROM from ATI on Win 10. I assume I now put it in the "bundle" folder... but what do i name the ROM file so the script can update it?

i've executed the script, and get a positive result, but ATI flash says "already loaded" or something. When i reboot PC, no video on that card (I have a second card installed, so I flash back the original – DON'T FORGET TO MAKE A BACKUP OF YOUR ORIGINAL!!). But then the card no longer works in Windows. :/
 
Thank you for that! i don't think i woulda ever found it on my own LOL

Hehe. I know what you mean as it was the same for me :)


ok, i'm old school, but feeling like a n00b. i've extracted the ROM from ATI on Win 10. I assume I now put it in the "bundle" folder... but what do i name the ROM file so the script can update it?

Which card/model are you using?
I'm certainly no expert in the field (and struggled quite a bit to understand all this, having never done it before), and I'm sure there are many people more knowledgeable reading this who can help, but I wrote a little step-by-step guide based on my experiences which I hope can help.
As far as I remember you don't need to give the ROM dump a specific name as you just reference to the file's name in the Terminal command line.


i've executed the script, and get a positive result, but ATI flash says "already loaded" or something. When i reboot PC, no video on that card (I have a second card installed, so I flash back the original – DON'T FORGET TO MAKE A BACKUP OF YOUR ORIGINAL!!). But then the card no longer works in Windows. :/

Sounds like you didn't flash it properly, or got the patched file wrong.
Based on my experience there are several things that can cause problems:

- card ID/ID syntax: ensure you have the right ID and enter it using the correct syntax when issuing the MacOS Terminal commands (for instance, ATIwinflash told me the ID for my card was 0x679a, but this doesn't work with the script, but 679a did!)
- spaces in file/folder name: make sure you don't have any spaces in the folder name(s) where the script is located, nor in the dumped ROM filename. This made a difference to me.
- Windows flashing ID mismatch error: this is probably not something you'll get into if you just dump the ROM from your card, and use that to build a new (Mac EFI-boot patched) ROM file, but in my case I also needed to find the correct ROM to begin with (I believe the previous owner of the card had used the wrong ROM), so I tried several different ROM files by downloading them from TechPowerUp.com and experienced an "ID mismatch" error. The solution in this case is to use the DOS version with some specific commands instead of the Windows version of the flasher app.

Also, pay attention to what kind of message you get when patching your ROM file. I didn't read this and several times missed what was going on because of the wrong syntax of the card ID and spaces in the file/folder when running the EFI-patching script.

Let us know how it's going!
 
  • Like
Reactions: mac in mtl
Hehe. I know what you mean as it was the same for me :)




Which card/model are you using?
I'm certainly no expert in the field (and struggled quite a bit to understand all this, having never done it before), and I'm sure there are many people more knowledgeable reading this who can help, but I wrote a little step-by-step guide based on my experiences which I hope can help.
As far as I remember you don't need to give the ROM dump a specific name as you just reference to the file's name in the Terminal command line.




Sounds like you didn't flash it properly, or got the patched file wrong.
Based on my experience there are several things that can cause problems:

- card ID/ID syntax: ensure you have the right ID and enter it using the correct syntax when issuing the MacOS Terminal commands (for instance, ATIwinflash told me the ID for my card was 0x679a, but this doesn't work with the script, but 679a did!)
- spaces in file/folder name: make sure you don't have any spaces in the folder name(s) where the script is located, nor in the dumped ROM filename. This made a difference to me.
- Windows flashing ID mismatch error: this is probably not something you'll get into if you just dump the ROM from your card, and use that to build a new (Mac EFI-boot patched) ROM file, but in my case I also needed to find the correct ROM to begin with (I believe the previous owner of the card had used the wrong ROM), so I tried several different ROM files by downloading them from TechPowerUp.com and experienced an "ID mismatch" error. The solution in this case is to use the DOS version with some specific commands instead of the Windows version of the flasher app.

Also, pay attention to what kind of message you get when patching your ROM file. I didn't read this and several times missed what was going on because of the wrong syntax of the card ID and spaces in the file/folder when running the EFI-patching script.

Let us know how it's going!


ok i got it to work!! Thank you for your fantastic assistance.
 
Register on MacRumors! This sidebar will go away, and you'll see fewer ads.