Jump to content

[GUIDE] AMD HD7970M with Enduro vbios modify and flashing (For P1x0EM and etc)


Aikei

Recommended Posts

Hi all, sorry for my English, i am Russian :( My guide need correction of text to normal English :)

So...

I have a Clevo P170EM with AMD Radeon HD7970M using Enduro technology.

atiflash for dos (3.99 and 4.07) can't backup bios of this card, and can't flash any bios in this card, but I found a way to modify and flash new vbios.

What do we need:

atiwinflash (i used version 2.3.0) - link

Free Hex Editor Neo (or similar hex editor) - link

Microsoft Windows Calculator

And now... Begin.

Overclocking Guide:

1) Run any 3D application for activate discrette card (eg game)

2) Run atiwinflash, and seem:

post-12507-14494995883186_thumb.jpg

3) Click "Save" for backup your vbios, name that "7970m_original.rom"

post-12507-14494995883483_thumb.jpg

4) Open this vbios in you hex editor:

post-12507-14494995883738_thumb.jpg

And now the fun begins :)

I want to change my standard clocks on 850Mhz for core and 1200Mhz for memory to increased clocks (my stable clocks is 970/1500 without overvolting).

We need to find our standard clocks in vbios file, and change it to new clocks. How to do it?

In vbios have accuracy clocks of thousandths (850,00 core and 1200,00 memory)

85000 it is decimal value, we need to convert it to hex value. I use Windows Calc to that:

1) Run Windows Calc, put it to programmer mode, and input Dec value = 85000

post-12507-14494995884028_thumb.jpg

2) Now click to "Hex" to convert your value

post-12507-14494995884217_thumb.jpg

But vbios seems reversed values, and you need reverse 14C08. To reverse you need move 2 digit values from right to left. 14C08 = 1 4C 08 = 08 4C 01 = 084C01

3) Do similar operations for memory (120000) and get value 1D4C0. Reversed = C0D401

And now search this value "084C01C0D401" in your Hex editor.

post-12507-14494995884627_thumb.jpg

We seem:

post-12507-14494995884765_thumb.jpg

Now i want to change my Core clocks from 850Mhz to 970Mhz, and my Memory clocks from 1200mhz to 1500Mhz:

Using Windows Calc to get hex values for my new clocks:

970 = 97000 = 17AE8 = Reversed E87A01

1500 = 150000 = 249F0 = Reversed F04902

And change it in you hex editor:

post-12507-14494995885002_thumb.jpg

Now click "Save as.." and name this vbios "7970m_mod.rom"

Go to atiwinflash again, click "Load" and select our modified vbios "7970m_mod.rom"

post-12507-14494995885332_thumb.jpg

Trying to flash our new vbios file - click "Program" and.... seem this error:

post-12507-14494995885639_thumb.jpg

Why? CRC Checksumm for new vbios is not correct. We seem that in atiwinflash window:

post-12507-1449499588576_thumb.png

How to fix it:

Vbios file have many empty blocks to fix CRC cheksumm. It is located closer to the center and have Hex values with many 00000000000000 and FFFFFFFFFFFFFF.

Find it in your hex editor:

post-12507-1449499588616_thumb.png

Now we need fix our new CRC to old CRC:

Old CRC = C400

New CRC = C4B4

New CRC value increased for B4 value. What is B4 in Hex? Go to Calc and convert it to Dec. We result B4 = 180.

Now we need decrease CRC checksumm for this value (180).

Get last FF value (before 0000000) in center of our VBIOS file. What is FF?

FF = 255

255 - 180 = 75

75 = 4B

Changing last FF value (before 0000000) in center of our VBIOS file to 4B and save changes in file.

post-12507-14494995886583_thumb.png

Now our checksumm is correct, you can Program your new vbios file in atiwinflash.

Good Luck ;)

post-12507-14494995887006_thumb.png

Overvolting Guide:

To overvolt our card we need to change voltage values for 3D-gaming mode. I found all voltage values, it is long hex string:

1A040000EF02E80300001E03CF0300004203B60300005F039D03000085039D030000

Maybe it is not all values, but it is something we need. And we need only first part of string:

1A040000EF02E8030000

Finding it in Free Hex Editor Neo:

volt.1375685589.jpg

It is voltage values for various 3D modes of our Card.

Read more:

1A040000EF02 it is general 3d-state for maximum perfomance mode. Only first value contains voltage Value 1A04, if it reverse to 041A and convert to Decimal = 1050 (mV)

