OneB1t / HawaiiBiosReader

Hawaii Bios Reader Tool for Bios development if you want to contribute please send me PM/mail/SMS/fax or pidgeon :)
http://forums.guru3d.com/showthread.php?t=400050
MIT License
63 stars 18 forks source link

FirePro W8100 #1

Closed pozoliu closed 8 years ago

pozoliu commented 9 years ago

Hello,

I send you the BIOS of my W8100... the program does not read correctly:

captura de pantalla 2015-07-27 16 41 46

https://www.dropbox.com/s/jlphntrp8dghp5p/bios_FIREPRO_W8100_Hawaii.rom?dl=0

In this forum thread I posted information:

http://www.xtremesystems.org/forums/showthread.php?290362-Increase-Power-Limit-gt-20-by-software-or-help-to-MOD-BIOS-for-AMD-FirePro-W8100

I hope you serve to improve the program.

Thanks and good luck.

OneB1t commented 9 years ago

this card is weird it have much smaller powertable then rest of other cards

pozoliu commented 9 years ago

Any progress?

OneB1t commented 8 years ago

try to contact hedzin maybe he can add this card to his fork as it need more powerplay levels :)

pozoliu commented 8 years ago

Who is hedzin?

How to contact him?

Thanks

OneB1t commented 8 years ago

https://github.com/Hedzin/TongaBiosReader

pozoliu commented 8 years ago

Ok

Hedzin commented 8 years ago

Hi i have performed some investigations about w8100 bios it looks more like hawaii bios then like tonga so it is impossible to add its support to my editor but it more easy to add w8100 support to hawaii editor i will try to describe "how" below: main diference between regular 290/390/w9100 bios and 8100: 8100 has only 5 states , as regulars have full 8

and it is very easy to determinate how many state has every bios one byte before every table like gpuFreq memFreq etc - it is count of states below so if for example 390x has next data at the begining of gpufreqtable 08 307500 E803 50C300 02FF A81001 03FF 284F01 04FF 2C5F01 05FF 3C6D01 06FF 08 - count of states and for w8100 it is: 05 307500 DB03 ECA900 02FF B4DC00 03FF 180F01 04FF E04101 05FF 05 - only 5 state

i was not able to add FULL w8100 support to hawaii reader, as i am not familar with hawaii related LIMIT TABLES, to determinate "what is what" but i have found next gpu mem offsets: case 520: // FirePro W8100 powerTablesize.Text += " - FirePro W8100"; memoryFrequencyTableOffset = 261; gpuFrequencyTableOffset = 229;

also next solution i can suggest for count reatriving: .... int gpuFrequencyTableCount = get8BitValueFromPosition(powerTablePosition + gpuFrequencyTableOffset - 1, romStorageBuffer); for (int i = 0; i < gpuFrequencyTableCount; i++) ....

i suppose with this information OneB1t will be able to add w8100 support to hawaii editor

image

pozoliu commented 8 years ago

Good job.

Thank you very much.

OneB1t commented 8 years ago

I added you write support for you hedzin so feel free to commit if you have some improvements :)

OneB1t commented 8 years ago

dunno if you still reading this thread but if you do can you please post gpu registers from aida64 for W8100?

you can access these registers by clicking right corner in aida64 then video debug -> ati gpu registers and upload results somewhere

thanks ;)

pozoliu commented 8 years ago

Ok... ¿TEXT or IMAGE?

OneB1t commented 8 years ago

as you want prolly better text :D

pozoliu commented 8 years ago

