freebsd-nq/sys/dev
Stanislav Sedov e085f869d5 - Add cpuctl(4) pseudo-device driver to provide access to some low-level
features of CPUs like reading/writing machine-specific registers,
  retrieving cpuid data, and updating microcode.
- Add cpucontrol(8) utility, that provides userland access to
  the features of cpuctl(4).
- Add subsequent manpages.

The cpuctl(4) device operates as follows. The pseudo-device node cpuctlX
is created for each cpu present in the systems. The pseudo-device minor
number corresponds to the cpu number in the system. The cpuctl(4) pseudo-
device allows a number of ioctl to be preformed, namely RDMSR/WRMSR/CPUID
and UPDATE. The first pair alows the caller to read/write machine-specific
registers from the correspondent CPU. cpuid data could be retrieved using
the CPUID call, and microcode updates are applied via UPDATE.

The permissions are inforced based on the pseudo-device file permissions.
RDMSR/CPUID will be allowed when the caller has read access to the device
node, while WRMSR/UPDATE will be granted only when the node is opened
for writing. There're also a number of priv(9) checks.

The cpucontrol(8) utility is intened to provide userland access to
the cpuctl(4) device features. The utility also allows one to apply
cpu microcode updates.

Currently only Intel and AMD cpus are supported and were tested.