Next E8030000 it is second 3d-state, i don't know why, but it recommend to change for your general 3d-state voltage too. E803, reverse 03E8 and convert to Decimal = 1000 (mV)

If you want to change it to, example, 1075 mV, you need to covert and reverse this value from dec to hex. 1075 = 0433 = 3304

Changing it in hex editor:

volt2.1375685939.jpg

Well done, we changes our standard 3D-voltage from 1050 to 1075 mV.

Now we need to fix CRC chacksumm and flash new vbios. How to do it? Look in the end of first spoiler :)

  • Thumbs Up 9
Link to comment
Share on other sites

Wow. Thanks alot m8! Can i buy you a beer? i Will try it tomorrow! Will post may results as soon as i flash it

- - - Updated - - -

Just one quetion, how do you reverce the hex values? Because they have a 0 more than the unrebersed one, and theres no logic. Do you reverse it with windows calc as well?

Link to comment
Share on other sites

Wow. Thanks alot m8! Can i buy you a beer? i Will try it tomorrow! Will post may results as soon as i flash it

- - - Updated - - -

Just one quetion, how do you reverce the hex values? Because they have a 0 more than the unrebersed one, and theres no logic. Do you reverse it with windows calc as well?

I like a beer, but i don't now hou i can get it from you :)

Reverse 1 byte values (1 byte = 2 symbols in hex), example:

17AE8 = 1 7A E8 = E8 7A 01 :)

  • Thumbs Up 1
Link to comment
Share on other sites

Im such a noob when it comes to this things. Can you please say whats the correct string for 900/1300 and 925/1300? Thanks

- - - Updated - - -

Btw, to flash the rom do you need to be in a game too, just like when saving the bios?

Link to comment
Share on other sites

Im such a noob when it comes to this things. Can you please say whats the correct string for 900/1300 and 925/1300? Thanks

- - - Updated - - -

Btw, to flash the rom do you need to be in a game too, just like when saving the bios?

900 = 90000 = 15F90 = 1 5F 90 = 90 5F 01

925 = 92500 = 16954 = 1 69 54 = 54 69 01

1300 = 130000 = 1 FB D0 = 1FBD0 = D0 FB 01

900/1300 = 905F01D0FB01

925/1300 = 546901D0FB01

If discrette GPU not active - you can't flash it, atiwinflash does error message :)

  • Thumbs Up 2
Link to comment
Share on other sites

I recommend to change your Thermal Compound for overclocking to Arctic Cooling MX-4

Thanks for the advice but alreay done that, even change thermal pads, temps at 925/1300 are 80c playing crysis 3. I think im good to go.

- - - Updated - - -

Just one final question, is the crc value equal for any clocks? can i use the B4 for my clocks?

Link to comment
Share on other sites

Thanks for the advice but alreay done that, even change thermal pads, temps at 925/1300 are 80c playing crysis 3. I think im good to go.

- - - Updated - - -

Just one final question, is the crc value equal for any clocks? can i use the B4 for my clocks?

No-no, CRC Checksumm have any value for any clocks, you must fix it for your clocks. If you need help - attach you vbios file :)

Link to comment
Share on other sites

Thanks alot m8! will try it tomorrow since i need the laptop today and in case something goes wrong i need to switch to my 675m and i dont have it with me. Please check your PM´s, need some info from you.

Link to comment
Share on other sites

Well I can tell you from personal experience that my first 7970m (aug 2012) reached 1045Mhz on Core (1.1V), my current (june 2013) reaches 1100Mhz core (1.05V). Offcourse part of it still greatly depend on getting a good overlockable core :)

Link to comment
Share on other sites

Flashed my modded vBIOS with increased clocks. All is working great but only one minor issue is that my 7970m is now stuck at the edited clocks in 3D mode Only problem is that as soon enduro switches to the 7970m my GPU temps skyrockets because the card is always at 99% load (did solve the enduro issues tough ;))

Link to comment
Share on other sites

@troid Try disabling ULPS. I had a simular issue with my secondary card and disabling ULPS solved the problem.

To disable ULPS you can install TRIXX and tick the "Disable ULPS" checkbox under settings. Close TRIXX and then reboot.

Alternatively you can open Regedit and search for "EnableULPS" with exact match ticked. Once the search stops at the EnableULPS key, change the value to 0. Press F3 to continue the search and change each EnableULPS key that is found to 0. Reboot afterwards.

ULPS = Ultra Low Power State which AMD implements to save power. Unfortunately it causes more problems than it saves you power :P

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.