ATI GPU Registers:
ati-$002F4 00000000
ati-$02004 00438210
ati-$02408 000F007F
ati-$025B8 00000001
ati-$02760 00007262
ati-$02BA0 010000C3
ati-$02BA4 002581F4
ati-$02BB0 05000910
ati-$02BB4 C4380800
ati-$02BB8 00B917A0
ati-$02BBC 00092004
ati-$02BC0 00000001
ati-$02BC4 00000001
ati-$02BCC 00000150
ati-$02BD0 000001C2
ati-$05428 00002000
ati-$089BC F8010001 [SE0 SH0]
ati-$089C0 00000000 [SE0 SH0]
ati-$089BC 00000000 [SE0 SH1]
ati-$089C0 00000000 [SE0 SH1]
ati-$089BC F8010001 [SE1 SH0]
ati-$089C0 00000000 [SE1 SH0]
ati-$089BC 00000000 [SE1 SH1]
ati-$089C0 00000000 [SE1 SH1]
ati-$089BC F8010001 [SE2 SH0]
ati-$089C0 00000000 [SE2 SH0]
ati-$089BC 00000000 [SE2 SH1]
ati-$089C0 00000000 [SE2 SH1]
ati-$089BC FA000001 [SE3 SH0]
ati-$089C0 00000000 [SE3 SH0]
ati-$089BC 00000000 [SE3 SH1]
ati-$089C0 00000000 [SE3 SH1]
ati-$098F0 00000000
ati-$098F4 00000000
ati-$098F8 00000000
ati-$098FC 00000000
ati-$09B7C 00000000
ati-$30800 00000000
ati-GCKSMCIND-0003FD28 00000A8C
ati-GCKSMCIND-0003FD2C 000003E8
ati-GCKSMCIND-0003FD64 00000001
ati-GCKSMCIND-0003FD68 00000001
ati-GCKSMCIND-0003FD6C 00000000
ati-GCKSMCIND-C0200000 00804603
ati-GCKSMCIND-C0200014 00001100
ati-GCKSMCIND-C02000F0 00000000
ati-GCKSMCIND-C0200288 00000005
ati-GCKSMCIND-C020028C 013F0010
ati-GCKSMCIND-C0200290 01580052
ati-GCKSMCIND-C0200294 0000583D
ati-GCKSMCIND-C0300008 00006600
ati-GCKSMCIND-C0300014 00004627
ati-GCKSMCIND-C0300018 0000002D
ati-GCKSMCIND-C0300068 400925FF
ati-GCKSMCIND-C0300074 001D66CD
ati-GCKSMCIND-C050008C 00000016
ati-GCKSMCIND-C05000B4 68681600
ati-GCKSMCIND-C05000CC 0000000F
ati-GCKSMCIND-C0500140 00200006
ati-GCKSMCIND-C0500144 00000001
ati-GCKSMCIND-C0500148 100F4710
ati-GCKSMCIND-C05001A0 00000001

pozoliu commented 8 years ago

Hello OneB1t,

The Voltage table is in block: A6C1-A6DE


DB 03 DB 03 DB 03 7E 04 F4 03 E1 03 77 04 01 04 EE 03 77 04 07 04 F4 03 77 04 0D 04 01 04


03DB 987 03DB 987 03DB 987

047E 1150 03F4 1012 03E1 993

0477 1143 0401 1025 03EE 1006

0477 1143 0407 1031 03F4 1012

0477 1143 040D 1037 0401 1025



TDP MAX | POWER LIMIT | TDC LIMIT | -> block: A78C-A79A


ORIGINAL BIOS W8100 -> 85 00 85 00 C8 00 00 00 00 00 A4 06 48 0D 85


85-> 133W C8-> 200A


Bios MOD by The Stilt -> D0 00 D0 00 C8 00 00 00 00 00 A4 06 48 0D D0


D0-> 208W C8-> 200A



Tables VCE-ACP-SAMU-UVD-> I do not know where they are.



I need help to modify voltages:

excel_votajes_w8100

OneB1t commented 8 years ago

you can use current version of hawaireader to adjust voltages for your card ;) i will add other things you sended as well but if you just set gpuvoltage and memvoltage thats enougth to make it work (hawaiibiosreader is noninvasive so as long as you dont mess with other wrongly readed values it will not change them)

OneB1t commented 8 years ago

you can also prolly use afterburner commands for i2c to adjust voltage

pozoliu commented 8 years ago

05_hbr 04_hbr 03_hbr 02_hbr 01_hbr 00_hbr

OneB1t commented 8 years ago

it can ;) this is all you need to change voltage https://cloud.githubusercontent.com/assets/13522924/12112499/2e1588c4-b39d-11e5-8b34-ff0b820d7a59.png

read 290X hawaii bios edit thread on overclock.net

i will add TDP,TCP limit change as well in next version :)

you need to change column vol from values 65xxx to 1200mV 1300mV etc.. its because normally these cards have voltage setted by their asic quality and not by hardcoded values

OneB1t commented 8 years ago

i know its little weird to change 6528x to 1200 but it work that way :D (also hawaiibiosreder needs better user manual...)

pozoliu commented 8 years ago

OK is strange.... So ... what is this Voltage table is in block A6C1-A6DE? ... ¬ ¬'

OneB1t commented 8 years ago

no idea but its not needed :D we discovered that long time ago also changing that table does not have any impact at all i think its some legacy thing from older cards maintained maybe for compatibility reasons

pozoliu commented 8 years ago

Ok... but... you've gone too fast

06_hbr

What is auxiliary voltage?

pozoliu commented 8 years ago

I have a theory... each DPM has 3 voltages to optimize the change of DPM:

For example:

DPM0 to DPM7

W8100 -> 5DPM -> 5X3 = 15 VOLTAGES 290X -> 8DPM -> 8X3 = 24 VOLTAGES

OneB1t commented 8 years ago

nope :D there is only 1 voltage ;) i had theory about ASIC quality but if you change any value in voltage table it does exactly nothing

pozoliu commented 8 years ago

The edition of the voltage is not correct to HawaiiBiosReader.

Delivery peaks 1,186V (1200mV in BIOS) but does not deliver sustained.

On average delivery 1.05V

07_hbr

I used the HWiNFO for monitoring (100ms interval scan for maximum precision).

This is the result:

00_occt_captura1200mvfail

The BIOS used:

W8100PL_3.zip

OneB1t commented 8 years ago

increase powerlimit

pozoliu commented 8 years ago

The power limit is 250W... not 210W.... 210 is TDC limit

This version does not show it correctly.

06_hbr

OneB1t commented 8 years ago

increase both :D

pozoliu commented 8 years ago

If I increase more than 255 think it gives problems:

DEC-> HEX

255 -> FF 256 -> 100 (3 digits ????)

OneB1t commented 8 years ago

increase 133 200 should be enough

pozoliu commented 8 years ago

133W and 200A is in the original Bios.... is only one example

OneB1t commented 8 years ago

250W is not enought you can see in GPU VRM power in that its limited on 250W you can also go higher this is 16-bit value so its not limited to 255 as 8bit value if you check asus 290X PT1 bios you will see that there is 999 in all limits :D

also check if your card can be unlocked to full W9100 :-) furmark is nowhere near normal workload

OneB1t commented 8 years ago

was it succesfull?

pozoliu commented 8 years ago

Relatively...the cooling system of the VRM is not enough.

Vgpu= 1.222v -> Gpuclock = 1050 Mhz is estable but VRM-GPU dissipates 62W with OCCT (50W furmark) ... if the VRM temperature rises to 100°C dissipates 72W and more.

I calculated the thermal resistivity... If I do not stop the test can reach 140°C

AIDA64 dissipates only 25-30W -> 75-80 ° C

I want to try less voltage and also thinking of liquid cooling.

OneB1t commented 8 years ago

try to unlock your card to W9100 (if its possible) thats better for performance boost :D

VRM cooling is pain i had reference card cooler which i swapped to gelid icy vision v2 and then used old cooler for VRM cooling to keep VRM temps under 100C

i modded it exactly this way http://www.xtremesystems.org/forums/showthread.php?288608-R9-290X-Gelid-Icy-Vision-using-modified-AMD-metal-plate-for-better-VRM-cooling

also furmark is unreal load :)

pozoliu commented 8 years ago

Unlock would be nice but I see it difficult.

I have mounted the Gelid V2 :(

OneB1t commented 8 years ago

try cuinfo if its doable ;)