Pages:
Author

Topic: Radeonvolt - HD5850 reference voltage tweaking and VRM temp. display for Linux - page 5. (Read 27922 times)

ius
newbie
Activity: 56
Merit: 0
My card is
Code:
01:00.0 VGA compatible controller: ATI Technologies Inc Cypress [Radeon HD 5800 Series]
        Subsystem: PC Partner Limited Device e140

Is that a Sapphire card? Sure it's a reference design? I'm 100% positive they have non-reference designs (thus not going to wrk), not sure if they also have reference ones.
ius
newbie
Activity: 56
Merit: 0
I did indeed, and forgot to add the HD5870 device id. Should be added now, and I've also increased the sleep after a mmio write just to be sure.

The 0x1A value returned is actually the last value written to the i2c data register. This might be a timeout. You can uncomment line 104 in i2c.c to view the i2c status register state after bytes have been sent (redownload first).

If your 5870 is a reference card it might be very well that it's using different GPIOs for i2c. If that's the case, 5850 reference is the only card on which it should work.
newbie
Activity: 20
Merit: 0
It does not output anything, this is my AMD lspci: http://paste.pocoo.org/show/396385/

You added a device id filter :-P After I removed it, I see some data for my 5970s but nothing for my 5870:


Device [7]: Hemlock [ATI Radeon HD 5900 Series]
        Current core voltage: 1.0375 V
        Presets: 0.9500 / 1.0000 / 1.0375 / 1.0500 V
        Core power draw: 56.61 A (58.74 W)
        VRM temperatures: 84 / 86 / 86 C


Device [15]: Hemlock [ATI Radeon HD 5900 Series]
        Current core voltage: 1.0375 V
        Presets: 0.9500 / 1.0000 / 1.0375 / 1.0500 V
        Core power draw: 53.13 A (55.12 W)
        VRM temperatures: 91 / 94 / 92 C


Device [16]: Radeon HD 5870 (Cypress)
Unsupported i2c device (1a)
full member
Activity: 238
Merit: 100
Does not work:

Code:
Device [1]: Cypress [Radeon HD 5800 Series]
Unsupported i2c device (1a)

My card is
Code:
01:00.0 VGA compatible controller: ATI Technologies Inc Cypress [Radeon HD 5800 Series]
        Subsystem: PC Partner Limited Device e140
        Flags: bus master, fast devsel, latency 0, IRQ 29
        Memory at e0000000 (64-bit, prefetchable) [size=256M]
        Memory at f5000000 (64-bit, non-prefetchable) [size=128K]
        I/O ports at b000 [size=256]
        [virtual] Expansion ROM at f4000000 [disabled] [size=128K]
        Capabilities:
        Kernel driver in use: fglrx_pci
        Kernel modules: fglrx
sr. member
Activity: 406
Merit: 251
- Accesses the Radeon i2c bus by mapping the Radeon i2c controller registers via /dev/mem, .

nice, what else can we do?
newbie
Activity: 20
Merit: 0
It does not output anything, this is my AMD lspci: http://paste.pocoo.org/show/396385/
ius
newbie
Activity: 56
Merit: 0
Good catch on the pciutils/libpci devel package. Arch does not ship headers separately, so I totally forgot about the dependency for other distros.

Regarding your compilation error, it seems I also forgot include guards. I have comitted the fix to Github, if you redownload the source from the same URL you should be able to compile.
newbie
Activity: 20
Merit: 0
Now it fails with ... any idea?

gcc -O3 -Wall -c vt1165.c
In file included from vt1165.h:17:0,
                 from vt1165.c:18:
types.h:19:17: error: redefinition of typedef ‘u8’
types.h:19:17: note: previous declaration of ‘u8’ was here
types.h:20:18: error: redefinition of typedef ‘u16’
types.h:20:18: note: previous declaration of ‘u16’ was here
types.h:21:18: error: redefinition of typedef ‘u32’
types.h:21:18: note: previous declaration of ‘u32’ was here
newbie
Activity: 20
Merit: 0
Needs libpci-dev on debian/ubuntu
ius
newbie
Activity: 56
Merit: 0
So, there are a couple of Radeon monitoring/tweaking tools available for Linux (aticonfig, AMDOverdriveCtrl, glakkeclock). Unfortunately neither of them supports displaying VRM temperatures or core voltage modification (the later can also be achieved by editing your Radeon's bios using a Windows application, but that's not really convenient now, is it?).

As such, I started hacking and came up with a utility of my own. It displays VRM voltages, average current and allows you view and modify the GPU core voltage.

I've tested it on my (single) ATI card, an Asus HD5850 (reference).

Remarks
- Should work on all reference HD5850 cards with a similar Volterra VT1165 VRM setup.
- It should also support multiple cards, but I haven't been able to test it myself.
- Accesses the Radeon i2c bus by mapping the Radeon i2c controller registers via /dev/mem, thus root is required (anyone have a better idea here?).
- Comes without any warranty, use at your own risk, make sure you know what you're doing, etc.
- May even burn your house down. Probably not, though.

Download
Source code
Github

Compiling
Depending on your distro, you may need to install the pciutils development package (Ubuntu/Debian: apt-get install libpci-dev).

Code:
wget https://github.com/ius/radeonvolt/tarball/master -O - | tar xz
cd ius-radeonvolt*
make

Usage examples
Code:
$ sudo ./radeonvolt

Device [1]: Cypress [Radeon HD 5800 Series]
Current core voltage: 1.0875 V
Presets: 1.0000 / 1.0375 / 1.0875 / 0.9500 V
Core power draw: 62.71 A (68.20 W)
VRM temperatures: 100 / 99 / 98 C
 info[/b]

Before attempting to modify the vcore, make sure the values for the 'current voltage' as well as 'presets' look sane.

Code:
$ sudo ./radeonvolt --vcore 1.1000 --device 1
Setting vddc of device 1 to 1.1000 V (0x34)

Device [1]: Cypress [Radeon HD 5800 Series]
Current core voltage: 1.1000 V
Presets: 1.0000 / 1.0375 / 1.1000 / 0.9500 V
Core power draw: 61.84 A (68.02 W)
VRM temperatures: 100 / 99 / 98 C

Please let me know if it works for you (especially non-5850 or multiple cards). If it doesn't, include the output of lspci -vd1002.

If it does work, feel free to send any spare coins to 19kdfgW1KXQgV7SCLEPAojtHxN9xotGkGH.
Pages:
Jump to: