CPUCONTROL(8) BSD System Manager's Manual CPUCONTROL(8)NAMEcpucontrol — control utility for the cpuctl(4) device.
SYNOPSIScpucontrol [-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-
specific 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 argu‐
ment 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
current MSR value in the MSR register. The mask argument can be
prefixed 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
current MSR value in the MSR register. The mask argument can be
prefixed 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
updates 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 ALSOcpuctl(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⟩.
BSD June 30, 2009 BSD