Approved by:	kib
Reviewed by:	rpaulo, cokane, Peter Jeremy
MFC after:	1 month
2008-08-08 16:26:53 +00:00
..
aac Add explicit PCI IDs for the following Adaptec RAID Series 2 adapters: 2008-06-27 19:34:47 +00:00
acpi_support Fix my previous commit. We actually should pass evaluation args in 2008-07-04 23:40:53 +00:00
acpica Fix a typo. 2008-08-04 19:45:15 +00:00
adlink
advansys
age Use DELAY() instead of pause if waiting time is less than 1ms. 2008-07-18 01:00:54 +00:00
agp Enable the support for G33/Q35/Q33 now that both the G33 and Q35 have been 2008-08-01 13:11:23 +00:00
aha
ahb
aic
aic7xxx Only print sense data diagnostics if debugging is enabled with the 2008-02-17 16:00:36 +00:00
amd
amr While spin-waiting for the mailbox semaphore to update, do flushing reads of 2008-07-20 16:50:14 +00:00
an Style changes from avatar. 2008-01-18 16:34:18 +00:00
ar
arcmsr Fix an incorrect FreeBSD version test. 2007-12-09 19:24:27 +00:00
asmc Match the Mac Pro with 8 cores. This machine reports 35 temperature 2008-04-12 12:04:09 +00:00
asr
ata Detect ATA controllers in the Macbook3. 2008-07-10 21:36:53 +00:00
ath Change the calling convention for ic_node_alloc to deal with 2008-06-07 18:38:02 +00:00
atkbdc Fill in sysctl descriptions. 2008-07-26 00:01:19 +00:00
auxio
bce - Added support for BCM5709 and BCM5716 controllers. 2008-06-13 01:16:37 +00:00
bfe style(9) - space after keywords, don't indent case. 2008-07-29 09:02:00 +00:00
bge Improve the integration of BCM5906[M] support: 2008-05-14 21:00:27 +00:00
bktr Add locking to the various iicbus(4) bridge drivers: 2008-08-04 20:46:15 +00:00
bm Fix some locking and logic bugs pointed out by jhb. These fix driver detach and speed up data transfer by nearly a factor of 2. 2008-07-03 21:51:30 +00:00
buslogic
cardbus
ce Fix instances of bogus #elsif directive. 2008-07-01 14:41:03 +00:00
ciss Correctly set the interrupt enable and disable bits. The previous 2008-08-02 13:04:26 +00:00
cm
cmx Commit cmx(4), a driver for Omnikey CardMan 4040 PCMCIA smartcard readers. 2008-03-06 08:09:45 +00:00
coretemp style(9): remove FreeBSD CVS ID from the initial license comment. 2008-05-14 10:02:25 +00:00
cp Do not set IFF_DEBUG directly from the driver. 2008-06-30 21:18:27 +00:00
cpuctl - Add cpuctl(4) pseudo-device driver to provide access to some low-level 2008-08-08 16:26:53 +00:00
cpufreq Probe CPUs after the PCI hierarchy on i386, amd64, and ia64. This allows 2008-03-10 22:18:07 +00:00
cs Improve the EEPROM parsing, based on finding a datasheet that describes 2008-07-09 16:47:55 +00:00
ct
ctau Do not set IFF_DEBUG directly from the driver. 2008-06-30 21:18:27 +00:00
cx Do not set IFF_DEBUG directly from the driver. 2008-06-30 21:18:27 +00:00
cxgb remove socketvar.h, add more selective includes 2008-07-31 20:28:58 +00:00
cy
dc Ethernet hardware address stored in DC_AL_PAR0/DC_AL_PAR1 register 2008-06-08 02:52:26 +00:00
dcons Spell KDB_REQ_REBOOT correctly. 2008-05-05 08:25:46 +00:00
de During attach on some de(4) adapters the driver sends out a test packet as 2008-04-05 17:24:44 +00:00
digi
dpt
drm Add the i915 GME device to DRM. 2008-03-21 16:38:42 +00:00
e1000 Data type fix 2008-07-31 02:22:53 +00:00
ed When the miibus for the AX88x90 or TC5299J cards fails to attach, we 2008-08-06 22:22:27 +00:00
eisa
en Replaced the misleading uses of a historical artefact M_TRYWAIT with M_WAIT. 2008-03-25 09:39:02 +00:00
ep
esp o Fix style(9) bugs and similar nits. 2008-07-22 13:51:21 +00:00
et Don't leak DMA map if not freed. 2008-07-11 18:26:12 +00:00
ex Make ex(4) MPSAFE: 2008-06-13 12:14:22 +00:00
exca
fatm Replaced the misleading uses of a historical artefact M_TRYWAIT with M_WAIT. 2008-03-25 09:39:02 +00:00
fb Convert amd64 and i386 to share the atrtc device driver. 2008-04-14 08:00:00 +00:00
fdc The wakeup() line from the rev. 1.319 is wrong and reintroduces 2008-01-11 16:50:52 +00:00
fe - Use bus_foo() rather than bus_space_foo() and retire the bus tag and handle 2008-06-23 18:16:25 +00:00
firewire - Fix panic on detach. 2008-05-10 13:40:42 +00:00
flash Rename the kthread_xxx (e.g. kthread_create()) calls 2007-10-20 23:23:23 +00:00
fxp Reuse the mbuf that was just retrieved from the receive ring if mbuf 2008-03-22 18:13:39 +00:00
gem o The FreeBSD bus_dmamap_sync(9) supports ored together flags for quite 2008-06-22 13:54:51 +00:00
hatm Give MEXTADD() another argument to make both void pointers to the 2008-02-01 19:36:27 +00:00
hifn
hme - Use the revamped code from the gem(4) PCI front-end, which 2008-04-26 14:17:21 +00:00
hptiop Update the hptiop driver to version 1.3. This adds support for the 4xxx 2008-02-03 16:07:12 +00:00
hptmv Rename the kthread_xxx (e.g. kthread_create()) calls 2007-10-20 23:23:23 +00:00
hptrr Fix a mistake made during the import of the driver. Previous versions of 2008-03-08 18:06:48 +00:00
hwpmc - Provide kernelname as the name for process with P_KTHREAD set as 2008-07-25 05:49:48 +00:00
ic Support for Freescale QUad Integrated Communications Controller. 2008-03-03 18:20:17 +00:00
ichsmb - Use bus_foo() rather than bus_space_foo() and remove bus space tag/handle 2008-06-06 18:29:56 +00:00
ichwd Add support for ICH8M. 2008-01-07 09:46:39 +00:00
ida
ie Use the new bus device_shutdown hook for performing the shutdown action 2008-08-01 21:33:07 +00:00
ieee488 Remove the distinction between device minor and unit numbers. 2008-05-29 12:50:46 +00:00
if_ndis Fix a mutex LOR introduced by the conversion of if_ndis from spinlocks to 2008-07-09 00:10:55 +00:00
iicbus - Reflect the iicbus infrastructure changes. 2008-08-05 08:38:33 +00:00
iir Fix a buffer overflow in the processing of various SCSI commands. This likely 2008-01-09 20:02:56 +00:00
io Remove D_NEEDGIANT from io(4). 2008-08-08 13:43:56 +00:00
ipmi Rename the kthread_xxx (e.g. kthread_create()) calls 2007-10-20 23:23:23 +00:00
ips
ipw Minor cleanup of vap create work: 2008-05-12 00:15:30 +00:00
iscsi/initiator Record the dependency of the iscsi initiator on cam. 2008-04-20 15:56:59 +00:00
isp Add missing locking for SBus controllers. 2007-11-05 11:22:18 +00:00
ispfw
iwi Change the calling convention for ic_node_alloc to deal with 2008-06-07 18:38:02 +00:00
iwn Change the calling convention for ic_node_alloc to deal with 2008-06-07 18:38:02 +00:00
ixgb
ixgbe This updates the ixgbe driver to Intel internal version 1.4.7 2008-07-30 18:15:18 +00:00
jme Fix buffer discard index. 2008-07-28 02:37:15 +00:00
joy
k8temp Fix comment: s/before/after. 2008-07-06 16:18:58 +00:00
kbd Don't include <sys/tty.h> in non-TTY drivers. 2008-07-24 09:54:10 +00:00
kbdmux Don't include <sys/tty.h> in non-TTY drivers. 2008-07-24 09:54:10 +00:00
le Correct the comments in am7990_intr() and am79900_intr(); it's not 2007-12-30 00:23:38 +00:00
led Remove the distinction between device minor and unit numbers. 2008-05-29 12:50:46 +00:00
lge Plug memory leak in jumbo buffer allocation failure path. 2008-03-05 05:36:09 +00:00
lmc Rename several functions in if_lmc with potential name collisions with 2008-07-05 16:39:24 +00:00
malo Minor cleanup of vap create work: 2008-05-12 00:15:30 +00:00
mc146818
mca
mcd
md Remove the distinction between device minor and unit numbers. 2008-05-29 12:50:46 +00:00
mem
mfi Tweak the output of event log messages from the controller: 2008-06-26 22:36:38 +00:00
mii Fix a copy/paste error 2008-08-06 07:52:59 +00:00
mk48txx
mlx
mly
mmc Rename the kthread_xxx (e.g. kthread_create()) calls 2007-10-20 23:23:23 +00:00
mpt Allocate a single CCB at the start of the main loop of the RAID monitoring 2008-07-21 18:43:02 +00:00
mse
msk Move comments block 1 line up to remark on the setting 2008-03-11 02:39:52 +00:00
mxge Clean up mxge's use of callouts as pointed out by jhb, 2008-07-17 15:46:35 +00:00
my
ncv
nfe Add support for MCP73 chips. 2008-04-10 01:25:09 +00:00
nge Fix function prototype for device_shutdown method. 2007-11-22 02:45:00 +00:00
nmdm Don't enforce unique device minor number policy anymore. 2008-06-11 18:55:19 +00:00
nsp
null
nve Import rewritten nve device id's, which brings this more 2008-05-31 14:17:36 +00:00
nvram - Use an sx lock to serialize writes since they update the checksum. 2008-08-01 20:39:18 +00:00
nxge Merge Neterion if_nxge driver version 2.0.9.11230 with the following 2007-10-29 14:19:32 +00:00
ofw Expand kdb_alt_break a little, most commonly used with the option 2008-05-04 23:29:38 +00:00
patm Give MEXTADD() another argument to make both void pointers to the 2008-02-01 19:36:27 +00:00
pbio
pccard Fix a small problem in the comment about departure from NetBSD. 2008-08-07 21:16:14 +00:00
pccbb Rename the kthread_xxx (e.g. kthread_create()) calls 2007-10-20 23:23:23 +00:00
pcf - Consolidate module version for the pcf module into just pcf.c instead 2008-08-05 17:39:37 +00:00
pci Remove the second check for a 64-bit BAR value on a 32-bit system in 2008-08-05 21:04:00 +00:00
pdq
powermac_nvram Redefine bus_space_tag_t on PowerPC from a 32-bit integral to 2007-12-19 18:00:50 +00:00
ppbus Add locking to the various iicbus(4) bridge drivers: 2008-08-04 20:46:15 +00:00
ppc
pst
puc The SIIG 4 port serial card based on the Oxford OX16PCI954 is 2008-05-29 07:15:52 +00:00
quicc Support for Freescale QUad Integrated Communications Controller. 2008-03-03 18:20:17 +00:00
ral Change the calling convention for ic_node_alloc to deal with 2008-06-07 18:38:02 +00:00
random Correct a random value disclosure in random(4). 2007-11-29 16:06:12 +00:00
ray
rc
re Rearrange conditional compilation directives. This makes syntax 2008-08-04 04:00:10 +00:00
rndtest
rp
safe bandaid crash as I have no time to research the issue and the driver 2007-11-03 19:10:14 +00:00
scc With rev 1.24 of sys/powerpc/powermac/macio.c, we now get a 2008-04-26 18:40:59 +00:00
scd
sf Fix build. 2008-01-21 09:51:28 +00:00
si Remove sicontrol(8)'s "ttystat". 2008-06-09 08:43:27 +00:00
sio Expand kdb_alt_break a little, most commonly used with the option 2008-05-04 23:29:38 +00:00
sk Prefer NULL over integer 0 for pointer type. 2008-02-14 01:25:01 +00:00
smbus - Store the device_t of the smbX device in the softc. 2008-06-06 18:45:32 +00:00
smc - Move ether_ifdetach earlier. 2008-06-17 05:48:42 +00:00
sn
snc Convert to new style PC Card front end driver. Add support for the 2008-08-07 20:55:20 +00:00
snp Don't enforce unique device minor number policy anymore. 2008-06-11 18:55:19 +00:00
sound Add quirk for Dell D630 laptops. 2008-07-15 02:34:44 +00:00
speaker Move speaker a lot closer to style(9) 2008-05-15 01:22:48 +00:00
spibus
sr
stg
stge Use m_collapse(9) to collapse mbuf chains instead of relying on 2008-01-18 08:32:08 +00:00
streams Make ftruncate a 'struct file' operation rather than a vnode operation. 2008-01-07 20:05:19 +00:00
sym Allow 53C1010 without NVRAM to negotiate Ultra-3. 2008-08-07 23:41:17 +00:00
syscons Lower the priority of the sleep in the syscons for "waitvt" wchan to 2008-08-04 12:22:33 +00:00
tdfx Add the module dependency on the mem(4) module. This will fix the module 2008-03-13 14:08:41 +00:00
ti Remove some remnant alpha hacks. 2008-04-26 14:13:48 +00:00
trm
tsec Convert TSEC watchdog to the new scheme. 2008-03-12 16:35:25 +00:00
twa
twe Add missing \n. 2008-02-12 08:58:26 +00:00
tx Make tx(4) MPSAFE 2008-06-10 17:59:43 +00:00
txp Read MII_ANAR register and get common denominator ability. 2007-11-16 10:32:10 +00:00
uart The XScale PXA255 has three generally ns16x50 compatible UARTs. One of the 2008-05-30 01:57:13 +00:00
ubsec
usb Add support for the ASUS P535 PDA 2008-08-02 12:15:18 +00:00
utopia Fix a use-after-free. 2007-12-05 19:32:59 +00:00
vge Fix function prototype for device_shutdown method. 2007-11-22 02:45:00 +00:00
vkbd Don't enforce unique device minor number policy anymore. 2008-06-11 18:55:19 +00:00
vr Fix a multicast handling regression on VT6105M introduced in 2008-07-16 08:35:29 +00:00
vx - vx_stop() requires the driver lock to be held. 2008-04-24 22:51:43 +00:00
watchdog
wds
wi Add an altnerative Siemens SpeedStream ID. This one is for a Prism 3 2008-08-02 20:50:13 +00:00
wl
wpi - Fix compile if WPI_DEBUG is not defined 2008-06-23 15:40:56 +00:00
xe Style(9) xe(4). The MD5 sums are different, but comparing the dissassemblies 2008-06-04 20:26:57 +00:00