Sunday, April 23, 2017

Notes on modding HD7990's BIOS

Sharing is caring so here's some info of questionable quality on HD 7990 BIOS modding. I haven't tested any of the modifications yet and even it I did the usual applies to BIOS modding. If you kill your stuff due to a mod gone wrong it's not my fault so mod responsibly.

The HD 7990 Buildzoid edition. Since this photo I've replaced all the thermal pads. Changed thermal paste and changed the mounting hardware. I still haven't done the cap mods. In it current state it did this score:

 So it's already pretty fast. However pretty fast is just not enough. Ideally I would like to push the card beyond 1200MHz core maybe all the way to 1300MHz. Now I haven't really tested the limits of this card. Really that 5.9K Heaven score was me taking it "easy" during some late night testing. I expect to hit the card's power limit pretty hard some time soon so I figured I would look into modding the BIOS for MOAR POWER. Since I started digging in the BIOS I figure that I might as well also look into seeing if I could figure out how memory timings on the card work. Here are the notes on that:

HD 7990 reference
Power limit is set with 2 values
Min power
Max power
these are X% apart from the stock TDP. X% is the overdrive power limit slider

EXP
300W BIOS 20% = 360W max and 240W min
300W BIOS 50% = 450W max and 150W min

Power limits are found in this:


D9 00 05 00 E8 03 58 00 00 80 07 00 10 00 00 02 0A 2C 00 00 69 00 DB 00 05 23 01 0A 00 32 01
42 01 3D 03 00 00 C6 16 00 00 58 01 6D 01 73 01 00 00 A1 01 00 00 B3 00 00 00 77 00 00 00 60
EA 00 00 88 01 20 03 00 00 14 00 40

In this stock 7990 BIOS B3(179W) is the Hi limit and 77(119W) the Lo limit. I assume the current limit is also somewhere in that block. If you want to set a value greater than 255W it would look like this:

D9 00 05 00 E8 03 58 00 00 80 07 00 10 00 00 02 0A 2C 00 00 69 00 DB 00 05 23 01 0A 00 32 01
42 01 3D 03 00 00 C6 16 00 00 58 01 6D 01 73 01 00 00 A1 01 00 00 2C 01 00 00 04 01 00 00 60
EA 00 00 88 01 20 03 00 00 14 00 40

This gives you a 300W high limit and a 260W low limit. Which I think will translate into 280W stock.
I find that the original 179W maximum power limit of the reference HD 7990 is kinda concerning especially once you consider that the Vcore VRM for each of the 2 GPUs is only 4 phases. On stock settings the maximum current through them works out to only ~149A at 1.2V. I think 200A is probably safe however without a datasheet for the Volterra power stages I would recommend proceeding with extreme caution while carefully monitoring VRM temperatures(GPU-z supports VRM temps for the ref HD 7990).

MEMORY STUFF

Timing Straps
A timing strap is composed of 48 bytes
98 AB 02 = 02AB98 = 1750Mhz
77 71 33 20 00 00 00 00 31 62 7C 47 80 55 11 11 30 A7 1A 07 00 4C 06 01 22 22 9D 00 6C 0F 14 20 6A 89 00 A0 00 00 01 20 19 12 2F 36 48 28 31 15

C4 7A 02 = 027AC4 = 1625MHz
77 71 33 20 00 00 00 00 10 5A 7B 41 80 55 11 11 2E A5 99 06 00 4C 06 01 22 11 9D 00 6C 0F 14 20 6A 89 00 A0 00 00 01 20 17 11 2B 31 42 26 2F 15

F0 49 02 = 0249F0 = 1500MHz
77 71 33 20 00 00 00 00 CE 51 6A 3B 70 55 10 10 2B A2 18 06 00 4A E6 00 22 00 9D 00 64 0E 14 20 6A 89 00 A0 00 00 01 20 15 0F 27 2D 3C 23 2C 14

1C 19 02 = 02191C = 1375MHz
77 71 33 20 00 00 00 00 AD CD 69 37 70 55 0F 10 29 21 98 05 00 4A E5 00 22 EE 1C 00 64 0D 14 20 5A 89 00 A0 00 00 01 20 14 0E 24 2A 38 22 2A 14

48 E8 01 = 01E848 = 1250MHz
77 71 33 20 00 00 00 00 8C C5 58 31 60 55 0F 0F 25 1E 17 05 00 48 C4 00 22 CC 1C 00 5C 0B 14 20 4A 89 00 A0 00 00 01 20 12 0D 20 25 32 1F 26 13

