Overclock.net › Forums › Graphics Cards › AMD/ATI › Hawaii Bios Editing ( 290 / 290X / 295X2 / 390 / 390X )
New Posts  All Forums:Forum Nav:

Hawaii Bios Editing ( 290 / 290X / 295X2 / 390 / 390X ) - Page 297

post #2961 of 3751
Got them.

Which table am I looking for?
Quote:

290X bios

Command Tables:
0000: b32c Len 0091 (ASIC_Init)
0001: b3be Len 0057 (GetDisplaySurfaceSize)
0002: b416 Len 00d4 (ASIC_RegistersInit)
0003: d59c Len 0118 (VRAM_BlockVenderDetection)
0004: eafc Len 01ca (SetClocksRatio/DIGxEncoderControl)
0005: b4ea Len 06a9 (MemoryControllerInit)
0006: - (EnableCRTCMemReq)
0007: - (MemoryParamAdjust)
0008: - (DVOEncoderControl)
0009: bb94 Len 00ff (GPIOPinControl)
000a: bc94 Len 0123 (SetEngineClock)
000b: bdb8 Len 00fe (SetMemoryClock)
000c: beb6 Len 047e (SetPixelClock)
000d: c334 Len 0186 (DynamicClockGating)
000e: c4ba Len 0050 (ResetMemoryDLL)
000f: c50a Len 0062 (ResetMemoryDevice)
0010: e172 Len 0166 (MemoryPLLInit)
0011: e2d8 Len 0089 (AdjustDisplayPll)
0012: c8b4 Len 0111 (AdjustMemoryController)
0013: - (EnableASIC_StaticPwrMgt)
0014: c9c6 Len 0076 (ASIC_StaticPwrMgtStatusChange/SetUniphyInstance)
0015: - (DAC_LoadDetection)
0016: - (LVTMAEncoderControl)
0017: - (LCD1OutputControl)
0018: - (DAC1EncoderControl)
0019: - (DAC2EncoderControl)
001a: - (DVOOutputControl)
001b: ca3e Len 0203 (CV1OutputControl)
001c: f5a6 Len 0038 (GetConditionalGoldenSetting/SetCRTC_DPM_State)
001d: - (TVEncoderControl)
001e: f5de Len 00cf (TMDSAEncoderControl)
001f: f6ae Len 0127 (LVDSEncoderControl)
0020: - (TV1OutputControl)
0021: cc42 Len 0078 (EnableScaler)
0022: ccba Len 0074 (BlankCRTC)
0023: cd2e Len 003e (EnableCRTC)
0024: cd6c Len 0120 (GetPixelClock)
0025: ce8c Len 002c (EnableVGA_Render)
0026: ceb8 Len 0022 (EnableVGA_Access/GetSCLKOverMCLKRatio)
0027: - (SetCRTC_Timing)
0028: ceda Len 0019 (SetCRTC_OverScan)
0029: - (SetCRTC_Replication)
002a: cef4 Len 00b3 (SelectCRTC_Source)
002b: cfa8 Len 01bb (EnableGraphSurfaces)
002c: d164 Len 005d (UpdateCRTC_DoubleBufferRegisters)
002d: d1c2 Len 00d9 (LUT_AutoFill)
002e: - (EnableHW_IconCursor)
002f: d29c Len 004a (GetMemoryClock)
0030: d2e6 Len 00ab (GetEngineClock)
0031: d392 Len 014b (SetCRTC_UsingDTDTiming)
0032: - (ExternalEncoderControl)
0033: - (LVTMAOutputControl)
0034: d4de Len 00be (VRAM_BlockDetectionByStrap)
0035: d6b4 Len 00e8 (MemoryCleanUp)
0036: d79c Len 0239 (ReadEDIDFromHWAssistedI2C/ProcessI2cChannelTransaction)
0037: f7d6 Len 0115 (WriteOneByteToHWAssistedI2C)
0038: d9d6 Len 005f (ReadHWAssistedI2CStatus/HPDInterruptService)
0039: da36 Len 000a (SpeedFanControl)
003a: da40 Len 000a (PowerConnectorDetection)
003b: da4a Len 0018 (MC_Synchronization)
003c: da62 Len 012d (ComputeMemoryEnginePLL)
003d: db90 Len 005f (MemoryRefreshConversion)
003e: ecc6 Len 0029 (VRAM_GetCurrentInfoBlock)
003f: dbf0 Len 01c0 (DynamicMemorySettings)
0040: ddb0 Len 034d (MemoryTraining)
0041: e0fe Len 0074 (EnableSpreadSpectrumOnPPLL)
0042: - (TMDSAOutputControl)
0043: e362 Len 01a1 (SetVoltage)
0044: - (DAC1OutputControl)
0045: f8ec Len 0071 (DAC2OutputControl)
0046: ea08 Len 00f4 (SetupHWAssistedI2CStatus)
0047: c56c Len 027e (ClockSource)
0048: c7ea Len 00c9 (MemoryDeviceInit)
0049: - (EnableYUV)
004a: - (DIG1EncoderControl)
004b: - (DIG2EncoderControl)
004c: ecf0 Len 0634 (DIG1TransmitterControl/UNIPHYTransmitterControl)
004d: - (DIG2TransmitterControl/LVTMATransmitterControl)
004e: f324 Len 0225 (ProcessAuxChannelTransaction)
004f: f54a Len 005c (DPEncoderService)

Quote:
290 Bios

Command Tables:
0000: b32c Len 0091 (ASIC_Init)
0001: b3be Len 0057 (GetDisplaySurfaceSize)
0002: b416 Len 00d4 (ASIC_RegistersInit)
0003: d59c Len 0118 (VRAM_BlockVenderDetection)
0004: eafc Len 01ca (SetClocksRatio/DIGxEncoderControl)
0005: b4ea Len 06a9 (MemoryControllerInit)
0006: - (EnableCRTCMemReq)
0007: - (MemoryParamAdjust)
0008: - (DVOEncoderControl)
0009: bb94 Len 00ff (GPIOPinControl)
000a: bc94 Len 0123 (SetEngineClock)
000b: bdb8 Len 00fe (SetMemoryClock)
000c: beb6 Len 047e (SetPixelClock)
000d: c334 Len 0186 (DynamicClockGating)
000e: c4ba Len 0050 (ResetMemoryDLL)
000f: c50a Len 0062 (ResetMemoryDevice)
0010: e172 Len 0166 (MemoryPLLInit)
0011: e2d8 Len 0089 (AdjustDisplayPll)
0012: c8b4 Len 0111 (AdjustMemoryController)
0013: - (EnableASIC_StaticPwrMgt)
0014: c9c6 Len 0076 (ASIC_StaticPwrMgtStatusChange/SetUniphyInstance)
0015: - (DAC_LoadDetection)
0016: - (LVTMAEncoderControl)
0017: - (LCD1OutputControl)
0018: - (DAC1EncoderControl)
0019: - (DAC2EncoderControl)
001a: - (DVOOutputControl)
001b: ca3e Len 0203 (CV1OutputControl)
001c: f5a6 Len 0038 (GetConditionalGoldenSetting/SetCRTC_DPM_State)
001d: - (TVEncoderControl)
001e: f5de Len 00cf (TMDSAEncoderControl)
001f: f6ae Len 0127 (LVDSEncoderControl)
0020: - (TV1OutputControl)
0021: cc42 Len 0078 (EnableScaler)
0022: ccba Len 0074 (BlankCRTC)
0023: cd2e Len 003e (EnableCRTC)
0024: cd6c Len 0120 (GetPixelClock)
0025: ce8c Len 002c (EnableVGA_Render)
0026: ceb8 Len 0022 (EnableVGA_Access/GetSCLKOverMCLKRatio)
0027: - (SetCRTC_Timing)
0028: ceda Len 0019 (SetCRTC_OverScan)
0029: - (SetCRTC_Replication)
002a: cef4 Len 00b3 (SelectCRTC_Source)
002b: cfa8 Len 01bb (EnableGraphSurfaces)
002c: d164 Len 005d (UpdateCRTC_DoubleBufferRegisters)
002d: d1c2 Len 00d9 (LUT_AutoFill)
002e: - (EnableHW_IconCursor)
002f: d29c Len 004a (GetMemoryClock)
0030: d2e6 Len 00ab (GetEngineClock)
0031: d392 Len 014b (SetCRTC_UsingDTDTiming)
0032: - (ExternalEncoderControl)
0033: - (LVTMAOutputControl)
0034: d4de Len 00be (VRAM_BlockDetectionByStrap)
0035: d6b4 Len 00e8 (MemoryCleanUp)
0036: d79c Len 0239 (ReadEDIDFromHWAssistedI2C/ProcessI2cChannelTransaction)
0037: f7d6 Len 0115 (WriteOneByteToHWAssistedI2C)
0038: d9d6 Len 005f (ReadHWAssistedI2CStatus/HPDInterruptService)
0039: da36 Len 000a (SpeedFanControl)
003a: da40 Len 000a (PowerConnectorDetection)
003b: da4a Len 0018 (MC_Synchronization)
003c: da62 Len 012d (ComputeMemoryEnginePLL)
003d: db90 Len 005f (MemoryRefreshConversion)
003e: ecc6 Len 0029 (VRAM_GetCurrentInfoBlock)
003f: dbf0 Len 01c0 (DynamicMemorySettings)
0040: ddb0 Len 034d (MemoryTraining)
0041: e0fe Len 0074 (EnableSpreadSpectrumOnPPLL)
0042: - (TMDSAOutputControl)
0043: e362 Len 01a1 (SetVoltage)
0044: - (DAC1OutputControl)
0045: f8ec Len 0071 (DAC2OutputControl)
0046: ea08 Len 00f4 (SetupHWAssistedI2CStatus)
0047: c56c Len 027e (ClockSource)
0048: c7ea Len 00c9 (MemoryDeviceInit)
0049: - (EnableYUV)
004a: - (DIG1EncoderControl)
004b: - (DIG2EncoderControl)
004c: ecf0 Len 0634 (DIG1TransmitterControl/UNIPHYTransmitterControl)
004d: - (DIG2TransmitterControl/LVTMATransmitterControl)
004e: f324 Len 0225 (ProcessAuxChannelTransaction)
004f: f54a Len 005c (DPEncoderService)
post #2962 of 3751
TV1OutputControl

command_table 0000fbdc #20 (TV1OutputControl):

Size 00d5
Format Rev. 01
Param Rev. 00
Content Rev. 01
Attributes: Work space size 02 longs
Parameter space size 00 longs
Table update indicator 0

0006: 370000 SET_ATI_PORT 0000 (INDIRECT_IO_MM)
0009: 66ff SET_DATA_BLOCK ff (this table)
000b: 2d0d42c100 ADD WS_DATAPTR [..XX] <- 00c1
0010: 560041 CLEAR WS_REMIND/HI32 [XXXX]
0013: 03214100 MOVE WS_REMIND/HI32 [...X] <- param[00] [...X]
0017: 150d4102 SHIFT_LEFT WS_REMIND/HI32 [..XX] by 02
001b: 2d0a4241 ADD WS_DATAPTR [..XX] <- WS_REMIND/HI32 [..XX]
001f: 0304010000 MOVE work[01] [XXXX] <- data[0000] [XXXX]
0024: 66ff SET_DATA_BLOCK ff (this table)
0026: 2d0d42cd00 ADD WS_DATAPTR [..XX] <- 00cd
002b: 03050000000040 MOVE work[00] [XXXX] <- 40000000
0032: 560040 CLEAR WS_QUOT/LOW32 [XXXX]
0035: 54000000 CLEAR reg[0000] [XXXX]
0039: 034c000000 MOVE work[00] [.XX.] <- data[0000] [..XX]
003e: 010200c200 MOVE reg[c200] [XXXX] <- work[00] [XXXX]
0043: 010a000001 MOVE reg[0000] [..XX] <- work[01] [..XX]
0048: 078d0100fdff AND reg[0001] [XX..] <- fffd
004e: 2d0d420200 ADD WS_DATAPTR [..XX] <- 0002
0053: 2d254001 ADD WS_QUOT/LOW32 [...X] <- 01
0057: 3e254004 COMP WS_QUOT/LOW32 [...X] <- 04
005b: 493900 JUMP_NotEqual 0039
005e: 010500c2000000e0 MOVE reg[c200] [XXXX] <- e0000000
0066: 5b EOT
0067: 7a6b003e71410047a5003371410003394100032541ff2d254101032243414c8a
4144497d000f8a4144336541013e654100497d00011a000001019a0100412d0d
4202002d2540013e254004493900010500c2000000e05b7a14006f2270223d26
df26402241220000000100020003
CTB_DS 107 bytes



