Undervolting Through Hex Editor- SimpleMining

CryptoTennyCryptoTenny Member Posts: 18
Due to recent events I have decided to forego bashing my head against the wall with windows 10- My alternative being the Linux based SimpleMining OS.

So far I am a huge fan of it. One (huge) weakpoint is that undervolting just doesn't work on it for reasons that I at one time had read but have now forgotten. Because of this, I am forced to deactivate one of my GPUs or exceed my 1200W PSUs capacity.

I have searched around for the past few days now and have found a few posts/tutorials on editing the BIOS in a hex editor that touched on the subject, some more than others, but none were comprehensive enough to strictly cover undervolting.

I've gotten as far as finding the 'VoltageObjectInfo' section of my bios and adding the voltage offset register(8D 00)using ATOM Bios reader and HxD/HexWorkshop, but past that I am stuck as far as what to do as far as adding something to bring my voltages down to the 900 mV for the core and clock that worked for me through Wattool when I was on windows.

Can anyone give me a hand?

Tutorials I've found useful so far-

Anorak Tech AMD VBIOS Hex Modification Tutorial

Adding VDDC offset to Fury X ROM



«134

Comments

  • scubabuddhascubabuddha Member Posts: 12
    I'm very interested in adjust BIOS settings on Linux too but haven't been able to find the information
  • CryptoTennyCryptoTenny Member Posts: 18
    It looks like there are a few people in the forum that know what they are doing with it, I just haven't seen it talked about too much
  • scubabuddhascubabuddha Member Posts: 12
    I've found some stuff by OhGodAGirl and @Wolf0 on here and bitcointalk that's really in-depth. I'm having a hard time figuring out the basics of where to start, though
  • CryptoTennyCryptoTenny Member Posts: 18
    Lol at that name.

    I recall reading something from wolf0 about it, but can't recall where it was. Link me?

    What are you stuck on?
  • ecs87ecs87 Dekalb, ILMember Posts: 339 ✭✭✭
    If you aren't able to maintain a stable system on windows then most likely undervolting via hex editing the BIOS is out of your league. Theres SO much more than just adding stuff. You need to remove things and modify offsets (in addition to calculating them). If anyone thinks they can just add voltage offsets to a rom effortlessly ask Wolf0. If I recall correctly he made a tool to do this for him in Linux (which gave me the idea to whip one up in c#).

    I've been running modded cards on Win7 and 10 (both 64 bit). Zero issues. The only issues I had was due to greedy tuning. Since your rig has been running fine on Linux and you can't undervolt, I can only assume that perhaps your windows undervolt settings for the cards were a bit over the edge hence the frustration over the instability?
  • scubabuddhascubabuddha Member Posts: 12

    Lol at that name.

    I recall reading something from wolf0 about it, but can't recall where it was. Link me?

    What are you stuck on?

    I'm stuck on how to modify BIOS settings in Linux (specifically working within amdgpu-pro), needing some kind of address map for the BIOS settings, and decoding those values.

    I'm not new to working with hardware at a low level but I am new to doing it for GPUs
  • CryptoTennyCryptoTenny Member Posts: 18
    ecs87 said:

    If you aren't able to maintain a stable system on windows then most likely undervolting via hex editing the BIOS is out of your league. Theres SO much more than just adding stuff. You need to remove things and modify offsets (in addition to calculating them). If anyone thinks they can just add voltage offsets to a rom effortlessly ask Wolf0. If I recall correctly he made a tool to do this for him in Linux (which gave me the idea to whip one up in c#).

    I've been running modded cards on Win7 and 10 (both 64 bit). Zero issues. The only issues I had was due to greedy tuning. Since your rig has been running fine on Linux and you can't undervolt, I can only assume that perhaps your windows undervolt settings for the cards were a bit over the edge hence the frustration over the instability?

    Lol try me. I can be taught. I'm just trying to fill my knowledge gap between what needs to be done in hex and what I did in polaris to get my desired state.

    It wasn't due to the card tuning at all. The last straw was when windows randomly, with no interference from myself, forgot where the onboard LAN was(works fine on linux.) Following that it just didn't see two of my cards anymore. Other than that I am just tired of dealing with endlessly installing/uninstalling drivers, patching, clock settings not sticking, CPU overhead, etc.... It's the least elegant solution to mining IMO. Nothing I couldn't have troubleshot, but I felt it wasn't the best use of my time when there are alternatives out there.
  • ecs87ecs87 Dekalb, ILMember Posts: 339 ✭✭✭
    Alright then. I've followed the OP here: http://www.overclock.net/t/1561372/hawaii-bios-editing-290-290x-295x2-390-390x. Yes, I know it mentions a different chipset, but it works on my Ellesmere chips as well (at least the reference cards).
  • iamnoobplzhelpiamnoobplzhelp Member Posts: 239 ✭✭
    You could also bake a undervolt into the bios you flash on to the card. Instead of starting at 800mv at the first step, start it at 700 or 725. That way your card starts a bit lower.
  • Wolf0Wolf0 Member Posts: 329 ✭✭✭
    ID the damn regulator before you start sticking in I2C codes - if that's an NCP81022, and not an IR3567B (or compatible), it'll just be ignored. Still, you're doing god knows what by sending random shit to it.
  • CryptoTennyCryptoTenny Member Posts: 18

    You could also bake a undervolt into the bios you flash on to the card. Instead of starting at 800mv at the first step, start it at 700 or 725. That way your card starts a bit lower.

    I was under the impression that any undervolting from Polaris just didn't work in linux. Are you saying that if you undershoot confirmed working values from windows, you can still effect the power consumption in Linux?
    ecs87 said:

    Alright then. I've followed the OP here: http://www.overclock.net/t/1561372/hawaii-bios-editing-290-290x-295x2-390-390x. Yes, I know it mentions a different chipset, but it works on my Ellesmere chips as well (at least the reference cards).

    Awesome! I'll have to dig into that and see what I can learn when things at work slow down. Thanks for the link.
    Wolf0 said:

    ID the damn regulator before you start sticking in I2C codes - if that's an NCP81022, and not an IR3567B (or compatible), it'll just be ignored. Still, you're doing god knows what by sending random shit to it.

    Is that something you can do without dissassembling your card? From ATOM BIOS reader maybe? I'd check but as I mentioned earlier I'm at work....
  • Wolf0Wolf0 Member Posts: 329 ✭✭✭

    You could also bake a undervolt into the bios you flash on to the card. Instead of starting at 800mv at the first step, start it at 700 or 725. That way your card starts a bit lower.

    I was under the impression that any undervolting from Polaris just didn't work in linux. Are you saying that if you undershoot confirmed working values from windows, you can still effect the power consumption in Linux?
    ecs87 said:

    Alright then. I've followed the OP here: http://www.overclock.net/t/1561372/hawaii-bios-editing-290-290x-295x2-390-390x. Yes, I know it mentions a different chipset, but it works on my Ellesmere chips as well (at least the reference cards).

    Awesome! I'll have to dig into that and see what I can learn when things at work slow down. Thanks for the link.
    Wolf0 said:

    ID the damn regulator before you start sticking in I2C codes - if that's an NCP81022, and not an IR3567B (or compatible), it'll just be ignored. Still, you're doing god knows what by sending random shit to it.

    Is that something you can do without dissassembling your card? From ATOM BIOS reader maybe? I'd check but as I mentioned earlier I'm at work....
    You can kinda do it without seeing it directly - if the VBIOS has an init regulator section, there's a field for the Regulator ID. You can see it here - I used a tool I wrote to read the VOI table and dump the init regulator section: https://ottrbutt.com/tmp/XFX580.jpg

    Of course, you'd have to do it by paw with a hex editor, but that should show you the basic idea. The ID in that one is 8 - which means CHL822x, but ironically always means IR3567B or compatible. Other ones you can ID this way is 16 - NCP81022. And so on. It's not 100%, but in a pinch, it works.
  • CryptoTennyCryptoTenny Member Posts: 18
    Is your program available to download? If not how can I find that section? I don't think it shows up in my ATOM pull, unless it is called something else.

    Command Tables:
    0000: ae26 Len 0085 (ASIC_Init)
    0001: aeac Len 0057 (GetDisplaySurfaceSize)
    0002: af04 Len 00b7 (ASIC_RegistersInit)
    0003: cbfe Len 009e (VRAM_BlockVenderDetection)
    0004: d698 Len 0267 (SetClocksRatio/DIGxEncoderControl)
    0005: afbc Len 010b (MemoryControllerInit)
    0006: - (EnableCRTCMemReq)
    0007: cc9c Len 001a (MemoryParamAdjust)
    0008: - (DVOEncoderControl)
    0009: b0c8 Len 00ff (GPIOPinControl)
    000a: b1c8 Len 0193 (SetEngineClock)
    000b: b35c Len 0122 (SetMemoryClock)
    000c: b47e Len 04cb (SetPixelClock)
    000d: b94a Len 0187 (DynamicClockGating)
    000e: bad2 Len 0007 (ResetMemoryDLL)
    000f: bada Len 008a (ResetMemoryDevice)
    0010: d40e Len 0031 (MemoryPLLInit)
    0011: d440 Len 0010 (AdjustDisplayPll)
    0012: beee Len 0111 (AdjustMemoryController)
    0013: c000 Len 0021 (EnableASIC_StaticPwrMgt)
    0014: c022 Len 008e (ASIC_StaticPwrMgtStatusChange/SetUniphyInstance)
    0015: - (DAC_LoadDetection)
    0016: - (LVTMAEncoderControl)
    0017: - (LCD1OutputControl)
    0018: - (DAC1EncoderControl)
    0019: - (DAC2EncoderControl)
    001a: - (DVOOutputControl)
    001b: c0b0 Len 02bf (CV1OutputControl)
    001c: - (GetConditionalGoldenSetting/SetCRTC_DPM_State)
    001d: - (TVEncoderControl)
    001e: e050 Len 0096 (TMDSAEncoderControl)
    001f: e0e6 Len 0189 (LVDSEncoderControl)
    0020: - (TV1OutputControl)
    0021: c370 Len 0078 (EnableScaler)
    0022: c3e8 Len 0074 (BlankCRTC)
    0023: c45c Len 003e (EnableCRTC)
    0024: - (GetPixelClock)
    0025: c49a Len 002c (EnableVGA_Render)
    0026: c4c6 Len 0022 (EnableVGA_Access/GetSCLKOverMCLKRatio)
    0027: - (SetCRTC_Timing)
    0028: c4e8 Len 0019 (SetCRTC_OverScan)
    0029: c502 Len 0080 (SetCRTC_Replication)
    002a: c582 Len 00c6 (SelectCRTC_Source)
    002b: c648 Len 01af (EnableGraphSurfaces)
    002c: c7f8 Len 004e (UpdateCRTC_DoubleBufferRegisters)
    002d: c846 Len 0090 (LUT_AutoFill)
    002e: e66a Len 02f9 (EnableHW_IconCursor)
    002f: c8d6 Len 003d (GetMemoryClock)
    0030: c914 Len 00d8 (GetEngineClock)
    0031: c9ec Len 0153 (SetCRTC_UsingDTDTiming)
    0032: - (ExternalEncoderControl)
    0033: e356 Len 01d1 (LVTMAOutputControl)
    0034: cb40 Len 00be (VRAM_BlockDetectionByStrap)
    0035: e59a Len 00cf (MemoryCleanUp)
    0036: ccb6 Len 0231 (ReadEDIDFromHWAssistedI2C/ProcessI2cChannelTransaction)
    0037: e270 Len 00e5 (WriteOneByteToHWAssistedI2C)
    0038: cee8 Len 005f (ReadHWAssistedI2CStatus/HPDInterruptService)
    0039: cf48 Len 000a (SpeedFanControl)
    003a: cf52 Len 000a (PowerConnectorDetection)
    003b: cf5c Len 003c (MC_Synchronization)
    003c: cf98 Len 017b (ComputeMemoryEnginePLL)
    003d: d114 Len 0007 (MemoryRefreshConversion)
    003e: d900 Len 0029 (VRAM_GetCurrentInfoBlock)
    003f: d11c Len 0165 (DynamicMemorySettings)
    0040: d282 Len 0100 (MemoryTraining)
    0041: d382 Len 008c (EnableSpreadSpectrumOnPPLL)

    Here is my VoltageObjectInfo section as well, if it is somewhere near there


  • Wolf0Wolf0 Member Posts: 329 ✭✭✭
    My program dumped VoltageObjectInfo - you just found it.
  • CryptoTennyCryptoTenny Member Posts: 18
    Oh I see now. So, how do I know what section of VoltageObjectInfo means what? Like how do I get to the point where I decide what to add/change? I'm not sure how to read it :/

    I see a couple '10's and on '08' which I read had something to do with the actual offset?
  • JukeboxJukebox Member Posts: 640 ✭✭✭

    Oh I see now. So, how do I know what section of VoltageObjectInfo means what? Like how do I get to the point where I decide what to add/change? I'm not sure how to read it :/

    I see a couple '10's and on '08' which I read had something to do with the actual offset?

    Firstly, sorry for my english, it's not my native language.

    It looks very similar to previous HD 7*** voltage schema.
    Just count 6 bytes. For example

    00 80 10 00 E8 03

    that marked in red on your screenshot

    last two E8 03 - hex voltage encoding. It needs to be reverted to 03 E8 - mean 1000 (decimal) or 1.000 V
    first four 00 80 10 00 - data for VRM to be set to have 1.000 V on GPU.

    B6 03 - 03 B6 = 950 = 0.95 V and so on.
  • Wolf0Wolf0 Member Posts: 329 ✭✭✭
    Jukebox said:

    Oh I see now. So, how do I know what section of VoltageObjectInfo means what? Like how do I get to the point where I decide what to add/change? I'm not sure how to read it :/

    I see a couple '10's and on '08' which I read had something to do with the actual offset?

    Firstly, sorry for my english, it's not my native language.

    It looks very similar to previous HD 7*** voltage schema.
    Just count 6 bytes. For example

    00 80 10 00 E8 03

    that marked in red on your screenshot

    last two E8 03 - hex voltage encoding. It needs to be reverted to 03 E8 - mean 1000 (decimal) or 1.000 V
    first four 00 80 10 00 - data for VRM to be set to have 1.000 V on GPU.

    B6 03 - 03 B6 = 950 = 0.95 V and so on.
    @Jukebox
    If he listened to you, he might brutally murder his GPU and maybe die in the resulting house fire. :P

    @CryptoTenny
    You need to parse the table - first part is the table header all tables have, 2-byte size, 1-byte format revision, 1-byte content revision. Assuming you're working on an RX card, it should be format revision 3, content revision 1.

    Now, parse each voltage object in turn... 1-byte type, 1-byte mode, 2-byte size. If it's not mode 3, it's not an init regulator section, and not what you care about. When you find one, it should be of type 1, which is core voltage. If you see one that's mode 3 & NOT type 1, show me that shit! Cause that'd be hella interesting.

    Anyways, once you've found your desired voltage object (one of type init regulator) the rest of the voltage object goes like this (NOTE: only applies to mode 3): 1-byte regulator ID, 1-byte I2C line, 1-byte I2C address (this is in 7-bit format, shift right by 1 to get 8-bit format), 1-byte control offset, and 1-byte flag (indicates whether regulator eats 1-byte or 2-byte codes.) After this, is three reserved bytes, probably to align the I2C table by a dword (4 bytes.)

    From this point, you have an I2C register, zero byte, I2C code to be written, zero byte... repeat. This table is terminated with the sequence 0xFF 0x00 (but you can also tell by checking the size of the voltage object, as I detailed earlier.)

    For IR3567B & compatible, the offset is a signed byte - meaning two's complement - which is why Jukebox's advice could have been fatal. The offset format is x * 6.25; example: 0x04 is +25mV, while 0xFC is -25mV.
  • JukeboxJukebox Member Posts: 640 ✭✭✭
    Wolf0 said:


    If he listened to you, he might brutally murder his GPU and maybe die in the resulting house fire. :P

    :)
    I was wrong, the table only looks like, but it's too short.

    Now trying to follow to your manual.


  • CryptoTennyCryptoTenny Member Posts: 18
    @Wolf0

    Appreciate all the detial- Thanks. So this is what I got from all the info you gave me. Does it look right?


    So from what I gathered, I need to be looking for a 0x01 03 for init regulator, which I could not find in my voltage object info as defined by the offset/length my ATOM reader .txt file. Is there somewhere else I should be looking?
  • Wolf0Wolf0 Member Posts: 329 ✭✭✭

    @Wolf0

    Appreciate all the detial- Thanks. So this is what I got from all the info you gave me. Does it look right?


    So from what I gathered, I need to be looking for a 0x01 03 for init regulator, which I could not find in my voltage object info as defined by the offset/length my ATOM reader .txt file. Is there somewhere else I should be looking?

    If it ain't in your VOI table, it ain't there. I'm currently experimenting with inserting them into VOI tables that don't have them, but it's major surgery to the VBIOS.
  • CryptoTennyCryptoTenny Member Posts: 18
    @Wolf0 So this is as far as I was able to get
    Wolf0 said:

    @Wolf0

    Appreciate all the detial- Thanks. So this is what I got from all the info you gave me. Does it look right?


    So from what I gathered, I need to be looking for a 0x01 03 for init regulator, which I could not find in my voltage object info as defined by the offset/length my ATOM reader .txt file. Is there somewhere else I should be looking?

    If it ain't in your VOI table, it ain't there. I'm currently experimenting with inserting them into VOI tables that don't have them, but it's major surgery to the VBIOS.
    Damn. Weren't you saying in a previous reply though that the RX 480s did have that register?
  • Wolf0Wolf0 Member Posts: 329 ✭✭✭

    @Wolf0 So this is as far as I was able to get

    Wolf0 said:

    @Wolf0

    Appreciate all the detial- Thanks. So this is what I got from all the info you gave me. Does it look right?


    So from what I gathered, I need to be looking for a 0x01 03 for init regulator, which I could not find in my voltage object info as defined by the offset/length my ATOM reader .txt file. Is there somewhere else I should be looking?

    If it ain't in your VOI table, it ain't there. I'm currently experimenting with inserting them into VOI tables that don't have them, but it's major surgery to the VBIOS.
    Damn. Weren't you saying in a previous reply though that the RX 480s did have that register?
    Nope - I said SOME did. Such as Sapphire Nitro+ 480s, for example, have it there, with a default overvolt of +25mV.
  • Wolf0Wolf0 Member Posts: 329 ✭✭✭

    @Wolf0

    Appreciate all the detial- Thanks. So this is what I got from all the info you gave me. Does it look right?


    So from what I gathered, I need to be looking for a 0x01 03 for init regulator, which I could not find in my voltage object info as defined by the offset/length my ATOM reader .txt file. Is there somewhere else I should be looking?

    @CryptoTenny That IS of type init regulator...
  • mike_domike_do Member Posts: 25
    edited August 2017
    @Wolf0 - firstly, thanks for what you do choose to share, which I can only assume is due to your generosity.

    I built a few NVIDIA rigs on Linux that let me set power ceilings with nvidia-smi. Dead simple. For some reason I saw opportunity with a shipment of RX470s offered to me for a decent price, so I bought 57 of them! All the watchdog and reporting work in Linux was gone after my 6th night in a row of trying to get it all to work. I f'in hate these cards with linux and 7 slot mobos! Onto Windows I regrettably went.

    Anyway, I am trying to get a memory voltage in VBOIS. If I can get this done I can migrate back to Linux and that would make me very happy.

    My cards are: "SAPPHIRE Radeon RX 470 11256-31-21G 4GB GDDR5 PCI-E (UEFI) (Built with Samsung Memory) Brown Box Version"

    I decoded the VBIOS per your instructions and as follows:

    0020: a90c Len 0042 Rev 03:01 (VoltageObjectInfo/VRAM_GPIO_DetectionInfo)

    4200030101030E001096200000000000FF0001070C000E0000000000000004002400000400000280100000001000520302000000840302001000B60300801000E803


    Table Header
    42 00 (size)
    03 (format revision)
    01 (content revision)

    VoltageObject
    01 (type)
    03 (mode)
    0E 00 (size)

    10 (regulator ID)
    96 (I2C line)
    20 (I2C address)
    00 (control offset)
    00 (flag)
    00 00 00 (reserved bytes)
    FF (I2C register)
    00 (zero byte)
    01 (I2C code to be written)
    07 (zero btye) ???
    0C
    00
    0E
    ...


    It seems I have found the init regulator (01 03) but thereafter I get lost as the voltage object doesn't seem to follow the pattern you wrote of.

    Are you able to offer and advice? At the end of the day I want the memory voltage to match core voltage at 810mv.

    Thank you!
  • Wolf0Wolf0 Member Posts: 329 ✭✭✭
    mike_do said:

    @Wolf0 - firstly, thanks for what you do choose to share, which I can only assume is due to your generosity.

    I built a few NVIDIA rigs on Linux that let me set power ceilings with nvidia-smi. Dead simple. For some reason I saw opportunity with a shipment of RX470s offered to me for a decent price, so I bought 57 of them! All the watchdog and reporting work in Linux was gone after my 6th night in a row of trying to get it all to work. I f'in hate these cards with linux and 7 slot mobos! Onto Windows I regrettably went.

    Anyway, I am trying to get a memory voltage in VBOIS. If I can get this done I can migrate back to Linux and that would make me very happy.

    My cards are: "SAPPHIRE Radeon RX 470 11256-31-21G 4GB GDDR5 PCI-E (UEFI) (Built with Samsung Memory) Brown Box Version"

    I decoded the VBIOS per your instructions and as follows:

    0020: a90c Len 0042 Rev 03:01 (VoltageObjectInfo/VRAM_GPIO_DetectionInfo)

    4200030101030E001096200000000000FF0001070C000E0000000000000004002400000400000280100000001000520302000000840302001000B60300801000E803


    Table Header
    42 00 (size)
    03 (format revision)
    01 (content revision)

    VoltageObject
    01 (type)
    03 (mode)
    0E 00 (size)

    10 (regulator ID)
    96 (I2C line)
    20 (I2C address)
    00 (control offset)
    00 (flag)
    00 00 00 (reserved bytes)
    FF (I2C register)
    00 (zero byte)
    01 (I2C code to be written)
    07 (zero btye) ???
    0C
    00
    0E
    ...


    It seems I have found the init regulator (01 03) but thereafter I get lost as the voltage object doesn't seem to follow the pattern you wrote of.

    Are you able to offer and advice? At the end of the day I want the memory voltage to match core voltage at 810mv.

    Thank you!
    Yes - you gotta pay attention! The I2C field is terminated by the sequence "FF 00" - you're reading PAST the end, it looks like.
  • mike_domike_do Member Posts: 25
    edited August 2017
    @Wolf0 Thank you. At the point this annoys you lmk and I will stop tagging.

    The best I can make of it after terminating per your advice is as such:


    42000301 01030E00 1096200000000000FF00 01070C00 0E00000000000000 04002400 000400000280100000001000520302000000840302001000B60300801000E803

    Table Header
    42 00 (size)
    03 (format revision)
    01 (content revision)

    VoltageObject 0
    01 (type)
    03 (mode)
    0E 00 (size)
    10 (regulator ID)
    96 (I2C line)
    20 (I2C address)
    00 (control offset)
    00 (flag)
    00 00 00 (reserved bytes)
    FF 00 (terminate)

    Voltage Object 1
    01
    07
    0C 00
    0E00000000000000

    Voltage Object 2
    04
    00
    24 00
    000400000280100000001000520302000000840302001000B60300801000E803


    Voltage Object 3 ends in the 6-byte string @Jukebox alluded to above, specifically:

    00 80 10 00 E8 03

    This is interesting as the E8 03 transcribes to 1000mv which is where the memory voltage defaults.

    However, I am afraid to edit this down to 810mv because I don't fully understand your criticism of @Jukebox 's original comment (which he seemed to admit was problematic.

    I am hoping the I2C "control offset" being 00 means that I can simply edit the E8 03 to whatever 810 is in reverse hex, as there is no offset.

    I am happy to do legwork here, but I don't know where to read. :)

    Thanks!
  • Wolf0Wolf0 Member Posts: 329 ✭✭✭
    mike_do said:

    @Wolf0 Thank you. At the point this annoys you lmk and I will stop tagging.

    The best I can make of it after terminating per your advice is as such:


    42000301 01030E00 1096200000000000FF00 01070C00 0E00000000000000 04002400 000400000280100000001000520302000000840302001000B60300801000E803

    Table Header
    42 00 (size)
    03 (format revision)
    01 (content revision)

    VoltageObject 0
    01 (type)
    03 (mode)
    0E 00 (size)
    10 (regulator ID)
    96 (I2C line)
    20 (I2C address)
    00 (control offset)
    00 (flag)
    00 00 00 (reserved bytes)
    FF 00 (terminate)

    Voltage Object 1
    01
    07
    0C 00
    0E00000000000000

    Voltage Object 2
    04
    00
    24 00
    000400000280100000001000520302000000840302001000B60300801000E803


    Voltage Object 3 ends in the 6-byte string @Jukebox alluded to above, specifically:

    00 80 10 00 E8 03

    This is interesting as the E8 03 transcribes to 1000mv which is where the memory voltage defaults.

    However, I am afraid to edit this down to 810mv because I don't fully understand your criticism of @Jukebox 's original comment (which he seemed to admit was problematic.

    I am happy to do legwork here, but I don't know where to read. :)

    Thanks!
    It doesn't bother me! Now you are doing it correctly. In between the reserved bytes and the terminate go your I2C codes... then comes fixing all the table offsets & shit.
  • mike_domike_do Member Posts: 25
    edited August 2017
    @Wolf0 Lots of meat there. I will go and work on it.

    One question as an input to that work. How do I learn which regulator the card has? I see, per your guide, the regulator ID is hex 10. Not sure where to do a lookup on where that's IR3567B or otherwise.
  • Wolf0Wolf0 Member Posts: 329 ✭✭✭
    Shit... that's an odd one... I know this, I know this...

    Yeah! You have a uP1637.
  • midoprincemidoprince Member Posts: 198 ✭✭✭
    Wolf0 said:

    Shit... that's an odd one... I know this, I know this...

    Yeah! You have a uP1637.

    did u try edit 1080ti ?
Sign In or Register to comment.