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,0502.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 D0It'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!
 
			    