this is line you looking for
0048: 078d0100fdff AND reg[0001] [XX..] <- fffd

by changing fdff to feff or 0000 something else you can mask/unmask CUs (i think that 0000 means all unlocked biggrin.gif)

here is 290 rom modified to 290X
http://mysharegadget.com/582078673

if you want to mess with it correct offset to mess with is 0x000FC28
Edited by OneB1t - 7/7/16 at 9:59am
FX
(7 items)
 
  
CPUMotherboardGraphicsRAM
FX-8320@4.4Ghz M5A99FX PRO R2.0 AMD Radeon R9 290X Patriot Memory  
Hard DriveCoolingMonitor
Samsung 840 Raijintek Ereboss iiyama X4071UHSU (4K) 
  hide details  
Reply
FX
(7 items)
 
  
CPUMotherboardGraphicsRAM
FX-8320@4.4Ghz M5A99FX PRO R2.0 AMD Radeon R9 290X Patriot Memory  
Hard DriveCoolingMonitor
Samsung 840 Raijintek Ereboss iiyama X4071UHSU (4K) 
  hide details  
Reply
post #2963 of 3751
which software are you using to get/set this information?
Quote:
0048: 078d0100fdff AND reg[0001] [XX..] <- fffd

I usually use atomdis to find the offset to edit on Hexeditor. I dont know where you got all that information lol

sorry
post #2964 of 3751
./atomdis my.rom c 20
it will dissasemble command table so you can see commands in it
TV1OutputControl is function used to set internal registers of card on initialization
you can see that this table (function) is missing on 290X/390X cards as these cards dont need to set mask bits for CU hide

use rom i uploaded for experiments its allready prepared for CU hiding just find correct masking bits (you need to fix checksum after messing with it by hand with hawaii bios reader os some other tool)

this command table (function) does not look same in every bios so its good idea to use rom i uploaded biggrin.gif
Edited by OneB1t - 7/7/16 at 10:28am
FX
(7 items)
 
  
CPUMotherboardGraphicsRAM
FX-8320@4.4Ghz M5A99FX PRO R2.0 AMD Radeon R9 290X Patriot Memory  
Hard DriveCoolingMonitor
Samsung 840 Raijintek Ereboss iiyama X4071UHSU (4K) 
  hide details  
Reply
FX
(7 items)
 
  
CPUMotherboardGraphicsRAM
FX-8320@4.4Ghz M5A99FX PRO R2.0 AMD Radeon R9 290X Patriot Memory  
Hard DriveCoolingMonitor
Samsung 840 Raijintek Ereboss iiyama X4071UHSU (4K) 
  hide details  
Reply
post #2965 of 3751
oh I see!

thanks man! rep
post #2966 of 3751
report back if you make any progress

it will be interesting to see how high you can clock with 1280 shaders or less biggrin.gifbiggrin.gif
FX
(7 items)
 
  
CPUMotherboardGraphicsRAM
FX-8320@4.4Ghz M5A99FX PRO R2.0 AMD Radeon R9 290X Patriot Memory  
Hard DriveCoolingMonitor
Samsung 840 Raijintek Ereboss iiyama X4071UHSU (4K) 
  hide details  
Reply
FX
(7 items)
 
  
CPUMotherboardGraphicsRAM
FX-8320@4.4Ghz M5A99FX PRO R2.0 AMD Radeon R9 290X Patriot Memory  
Hard DriveCoolingMonitor
Samsung 840 Raijintek Ereboss iiyama X4071UHSU (4K) 
  hide details  
