Overclock.net - An Overclocking Community - View Single Post - [BIOS Mod] RX480 -> RX580 Conversions + How-to RX470/RX480 -> RX570/RX580

View Single Post
post #815 of (permalink) Old 10-14-2018, 05:48 PM
mynm
New to Overclock.net
 
mynm's Avatar
 
Join Date: Jan 2016
Posts: 623
Rep: 54 (Unique: 20)
Quote: Originally Posted by rootmoto View Post
@Vento041 @mynm @hellm Do I just copy the whole VOI from the RX 470 G1 Gaming BIOS to the RX 580 AORUS 4GB F81 BIOS?
I think that yes, because maybe is better for compatibility with your gpu. Then you can add more registeres to it.

@all

I have more things about the ASIC_Init table.

I think that what is doing the voltage offset to work are these values:

02 0D 02 05 03 52 43 "020D020503 MOVE param[02] [..XX] <- 0305 + 5243 CALL_TABLE 43 (SetVoltage)"

I have found this info about SetVoltage parameters:

// used by both SetVoltageTable v1.3 and v1.4
typedef struct _SET_VOLTAGE_PARAMETERS_V1_3
{
UCHAR ucVoltageType; // To tell which voltage to set up, VDDC/MVDDC/MVDDQ/VDDCI
UCHAR ucVoltageMode; // Indicate action: Set voltage level
USHORT usVoltageLevel; // real voltage level in unit of mv or Voltage Phase (0, 1, 2, .. )
}SET_VOLTAGE_PARAMETERS_V1_3;

//ucVoltageType
#define VOLTAGE_TYPE_VDDC 1
#define VOLTAGE_TYPE_MVDDC 2
#define VOLTAGE_TYPE_MVDDQ 3
#define VOLTAGE_TYPE_VDDCI 4
#define VOLTAGE_TYPE_VDDGFX 5
#define VOLTAGE_TYPE_PCC 6
#define VOLTAGE_TYPE_MVPP 7
#define VOLTAGE_TYPE_LEDDPM 8
#define VOLTAGE_TYPE_PCC_MVDD 9
#define VOLTAGE_TYPE_PCIE_VDDC 10
#define VOLTAGE_TYPE_PCIE_VDDR 11

#define VOLTAGE_TYPE_GENERIC_I2C_1 0x11
#define VOLTAGE_TYPE_GENERIC_I2C_2 0x12
#define VOLTAGE_TYPE_GENERIC_I2C_3 0x13
#define VOLTAGE_TYPE_GENERIC_I2C_4 0x14
#define VOLTAGE_TYPE_GENERIC_I2C_5 0x15
#define VOLTAGE_TYPE_GENERIC_I2C_6 0x16
#define VOLTAGE_TYPE_GENERIC_I2C_7 0x17
#define VOLTAGE_TYPE_GENERIC_I2C_8 0x18
#define VOLTAGE_TYPE_GENERIC_I2C_9 0x19
#define VOLTAGE_TYPE_GENERIC_I2C_10 0x1A

//SET_VOLTAGE_PARAMETERS_V3.ucVoltageMode
#define ATOM_SET_VOLTAGE 0 //Set voltage Level
#define ATOM_INIT_VOLTAGE_REGULATOR 3 //Init Regulator
#define ATOM_SET_VOLTAGE_PHASE 4 //Set Vregulator Phase, only for SVID/PVID regulator
#define ATOM_GET_MAX_VOLTAGE 6 //Get Max Voltage, not used from SetVoltageTable v1.3
#define ATOM_GET_VOLTAGE_LEVEL 6 //Get Voltage level from vitual voltage ID, not used for SetVoltage v1.4
#define ATOM_GET_LEAKAGE_ID 8 //Get Leakage Voltage Id ( starting from SMU7x IP ), SetVoltage v1.4

// define vitual voltage id in usVoltageLevel
#define ATOM_VIRTUAL_VOLTAGE_ID0 0xff01
#define ATOM_VIRTUAL_VOLTAGE_ID1 0xff02
#define ATOM_VIRTUAL_VOLTAGE_ID2 0xff03
#define ATOM_VIRTUAL_VOLTAGE_ID3 0xff04
#define ATOM_VIRTUAL_VOLTAGE_ID4 0xff05
#define ATOM_VIRTUAL_VOLTAGE_ID5 0xff06
#define ATOM_VIRTUAL_VOLTAGE_ID6 0xff07
#define ATOM_VIRTUAL_VOLTAGE_ID7 0xff08

So you can see that param[02] is 03 05 so I think that is 05 "define VOLTAGE_TYPE_VDDGFX" and 03 "define ATOM_INIT_VOLTAGE_REGULATOR"

So apparently is initializing the voltage regulator for the VDDGFX voltage, now i think it all makes sense .
mynm is offline