Hi guys
Could you be so nice and make change for me from 1002-6611 to 1002-6758 (R7 240 to 6670) . Hope 6670 works in M91p
I have some good news for you, mcemsi, and anyone else mad about the GPU whitelist on the M91p. I finally got the M91p to boot with my C552 / HD 8570 / (R7 240?) card and as I want to be a good netizen, I have created an account to share some info.
First off, thanks to MrGenius who has already laid out basically all the info needed to do this. I'm just going to collect it all here in a summarized and easy-for-dummies-like-me format. I also used some guidance from
this ATI/AMD Flashing Guide thread.
To get this done, you will need some hardware
1) a "Programming PC" which will boot with the GPU
2) a USB flash drive
And you will need to download the following software
1) Rufus - v3.4 -
link
2) ATIFLASH - v717(DOS) -
link
3) HxD Hex Editor - v2.2.1 -
link
The basic outline of how to do this is as follows;
01) Use Rufus to create a bootable USB flash drive with FreeDOS
02) Copy "atiflash.exe" into the "LOCALE" folder on the flash drive
03) Boot the programming PC to FreeDOS and download the GPU BIOS to a file like "ORIGINAL.ROM"
atiflash -s 0 original.rom
04) Shut down the programming PC and transfer ORIGINAL.ROM to a PC with HxD installed
05) Use HxD to make note of the Checksum-8 of the ORIGINAL.ROM
In my case it was "AC"
06) Save the file as "MODIFIED.ROM" and use HxD to find both instances of "PCIR" and change the hex values after each
The original device ID is 1002-6611 encoded as 02 10 11 66
You need to change that to 02 10 18 68 which is a DeviceID of 1002-6818
This is the DeviceID for the known whitelist-passing HD 7870
07) Use HxD to make note of the Checksum-8 of the now "MODIFIED.ROM"
In my case it was "BE"
08) Use
Wolfram|Alpha to calculate the new padding count needed at the end MODIFIED ROM
0xBE minus 0xAC equals 0x12, or 18 in decimal
09) Use HxD to edit the padding at the end of the MODIFIED.ROM
Because the difference was +18, you need to add 18 FF's to the end of the FF chunk near the end of the file
Pro-tip: each row is 16 wide by default, so you need to add 1 full row of FF's and 2 FF's on the following line
10) Save and transfer MODIFIED.ROM to the flash drive
11) Boot the programming PC to FreeDOS
12) Write the GPU BIOS with the MODIFIED.ROM file
atiflash -p 0 -f modified.rom
You'll see that it will list all the "new" parameters as zeros or blank, but that seems to be an artifact of the atiflash
If you go back to check the card information after reboot with atiflash -ai you will see that it's all still there fine
Your GPU will now pass the M91p (and M90p, actually) white list and you can boot just fine with it.
This is
the exact GPU I found on ebay for next to nothing, and I have programmed the modified.rom on two of them and been impressed with the performance so far. I tested the modified card in a ThinkCentre M90p as well, and this hack allowed it to pass the whitelist on that PC too.
UEFI Windows 10 works with this card, with "TCG Security Feature" and "Quick Boot" either on or off, no difference as far as I can tell.
UEFI Ubuntu have boots fine (after
this guide) but not with the "TCG Security Feature" on, though "Quick Boot" works well.
The M91p is very sensitive to the UEFI boot order and naming convention.
There is no need for modifying the drivers, the card is automatically correctly identified as the HD 8570 in Windows, and drivers install just fine.
I have no idea how to determine if the UEFI part of the GPU is being used, or if it is just falling back to legacy. So far, I can't see why or how it would matter in a normal use case.
The only lingering problem is that UEFI Windows 10 does not shut down to a correct power state, as the power light and fans remain on indefinitely even after the hard drive powers down. MBR/BIOS Windows 10 was fine. I'm sure it's just a silly Windows hibernation setting. Ubuntu has no such issues.
I've attached the ORIGINAL.ROM and MODIFIED.ROM files to this post, in case anyone wants to take a look at them.
Happy hacking! Hope this helps someone!