Reply
post #2967 of 3751
I just found something wrong on Insan1ty 290_ELPIDA_STOCK_V1.8.rom bios, and the results of this bug are pretty shocking.


As you know I am mining with my 2x 290X. I had them flashed with the 390 mod bios.


My performance with 290X_ELPIDA_STOCK_V1.8.rom was:
Quote:
Card1: 30.5MH/s @ 188watts @ 78ºc
Card2: 30.5MH/s @ 160watts @ 84ºc


Then I flashed both my cards to the 290_ELPIDA_STOCK_V1.8.rom. Because I wanted lower consumption.

My performance with the 290_ELPIDA_STOCK_V1.8.rom bios is:
Quote:
Card1: 30.5MH/s @ 139watts @ 70ºc
Card2: 30.5MH/s @ 137watts @ 74ºc


I have the same performance and much less watts and temperature.

BUT

I atomdis the 290_ELPIDA_STOCK_V1.8.rom I am using now, to compare with your bios, and this bios does not have the function TV1OutputControl! Its a full 290x bios.

I just checked GPU-Z, and I still have 2813 shaders active with the 290_ELPIDA_STOCK_V1.8.rom.
Quote:

And here is the low watts/temperature screenshot:
Quote:

290_v1.8 VS 290X_v1.8 = Same performance, 50 less watts, 10ºc less temperature. How????





I also have one true MSI R9 290 with 290_ELPIDA_STOCK_V1.8.rom flashed. This card is a true 290 and only has 2560 shaders
Quote:

Here is the watts/temperature of this card
Quote:
post #2968 of 3751
check vrm section in hawaii bios reader there should be answer to your questions biggrin.gif some bioses have hidden voltage offset or higher vrm frequency

also some of 290 does not have TV1OutputControl because they are locked with fuses and cannot be unlocked with bios mod (i still think that there is a way to unlock these "fused cards" but it need some driver hacking or inside NDA informations biggrin.gif)
Edited by OneB1t - 7/7/16 at 11:30am
FX
(7 items)
 
  
CPUMotherboardGraphicsRAM
FX-8320@4.4Ghz M5A99FX PRO R2.0 AMD Radeon R9 290X Patriot Memory  
Hard DriveCoolingMonitor
Samsung 840 Raijintek Ereboss iiyama X4071UHSU (4K) 
  hide details  
Reply
FX
(7 items)
 
  
CPUMotherboardGraphicsRAM
FX-8320@4.4Ghz M5A99FX PRO R2.0 AMD Radeon R9 290X Patriot Memory  
Hard DriveCoolingMonitor
Samsung 840 Raijintek Ereboss iiyama X4071UHSU (4K) 
  hide details  
Reply
post #2969 of 3751
yeah I just checked atomdis and none of the Insan1ty 290 bios have TV1OutputControl. So they are all 290x in practice, correct?

I dont understand how one bios can make the same GPU consume 50 less watts, heat 10ºc less, with the same vcore/mhz/shaders. The VRM's also cooled >10ºc
post #2970 of 3751
easily there are informations about voltages/power limits/LLC/VRM settings in bios wink.gif
each bios can have little different values to achieve better stability or higher clock speeds

you can check that in hawaii bios reader as it can read these values
FX
(7 items)
 
  
CPUMotherboardGraphicsRAM
FX-8320@4.4Ghz M5A99FX PRO R2.0 AMD Radeon R9 290X Patriot Memory  
Hard DriveCoolingMonitor
Samsung 840 Raijintek Ereboss iiyama X4071UHSU (4K) 
  hide details  
Reply
FX
(7 items)
 
  
CPUMotherboardGraphicsRAM
FX-8320@4.4Ghz M5A99FX PRO R2.0 AMD Radeon R9 290X Patriot Memory  
Hard DriveCoolingMonitor
Samsung 840 Raijintek Ereboss iiyama X4071UHSU (4K) 
  hide details  
Reply
New Posts  All Forums:Forum Nav:
  Return Home
  Back to Forum: AMD/ATI
Overclock.net › Forums › Graphics Cards › AMD/ATI › Hawaii Bios Editing ( 290 / 290X / 295X2 / 390 / 390X )