Hello, I need some help with pciconf.
There's a video chip, called Intel GMA945 (sometimes, GMA950), it's being included inside of a lot of netbooks and even notebooks/desktop PCs. On netbooks, the bus is underclocked to 200 MHz, to save the power and to lower the heat being produced by it. There was a tool called gmabooster, both for Windows and Linux. What it does is that it simply sets the FSB of that chip back to 250\400 MHz and here you go -- you get a faster performance, no more underclocking.
There's a shareware tool from one greedy programmer available for Windows, while for Linux it was possible to do with this simple sh script:
02.0 is the address of our VGA adapter in Linux, found by lspci:
Now, here's the deal: there's no setpci tool available for FreeBSD. The closest one I found was pciconf, but there's absolutely no information on the web about how to work with it.
Here's a part we need, from the output of pciconf -lvbc:
It's pretty similar to Linux's one, as we can see.
What I cannot figure out is how to set the values. At first, I thought that cap 01 was the parameter I needed (d0 = null, d1 = 200, d2=250 and d3 = 400 MHz), but that powerspec D0 D3 is available almost for all PCI devices.
That's why I need some tough help here, considering how to set that f0.b=00,60 and f0.b=33,05 with pciconf.
Thank you!
There's a video chip, called Intel GMA945 (sometimes, GMA950), it's being included inside of a lot of netbooks and even notebooks/desktop PCs. On netbooks, the bus is underclocked to 200 MHz, to save the power and to lower the heat being produced by it. There was a tool called gmabooster, both for Windows and Linux. What it does is that it simply sets the FSB of that chip back to 250\400 MHz and here you go -- you get a faster performance, no more underclocking.
There's a shareware tool from one greedy programmer available for Windows, while for Linux it was possible to do with this simple sh script:
Code:
#!/bin/sh
case "$1" in
250) val=31 ;;
400) val=33 ;;
200) val=34 ;;
*)
echo "Illegal argument! Possible values are: 200, 250, 400." >&2
exit 1
;;
esac
setpci -s 02.0 f0.b=00,60
setpci -s 02.0 f0.b=$val,05
02.0 is the address of our VGA adapter in Linux, found by lspci:
Code:
00:02.0 VGA compatible controller: Intel Corporation Mobile 945GME Express Integrated Graphics Controller (rev 03)
00:02.1 Display controller: Intel Corporation Mobile 945GM/GMS/GME, 943/940GML Express Integrated Graphics Controller (rev 03)
Now, here's the deal: there's no setpci tool available for FreeBSD. The closest one I found was pciconf, but there's absolutely no information on the web about how to work with it.
Here's a part we need, from the output of pciconf -lvbc:
Code:
vgapci0@pci0:0:2:0: class=0x030000 card=0x83401043 chip=0x27ae8086 rev=0x03 hdr=0x00
vendor = 'Intel Corporation'
device = 'Mobile 945 Express Chipset Family'
class = display
subclass = VGA
bar [10] = type Memory, range 32, base 0xf7f00000, size 524288, enabled
bar [14] = type I/O Port, range 32, base 0xec00, size 8, enabled
bar [18] = type Prefetchable Memory, range 32, base 0xd0000000, size 268435456, enabled
bar [1c] = type Memory, range 32, base 0xf7ec0000, size 262144, enabled
cap 05[90] = MSI supports 1 message
cap 01[d0] = powerspec 2 supports D0 D3 current D0
vgapci1@pci0:0:2:1: class=0x038000 card=0x83401043 chip=0x27a68086 rev=0x03 hdr=0x00
vendor = 'Intel Corporation'
device = 'Mobile 945GM/GU Express Integrated Graphics Controller'
class = display
bar [10] = type Memory, range 32, base 0xf7f80000, size 524288, enabled
cap 01[d0] = powerspec 2 supports D0 D3 current D0
It's pretty similar to Linux's one, as we can see.
What I cannot figure out is how to set the values. At first, I thought that cap 01 was the parameter I needed (d0 = null, d1 = 200, d2=250 and d3 = 400 MHz), but that powerspec D0 D3 is available almost for all PCI devices.
That's why I need some tough help here, considering how to set that f0.b=00,60 and f0.b=33,05 with pciconf.
Thank you!