74 B7 01 = 01B774 = 1125MHz
55 51 33 20 00 00 00 00 6B BD 57 2D 60 55 0D 0E 22 9C 96 04 00 28 C3 00 22 BB 1C 00 53 0A 14 20 BA 88 00 A0 00 00 01 20 10 0C 1E 22 2E 1D 23 12

A0 86 01 = 0186A0 = 1000MHz
55 51 33 20 00 00 00 00 29 B5 46 27 50 55 0C 0D 1E 99 05 04 00 26 A2 00 22 AA 1C 00 4B 08 14 20 AA 88 00 A0 00 00 01 20 0E 0A 1A 1E 28 1A 1F 11

90 5F 01 = 015F90 = 900MHz
55 51 33 20 00 00 00 00 29 31 46 24 50 55 0C 0D 1C 18 A5 03 00 26 A1 00 22 AA 1C 00 4B 07 14 20 9A 88 00 A0 00 00 01 20 0D 0A 18 1B 25 19 1D 11

80 38 01 = 013880 = 800MHz
55 51 33 20 00 00 00 00 E7 AC 35 20 50 55 0B 0D 1A 97 34 03 00 24 81 00 22 AA 1C 00 4B 06 14 20 9A 88 00 A0 00 00 01 20 0C 08 15 19 21 18 1B 11

40 9C 00 = 009C40 = 400MHz
33 31 33 20 00 00 00 00 84 94 22 10 F0 54 09 06 0F 0B A2 01 00 23 80 00 22 AA 1C 00 12 01 14 20 8A 88 00 A0 00 00 01 20 06 05 0B 0C 11 0C 10 0D

Well that's all for this. Hopefully you find this useful for your own BIOS modding. Though to be completely honest I mostly wanted to post this so I would have an easily accessible online backup of my BIOS modding notes because I keep forgetting how I did stuff the last time I modded a certain BIOS. I will probably be posting more notes like this for other cards.

Thursday, April 13, 2017

Some Ryzen power draw data

Ok so I finally have a operational Ryzen system and while the BCLK controls in the BIOS are being stupid I can still do other testing so here is that other testing.

The goal of this data is to figure out how the power draw of Ryzen is split between the cores and everything else like the SOC. For my testing I'm using Asrock's X370 Taichi and a Ryzen 7 1700. I'm not 100% sure how the 12V of the single 8pin CPU power connector is distributed but for the most part it doesn't matter because the focus here is figuring out core power draw in order to be able to gauge Vcore VRM requirements for overclocking.

So here is the data! Do note it is rather rough as far as error margin goes because CPU temperature was not maintained across test runs and higher temperatures do lead to elevated power draw. I didn't bother with more accurate measurement methods because chip to chip variance will cause larger power draw discrepancies than my measurement methods for this data.

Clock Voltage Core Config Power Draw
3.95Ghz 1.45V 4+4 170W
3.95Ghz 1.45V 3+3 135W
3.95Ghz 1.45V 2+2 100W
3.95Ghz 1.45V 1+1 60W
3.95Ghz 1.45V 4+0 100W
3.95Ghz 1.45V 3+0 75W
3.95Ghz 1.45V 2+0 65W
All tests were done with SMT turned on.

From this we can see that 1 core with SMT at 3.95GHz 1.45V consumes roughly 17W. The other things hooked to the 8pin connector pull a constant 30W. I suspect that most of this 30W would be the SOC portion of a Ryzen CPU.

This means that for an 8 core Ryzen chip Vcore current draw at 4Ghz/1.45V is only about 96A. 6 core CPUs would be about 72A and 4 cores only about 48A. Basically that means the Vcore VRM current through put required for your motherboard to not go up in flames is absolutely minuscule. Basically any AM4 motherboard should be capable of doing 4Ghz or more on 6 core CPUs. Motherboards with good 4 phase VRM designs should also have no issue pushing 4Ghz on 8 core CPUs.

Now of course this is only looking at current capability. Better VRMs also have better voltage regulation as well as current through put which means that they may clock a little better for any given voltage just because it won't fluctuate as much as it does on weaker VRMs. However it does mean that for daily OCs you really don't need the insane VRMs that come on boards like the Gigabyte Gaming K7, Asrock X370 Taichi/Professional Gaming or Asus Crosshair 6 Hero.

Also thanks to all the Patreons and shirt buyers for making this article possible!