home | help
CPUCONTROL(8)		     System Manager's Manual		   CPUCONTROL(8)

NAME
     cpucontrol -- control utility for the cpuctl(4) device.

SYNOPSIS
     cpucontrol [-vh] -m msr device
     cpucontrol [-vh] -m msr=value device
     cpucontrol [-vh] -m msr&=mask device
     cpucontrol [-vh] -m msr|=mask device
     cpucontrol [-vh] -i level device
     cpucontrol [-vh] [-d datadir] -u device

DESCRIPTION
     The cpucontrol utility can be used to read and write arbitrary machine-spe-
     cific  CPU registers via the cpuctl(4) special device.  It can also be used
     to apply CPU firmware updates.

     The following options are available:

     -d datadir
	     Where to look for microcode images.  The option  can  be  specified
	     multiple times.

     -m msr[=value]
	     Show  value  of  the  specified MSR.  MSR register number should be
	     given as a hexadecimal number.

     -m msr=value
	     Store the value in the specified MSR register.  The value	argument
	     can  be  prefixed with ~ operator.  In this case the inverted value
	     of argument will be stored in the register.

     -m msr&=mask
	     Store the result of bitwise AND operation between mask and the cur-
	     rent MSR value in the MSR register.  The mask argument can be  pre-
	     fixed  with  ~  operator.	 In this case the inverted value of mask
	     will be used.

     -m msr|=mask
	     Store the result of bitwise OR operation between mask and the  cur-
	     rent  MSR value in the MSR register.  The mask argument can be pre-
	     fixed with ~ operator.  In this case the  inverted  value	of  mask
	     will be used.

     -i level
	     Retrieve CPUID info.  Level should be given as a hex number.

     -u      Apply  CPU  firmware  updates.   The  cpucontrol  utility will walk
	     through the configured data directories and apply all firmware  up-
	     dates available for this CPU.

     -v      Increase the verbosity level.

     -h      Show help message.

EXIT STATUS
     The cpucontrol utility exits 0 on success, and >0 if an error occurs.

EXAMPLES
     The command

     "cpucontrol -m 0x10 /dev/cpuctl0"

     will read the contents of TSC MSR from CPU 0.

     To set the CPU 0 TSC MSR register value to 0x1 issue

     "cpucontrol -m 0x10=0x1 /dev/cpuctl0".

     The following command will clear the second bit of TSC register:

     "cpucontrol -m 0x10&=~0x02 /dev/cpuctl0".

     The following command will set the forth and second bit of TSC register:

     "cpucontrol -m 0x10|=0x0a /dev/cpuctl0".

     The command

     "cpucontrol -i 0x1 /dev/cpuctl1"

     will retrieve the CPUID level 0x1 from CPU 1.

     To   perform   firmware   updates	 on   CPU   0  from  images  located  at
     /usr/local/share/cpuctl/ use the following command:

     "cpucontrol -d /usr/local/share/cpuctl/ -u /dev/cpuctl0"

SEE ALSO
     cpuctl(4)

HISTORY
     The cpucontrol utility first appeared in FreeBSD 7.2.

BUGS
     Yes, probably, report if any.

AUTHORS
     The cpucontrol utility and this manual page was written by Stanislav  Sedov
     <stas@FreeBSD.org>.

FreeBSD 8.0			  June 30, 2009 		   CPUCONTROL(8)

home | help