Results 1 to 2 of 2

Thread: Fraz's guide to overclocking your ATI 5870 by creating a custom BIOS

  1. #1
    Get in the van. Fraz's Avatar
    Join Date
    Aug 2007
    Location
    Bristol
    Posts
    2,919
    Thanks
    284
    Thanked
    397 times in 231 posts
    • Fraz's system
      • Motherboard:
      • Gigabyte X58A-UD5
      • CPU:
      • Watercooled i7-980X @ 4.2 GHz
      • Memory:
      • 24GB Crucial DDR3-1333
      • Storage:
      • 240 GB Vertex2E + 2 TB of Disk
      • Graphics card(s):
      • Water-cooled Sapphire 7970 @ 1175/1625
      • PSU:
      • Enermax Modu87+
      • Case:
      • Corsair 700D
      • Operating System:
      • Linux Mint 12 / Windows 7
      • Monitor(s):
      • Dell 30" 3008WFP and two Dell 24" 2412M
      • Internet:
      • Virgin Media 60 Mbps

    Fraz's guide to overclocking your ATI 5870 by creating a custom BIOS

    Since I've got a watercooled 5870 and I've recently had some spare time to mess about trying to overclock it, this is a log/guide to what I've done in case others are interested.

    As a disclaimer, I should add that you should only follow this guide at your own risk. If you run into trouble replicating what I did, then that's your problem

    First off, why would you want to create a custom BIOS for your 5870? After all, it's something that a) voids your warrenty and b) can potentially brick your card if you do something stupid. Well, there are several good reasons I've come across:

    • The changes are permanent - no overclocking software is needed to run at login in order to activate any graphics card overclocks you might have. I find this a lot less hassle in general (also useful if there are other users of your computer that are also gamers, I imagine).


    • Your GPU overclock settings will work on ANY operating system, even ones that are not supported by your overclocking software.


    • There are bugs in the ATI 5*** series BIOS concerning multi-monitor support when you overclock via software such as the ATI Overdrive panel in the Catalyst Control Centre. When the clocks are not at stock (under or overclocked), nasty flickering occurs on the secondary monitors when the card changes power state. This is a widely known bug mentioned on many forums that ATI just doesn't seem to want to fix, even though it's trivial to do so (at least, I know of no official fix). Essentially, the idle power state for a 5870 with more than one monitor should be 400 MHz GPU core and 1200 MHz VRAM, and this is indeed the case when no overclock is applied. However, as soon as you move away from stock clocks in any direction using software, the card defaults to the single-monitor idle clocks of 157/300. For multi-monitors, it's important that the VRAM frequency remains constant across all power states, otherwise flickering occurs when the card changes power state. Which brings me onto the next problem...


    • Brief multi-monitor flickering even at stock clocks when the graphics card moves to the UVD power state (video decoding). For a 5870, the UVD power state has clocks of 400/900 (GPU/VRAM). It's a pretty dumb thing to move to this state, as the idle multi-monitor power state with a totally stock card is actaully higher than the power state it puts it into in order to decode video, and the flicker occurs when the RAM clock changes away from 1200 MHz to 900 MHz.


    Anyway, my BIOS tweaks have fixed all of the above, and I've happily got my 5870 running at a modest overclock of 935 MHz GPU Core, and 1250 MHz VRAM, which gives me about 10% extra performance. I've even got the BIOS to apply a voltage increase in order to reach the 935 MHz GPU core

    Here is a blow by blow guide to how I did it:

    To start, you need a few pieces of software. The Catalyst Control Center (should come with the catalyst drivers IIRC), GPU-z, Radeon BIOS Editor, and ATIFlash.


    1) First things first, go to the ATI overdrive screen in the Catalyst Control Centre, and make sure you have the "Enable ATI Overdrive" tickbox unticked:



    (Note that if you have a multi-monitor setup and you want to experience the flickering bug I mentioned earlier, you can do a tiny underclock/overclock and then monitor your idle clocks in the panel. For stock clocks, multi-monitor idle is 400/1200, for non-stock it goes down to 157/300, which is the cause of the bug. If you then do anything to move away from idle state such as resize/move some windows or open the start menu, you'll see the secondary monitors flicker as the power state changes.)

    2) Open up GPU-Z and use it to get the stock BIOS off your graphics card. To do this, click the tiny icon of a chip with a green arrow that's just to the right hand side of the BIOS Version number, and then save to file as something like "5870bios.rom":



    Note in the above that my Default Clock and Memory values are 935 MHz and 1250 MHz respectively; for a stock-clocked card these should be 850/1200.

    3) Now copy your stock bios file to a flash drive or some completely separate machine. It's important that you have a safe copy of this file elsewhere in case things go wrong!

    4) Make another copy of your 5870bios.rom file on the machine you're working on, and call it something like "5870oc.rom". This is the file you'll use from now on. NEVER edit the stock bios file in case you need to revert/refer back to it.

    5) Open up Radeon Bios Editor (RBE from now on), and open up the 5870oc.rom file by clicking on the "Load BIOS..." button at the bottom. You should now see a screen like this:



    This screen isn't particularly interesting for the purposes of this guide, but note that there is an excellent guide to what it all means via the Info menu at the top ("Tutorial on how to use RBE"). Also note, in case you were wondering, that I've got an ASUS 5870.

    6) Now click on the Clock settings button located at the top, this will take you to a screen that should look like this for a totally stock 5870:



    Before I go further, an important note: If you have a 5-series card, at no point should you change any of the Voltage settings seen on this screen! This worked for 4-series cards (I believe, but not sure) but doesn't for 5-series cards, and voltage changes must be done a different way (see later on).

    There are lots of important things you'll need to use on this screen. Firstly, notice the "Powerplay states structure" box near the bottom middle. If you hold your mouse down on any of the states, you'll see the low/medium/high clocks highlighted in the Clock Infos settings above, and detailed in the "Clock info modes used" box to the side. Note that State 1 ("Power saving for...") is used for single monitor setups, and State 3 (which is also named "Power saving for ..."), is used for multi-monitor setups. State 2, "UVD" is the video decoding powerplay state.

    Anyway, as should be apparent, these powerplay states translate to various "Clock info" settings in the "Clock-/voltage settings" panel above. The highest possible clock settings are for "Clock info 00", which is what the GPU goes to when 3D gaming or for other intensive tasks. Change your GPU and RAM settings here to whatever you know is stable from overclocking your card via a software overclock. Now, to ensure you fix all the dual/multi monitor flickering bugs, set whatever you used as the RAM frequency in "Clock info 00" for Clock Infos 03, 04 and 05 also. To reiterate: the RAM frequency must be the same in all Clock Infos that will be used by your card if you have a multi-monitor setup; so, the clock infos that are used by powerplay states 0, 2 and 3.

    For my overclocks of 935/1250, my Clock Settings screen now looked like this:



    7) Next is to deal with any voltage tweaking you might need to achieve your GPU overclock. Note that I didn't do any voltage tweaking for the RAM, so can't help anyone there. As I've already mentioned, voltage changes for a 5870 can't be done via the Voltage box in the Clock Infos; instead, it has to be done by setting the default value for a GPU register. To do this, click on the "GPU registers..." button, and for a stock-clocked card you should get a window like this:



    Notice that the highest value is for register 0x18 - this is the voltage that is used by Clock Info 00, i.e the 3D gaming clock settings. Simply change this value to whatever you'd like (I think it has to be in steps of 0.0125 volts, but not certain). I already knew via the ASUS voltage tweak software that my overclock was stable at 1.2 Volts. Obviously you should be careful changing this voltage - do so entirely at your own risk. My screen now looked like this:



    Click Okay to exit the dialog, and then hit the "Save BIOS..." button towards the bottom left of the RBE screen. It will suggest some silly name for you, but instead save it as the file you already have, i.e. 5870oc.rom

    8) Now you'll need a bootable USB drive, or some device/disk where you can boot straight into DOS. Place your stock and OC bioses (5870bios.rom and 5870oc.rom) on the DOS-bootable disk. You'll also need to put ATIFlash onto it also (atiflash.exe).

    9) Restart the computer and boot into DOS via your bootable USB drive (or whatever). Note that I assume you only have a SINGLE 5870 GRAPHICS card here. If you have more than 1 graphics card, you should refer to this page. Type on the command line:


    atiflash -unlockrom
    atiflash -p 0 5870oc.rom


    The first of those steps might not be necessary, but I include it in case your GPU rom is locked.

    Now reboot into your proper OS, and low and behold, your graphics card will be bug free and overclocked without need for software!

    If you ever need to revert to your original BIOS, just follow step 9 again but use your stock bios file (5870bios.rom)
    Last edited by Fraz; 23-11-2010 at 10:30 AM.

  2. Received thanks from:

    nibbler (23-11-2010)

  3. #2
    Get in the van. Fraz's Avatar
    Join Date
    Aug 2007
    Location
    Bristol
    Posts
    2,919
    Thanks
    284
    Thanked
    397 times in 231 posts
    • Fraz's system
      • Motherboard:
      • Gigabyte X58A-UD5
      • CPU:
      • Watercooled i7-980X @ 4.2 GHz
      • Memory:
      • 24GB Crucial DDR3-1333
      • Storage:
      • 240 GB Vertex2E + 2 TB of Disk
      • Graphics card(s):
      • Water-cooled Sapphire 7970 @ 1175/1625
      • PSU:
      • Enermax Modu87+
      • Case:
      • Corsair 700D
      • Operating System:
      • Linux Mint 12 / Windows 7
      • Monitor(s):
      • Dell 30" 3008WFP and two Dell 24" 2412M
      • Internet:
      • Virgin Media 60 Mbps

    Re: Fraz's guide to overclocking your ATI 5870 by creating a custom BIOS

    Just to wrap this up, and so you can see the BIOS changes actually active, here are a couple of screen grabs of the GPU-Z sensors window.

    Firstly, without a stress test running, clocks are at the expected multi-monitor idling frequencies of 400/1250, and VDDC (the GPU voltage) is also at its multi-monitor idle value of 1.0625 Volts:



    Now with a stress test running, the clocks go up to 935/1250, with the VDDC going up to the value of 1.2 Volts as I'd tweaked it to do in the BIOS:



    That's it from me. If anyone spots any mistakes/typos, let me know and I'll correct them.

Thread Information

Users Browsing this Thread

There are currently 1 users browsing this thread. (0 members and 1 guests)

Similar Threads

  1. ITS HERE!" Small review tests and the FIRST MODDING GUIDE!
    By gilgamesh in forum abit.care@HEXUS
    Replies: 5
    Last Post: 23-01-2007, 02:44 PM
  2. Kalniel's guide to enthusiast ATI cards
    By kalniel in forum Graphics Cards
    Replies: 2
    Last Post: 18-10-2006, 02:20 PM
  3. Looking for a bios guide for an SN41G2
    By Jimmy Little in forum PC Hardware and Components
    Replies: 3
    Last Post: 16-09-2004, 11:57 AM
  4. step by step guide to updating sn41g2 bios?
    By micovwar in forum PC Hardware and Components
    Replies: 1
    Last Post: 27-08-2003, 06:29 PM
  5. Bios & install guide for Epox 8RDA+ (probably other nforce2 MB's too)
    By Ravens Nest in forum PC Hardware and Components
    Replies: 10
    Last Post: 25-08-2003, 02:03 PM

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •