390x bios leaked

Discussion in 'Videocards - AMD Radeon Drivers Section' started by WarDocsRevenge, Jun 16, 2015.

  1. gupsterg

    gupsterg Member Guru

    Messages:
    177
    Likes Received:
    1
    GPU:
    RX VEGA 64
  2. OneB1t

    OneB1t Master Guru

    Messages:
    262
    Likes Received:
    0
    GPU:
    R9 290X@R9 390X 1050/1325
    because this card have different size powerplay table send me this bios in PM and ill fix it asap ;)

    (thats why there is unknown card in powertable size)

    also this modified 390X bios with powertable from 290X is malformed :D and dunno how to fix it :( (as its 660 size powerplay table but there is just 648 table included)

    EDIT: both me and DDSZ fixed sapphire 390X bios read :D also refreshed exe file on repository for new version :)
     
    Last edited: Jun 30, 2015
  3. gupsterg

    gupsterg Member Guru

    Messages:
    177
    Likes Received:
    1
    GPU:
    RX VEGA 64
    I'm not a programmer so no use on that front.

    Is there a way that program can like atomdis first calculate tables then pull data from areas and display.

    I was also playing with VBE7 last night and some 7xxx roms, are you able to dissemble that program to see how it is being accurate at reading sections of bios to display data in correct format.

    Another thing I was wondering location data in bios for a read item is not displayed or am I missing something?

    Cheers to all putting in time & effort into program! :)
     
  4. OneB1t

    OneB1t Master Guru

    Messages:
    262
    Likes Received:
    0
    GPU:
    R9 290X@R9 390X 1050/1325
    the first value is location in bios :) (its in decimal form not hexa as i was to lazy to convert it back to hex form)

    so 42934 -- 1000 Mhz means this value can be found on position 42934 (or 0xA7B6)

    program also show where table starts thats powertablelocation field

    EDIT: where is there just 2 bioses on techpowerup? :-( it will be awesome to have more of them for testing
     
    Last edited: Jun 30, 2015

  5. gupsterg

    gupsterg Member Guru

    Messages:
    177
    Likes Received:
    1
    GPU:
    RX VEGA 64
    1 bios was from the original HardOCP forum post, that link is not working.

    Here is link to my collection on googledrive.

    MD5 Checksum: 0C6369A8C6800E2A1A0FA5E63BFC7BBE

    They're all from this thread, I think I'm only missing a couple as been wrapped up other stuff.

    So program only work with preconfigured tables? it can not calculate tables length if not programed?
     
  6. OneB1t

    OneB1t Master Guru

    Messages:
    262
    Likes Received:
    0
    GPU:
    R9 290X@R9 390X 1050/1325
    it calculate table lenght and position in whole ROM file but position of each table inside powertable must be hardcoded :) but i think now it will support like 90% of all released bioses from 290/390 cards

    it opens all bioses from your collection except xfx390x@290xPowerPlay.rom as this bios is malformed (there is value 660 but in reality table is only 648 bits long so thats why its broken) i can prolly make exception for this BIOS only but its not really solution im happy about as this BIOS is broken :) and need to adjust 660 to 648 in hex to be parsed without errors

    these are now supported values:
    Code:
                                case 660:
                                    powerTablesize.Text += " - R9 390/390X";
                                    voltageTableOffset = 319;
                                    memoryFrequencyTableOffset = 278;
                                    gpuFrequencyTableOffset = 231;
                                    VCELimitTableOffset = 396;
                                    AMUAndACPLimitTableOffset = 549;
                                    UVDLimitTableOffset = 441;
                                    break;
                                case 662:
                                    powerTablesize.Text += " - R9 390/390X(Sapphire)";
                                    voltageTableOffset = 321;
                                    memoryFrequencyTableOffset = 280;
                                    gpuFrequencyTableOffset = 233;
                                    VCELimitTableOffset = 398;
                                    AMUAndACPLimitTableOffset = 551;
                                    UVDLimitTableOffset = 443;
                                    break;
                                case 648:
                                    powerTablesize.Text += " - R9 290/290X";
                                    voltageTableOffset = 307;
                                    memoryFrequencyTableOffset = 266;
                                    gpuFrequencyTableOffset = 219;
                                    VCELimitTableOffset = 384;
                                    AMUAndACPLimitTableOffset = 537;
                                    UVDLimitTableOffset = 429;
                                    break;
                                case 658: // Slith mining bios for 290/290X
                                    powerTablesize.Text += " - R9 290/290X The Stilt mining bios";
                                    voltageTableOffset = 316;
                                    memoryFrequencyTableOffset = 275;
                                    gpuFrequencyTableOffset = 228;
                                    VCELimitTableOffset = 394;
                                    AMUAndACPLimitTableOffset = 547;
                                    UVDLimitTableOffset = 439;
                                    break;
                                case 642: // PT1/PT3
                                    powerTablesize.Text += " - PT1/PT3 bios";
                                    voltageTableOffset = 300;
                                    memoryFrequencyTableOffset = 259;
                                    gpuFrequencyTableOffset = 212;
                                    VCELimitTableOffset = 378;
                                    AMUAndACPLimitTableOffset = 531;
                                    UVDLimitTableOffset = 423;
                                    break;
     
    Last edited: Jun 30, 2015
  7. gupsterg

    gupsterg Member Guru

    Messages:
    177
    Likes Received:
    1
    GPU:
    RX VEGA 64
    Ahh thank you for taking a look :) , I have yet to view 390 / X bios been more transfixed on The Slit roms to do voltage.

    That bios from post 264.
     
  8. OneB1t

    OneB1t Master Guru

    Messages:
    262
    Likes Received:
    0
    GPU:
    R9 290X@R9 390X 1050/1325
    yes exactly this bios
    LumPenPacK forgotten to fix table lenght value so this bios is malformed (it still works because this value is probably not needed) or maybe just because of pure luck :D

    EDIT: but even if we can read what slith done to that bios i still dont understand how to modify voltage or which powerstates are used in reality
     
  9. gupsterg

    gupsterg Member Guru

    Messages:
    177
    Likes Received:
    1
    GPU:
    RX VEGA 64
    I will try to explain in words what I understand.

    DPM = Dynamic Power Management , there are 8 states. Each state has Voltage associated with it.

    Then we have five sections in bios.

    SclkVddcDependencyTable = voltage depending on GPU clock separated into DPM0 -DPM7
    MclkVddcDependencyTable = voltage depending on RAM clock separated into DPM0 -DPM7
    StartVCELimitTable = VCE (Video Coding Engine) mode voltage separated into DPM0 -DPM7
    StartUVDLimitTable = UVD (Unified Video Decoder) mode voltage separated into DPM0 -DPM7
    StartSAMULimitTable = SAMU (security asset management unit) mode voltage depending on GPU clock separated into DPM0 -DPM7
    StartACPLimitTable = ACP (Average Consumed Power) voltage depending on GPU clock separated into DPM0 -DPM7

    When Slit is changing voltages he is applying to all 5 sections.

    Now you may recall a pink marked section.

    [​IMG]

    Now I think he didn't change that as he states:-

    GPU EVV VDDC dependency removed, changed to static voltage levels (VID based)

    *** Edit ***

    I was just googling GPU EVV VDDC and a hit in google showed Link:- http://permalink.gmane.org/gmane.linux.kernel.commits.head/417556

    It states "This updates atombios.h with the latest changes required for hawaii."

    I had got atomdis from Link:- http://cgit.freedesktop.org/~mhopf/AtomDis/

    And log not show that update, Link:- http://cgit.freedesktop.org/~mhopf/AtomDis/log/
     
    Last edited: Jul 1, 2015
  10. OneB1t

    OneB1t Master Guru

    Messages:
    262
    Likes Received:
    0
    GPU:
    R9 290X@R9 390X 1050/1325

  11. gupsterg

    gupsterg Member Guru

    Messages:
    177
    Likes Received:
    1
    GPU:
    RX VEGA 64
    Are you sure?

    When I click your link and click download it take me to where I got AtomDis.

    Link:- https://youtu.be/tp6_gqwQB_U

    It does not state that update in log.
     
  12. OneB1t

    OneB1t Master Guru

    Messages:
    262
    Likes Received:
    0
    GPU:
    R9 290X@R9 390X 1050/1325
    yep it seems like this is old repository
     
  13. gupsterg

    gupsterg Member Guru

    Messages:
    177
    Likes Received:
    1
    GPU:
    RX VEGA 64
    So how do we get new? or we can't access?
     
  14. OneB1t

    OneB1t Master Guru

    Messages:
    262
    Likes Received:
    0
    GPU:
    R9 290X@R9 390X 1050/1325
    i dont think it will compile just with new atombios.h :/ there will be alot of code missing
     
  15. gupsterg

    gupsterg Member Guru

    Messages:
    177
    Likes Received:
    1
    GPU:
    RX VEGA 64

  16. gupsterg

    gupsterg Member Guru

    Messages:
    177
    Likes Received:
    1
    GPU:
    RX VEGA 64
    I have yet to test voltage mod using method we see in powerplay of XFX vs Slit rom due to 3 hex code. Which we have no understanding of and also due to how The Slit stated he changed bios to fixed VID.

    [​IMG]

    I was again re-reading The Slits information and besides the 1.1125V to 1.2375V roms he did a 1.2750V . On the page he states :-

    These programs will show a 37.5mV offset by default now, thats normal.
    The offset is adjustable as usual.

    Original post by The Slit

    PowerPlay table between between V32 (DPM7 1.2375v) V2C (DPM7 1.2750) is identical, so GPU voltage offset is coded somewhere else to gain the extra 37.5mV. We aslo have bobrix who tested Sapphire powerplay modded into another bios yielding no GPU voltage offset when that Sapphire bios does this function.

    So like Sapphire The Slit know how to make bios with differing GPU voltage offset!

    GPIO_I2C_Info table between V32 & V2C is aslo identical. Here is links to tables for V2C & V32 if someone can also help identify code change. Due to some tables having different location between the 2 simple compare between bios not working.

    *** edit ***

    These are identical between V2C & V32
    Command tables:-
    0043: (SetVoltage)
    0046: (SetupHWAssistedI2CStatus)

    Data tables:-
    000a: (GPIO_I2C_Info)
    000f: (PowerPlayInfo)
    001f: (ASIC_ProfilingInfo/ASIC_VDDCI_Info)

    This data table is differing 0020: (VoltageObjectInfo/VRAM_GPIO_DetectionInfo)

    I then compared table lengths between Stock XFX = 192 V32 = 200 V2C = 204.

    I think comparing XFX with V32 will get :-

    GPU EVV VDDC dependency removed, changed to static voltage levels (VID based)

    and may include :-

    Enhanced the VRM configuration, yielding >5% improvement in VRM efficiency on the medium leaking test samples.

    Then comparing V32 to V2C should get gpu voltage offset.
     
    Last edited: Jul 1, 2015
  17. asder00

    asder00 Don Di Driver Staff Member

    Messages:
    1,193
    Likes Received:
    1
    GPU:
    RX VEGA 64 Liquid
    DB in XFX BIOS is TDP value (DB hex to dec = 219) 219w
    DA in XFX BIOS is Maximum Power Delivery Limit value (DA hex to dec = 218) 218w

    D0 in V3A Slit BIOS is TDP value (D0 hex to dec = 208) 208w
    D0 in V3A Slit BIOS is Maximum Power Delivery Limit value (D0 hex to dec = 208) 208w

    TDP: "Change TDP limit based on customer's thermal solution"
    Maximum Power Delivery Limit: "This power limit is the total chip power that we need to stay within in order to not violate the PCIe rail/connector power delivery"

    The other 03 and 04 i do not know yet.
     
    Last edited: Jul 1, 2015
  18. gupsterg

    gupsterg Member Guru

    Messages:
    177
    Likes Received:
    1
    GPU:
    RX VEGA 64
    Thanks asder00 :) , Just marking 0020: (VoltageObjectInfo/VRAM_GPIO_DetectionInfo) XFX vs V32 vs V2C . First hex denote length of table IMO ...
     
  19. OneB1t

    OneB1t Master Guru

    Messages:
    262
    Likes Received:
    0
    GPU:
    R9 290X@R9 390X 1050/1325
    but there is more than just 1 value of 208 so which is TDP and which is poower limit?

    0xA9CA -- 257
    0xA9CC -- 208
    0xA9CE -- 208
    0xA9D0 -- 200
    0xA9D2 -- 0
    0xA9D4 -- 0
    0xA9D6 -- 1600
    0xA9D8 -- 2600
    0xA9DA -- 208
    0xA9DC -- 95
    0xA9DE -- 0
    0xA9E0 -- 0
    0xA9E2 -- 0
    0xA9E4 -- 0
    0xA9E6 -- 0
    0xA9E8 -- 0

    also these 2 values differs alot between bioses

    0xA9D6 -- 1600
    0xA9D8 -- 2600
     
    Last edited: Jul 1, 2015
  20. b2rdark

    b2rdark Member

    Messages:
    18
    Likes Received:
    0
    GPU:
    7870 XT
    You guys trying to make a new bios editor?
     

Share This Page