e085f869d5
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
371 lines
15 KiB
Plaintext
371 lines
15 KiB
Plaintext
# This file tells config what files go into building a kernel,
|
|
# files marked standard are always included.
|
|
#
|
|
# $FreeBSD$
|
|
#
|
|
# The long compile-with and dependency lines are required because of
|
|
# limitations in config: backslash-newline doesn't work in strings, and
|
|
# dependency lines other than the first are silently ignored.
|
|
#
|
|
linux_genassym.o optional compat_linux \
|
|
dependency "$S/i386/linux/linux_genassym.c" \
|
|
compile-with "${CC} ${CFLAGS:N-fno-common} -c ${.IMPSRC}" \
|
|
no-obj no-implicit-rule \
|
|
clean "linux_genassym.o"
|
|
#
|
|
linux_assym.h optional compat_linux \
|
|
dependency "$S/kern/genassym.sh linux_genassym.o" \
|
|
compile-with "sh $S/kern/genassym.sh linux_genassym.o > ${.TARGET}" \
|
|
no-obj no-implicit-rule before-depend \
|
|
clean "linux_assym.h"
|
|
#
|
|
svr4_genassym.o optional compat_svr4 \
|
|
dependency "$S/i386/svr4/svr4_genassym.c" \
|
|
compile-with "${CC} ${CFLAGS:N-fno-common} -c ${.IMPSRC}" \
|
|
no-obj no-implicit-rule \
|
|
clean "svr4_genassym.o"
|
|
#
|
|
svr4_assym.h optional compat_svr4 \
|
|
dependency "$S/kern/genassym.sh svr4_genassym.o" \
|
|
compile-with "sh $S/kern/genassym.sh svr4_genassym.o > ${.TARGET}" \
|
|
no-obj no-implicit-rule before-depend \
|
|
clean "svr4_assym.h"
|
|
#
|
|
font.h optional sc_dflt_font \
|
|
compile-with "uudecode < /usr/share/syscons/fonts/${SC_DFLT_FONT}-8x16.fnt && file2c 'static u_char dflt_font_16[16*256] = {' '};' < ${SC_DFLT_FONT}-8x16 > font.h && uudecode < /usr/share/syscons/fonts/${SC_DFLT_FONT}-8x14.fnt && file2c 'static u_char dflt_font_14[14*256] = {' '};' < ${SC_DFLT_FONT}-8x14 >> font.h && uudecode < /usr/share/syscons/fonts/${SC_DFLT_FONT}-8x8.fnt && file2c 'static u_char dflt_font_8[8*256] = {' '};' < ${SC_DFLT_FONT}-8x8 >> font.h" \
|
|
no-obj no-implicit-rule before-depend \
|
|
clean "font.h ${SC_DFLT_FONT}-8x14 ${SC_DFLT_FONT}-8x16 ${SC_DFLT_FONT}-8x8"
|
|
#
|
|
atkbdmap.h optional atkbd_dflt_keymap \
|
|
compile-with "/usr/sbin/kbdcontrol -L ${ATKBD_DFLT_KEYMAP} | sed -e 's/^static keymap_t.* = /static keymap_t key_map = /' -e 's/^static accentmap_t.* = /static accentmap_t accent_map = /' > atkbdmap.h" \
|
|
no-obj no-implicit-rule before-depend \
|
|
clean "atkbdmap.h"
|
|
#
|
|
ukbdmap.h optional ukbd_dflt_keymap \
|
|
compile-with "/usr/sbin/kbdcontrol -L ${UKBD_DFLT_KEYMAP} | sed -e 's/^static keymap_t.* = /static keymap_t key_map = /' -e 's/^static accentmap_t.* = /static accentmap_t accent_map = /' > ukbdmap.h" \
|
|
no-obj no-implicit-rule before-depend \
|
|
clean "ukbdmap.h"
|
|
#
|
|
hal.o optional ath_hal \
|
|
dependency "$S/contrib/dev/ath/public/i386-elf.hal.o.uu" \
|
|
compile-with "uudecode < $S/contrib/dev/ath/public/i386-elf.hal.o.uu" \
|
|
no-implicit-rule
|
|
opt_ah.h optional ath_hal \
|
|
dependency "$S/contrib/dev/ath/public/i386-elf.opt_ah.h" \
|
|
compile-with "rm -f opt_ah.h; cp $S/contrib/dev/ath/public/i386-elf.opt_ah.h opt_ah.h" \
|
|
no-obj no-implicit-rule before-depend \
|
|
clean "opt_ah.h"
|
|
#
|
|
nvenetlib.o optional nve pci \
|
|
dependency "$S/contrib/dev/nve/i386/nvenetlib.o.bz2.uu" \
|
|
compile-with "uudecode $S/contrib/dev/nve/i386/nvenetlib.o.bz2.uu ; bzip2 -df nvenetlib.o.bz2" \
|
|
no-implicit-rule
|
|
#
|
|
os+%DIKED-nve.h optional nve pci \
|
|
dependency "$S/contrib/dev/nve/os.h" \
|
|
compile-with "sed -e 's/^.*#include.*phy\.h.*$$//' $S/contrib/dev/nve/os.h > os+%DIKED-nve.h" \
|
|
no-implicit-rule no-obj before-depend \
|
|
clean "os+%DIKED-nve.h"
|
|
#
|
|
hptmvraid.o optional hptmv \
|
|
dependency "$S/dev/hptmv/i386-elf.raid.o.uu" \
|
|
compile-with "uudecode < $S/dev/hptmv/i386-elf.raid.o.uu" \
|
|
no-implicit-rule
|
|
#
|
|
hptrr_lib.o optional hptrr \
|
|
dependency "$S/dev/hptrr/i386-elf.hptrr_lib.o.uu" \
|
|
compile-with "uudecode < $S/dev/hptrr/i386-elf.hptrr_lib.o.uu" \
|
|
no-implicit-rule
|
|
#
|
|
compat/linprocfs/linprocfs.c optional linprocfs
|
|
compat/linsysfs/linsysfs.c optional linsysfs
|
|
compat/linux/linux_emul.c optional compat_linux
|
|
compat/linux/linux_file.c optional compat_linux
|
|
compat/linux/linux_futex.c optional compat_linux
|
|
compat/linux/linux_getcwd.c optional compat_linux
|
|
compat/linux/linux_ioctl.c optional compat_linux
|
|
compat/linux/linux_ipc.c optional compat_linux
|
|
compat/linux/linux_mib.c optional compat_linux
|
|
compat/linux/linux_misc.c optional compat_linux
|
|
compat/linux/linux_signal.c optional compat_linux
|
|
compat/linux/linux_socket.c optional compat_linux
|
|
compat/linux/linux_stats.c optional compat_linux
|
|
compat/linux/linux_sysctl.c optional compat_linux
|
|
compat/linux/linux_time.c optional compat_linux
|
|
compat/linux/linux_uid16.c optional compat_linux
|
|
compat/linux/linux_util.c optional compat_linux
|
|
compat/ndis/kern_ndis.c optional ndisapi pci
|
|
compat/ndis/kern_windrv.c optional ndisapi pci
|
|
compat/ndis/subr_hal.c optional ndisapi pci
|
|
compat/ndis/subr_ndis.c optional ndisapi pci
|
|
compat/ndis/subr_ntoskrnl.c optional ndisapi pci
|
|
compat/ndis/subr_pe.c optional ndisapi pci
|
|
compat/ndis/subr_usbd.c optional ndisapi pci
|
|
compat/ndis/winx32_wrap.S optional ndisapi pci
|
|
compat/svr4/imgact_svr4.c optional compat_svr4
|
|
compat/svr4/svr4_fcntl.c optional compat_svr4
|
|
compat/svr4/svr4_filio.c optional compat_svr4
|
|
compat/svr4/svr4_ioctl.c optional compat_svr4
|
|
compat/svr4/svr4_ipc.c optional compat_svr4
|
|
compat/svr4/svr4_misc.c optional compat_svr4
|
|
compat/svr4/svr4_resource.c optional compat_svr4
|
|
compat/svr4/svr4_signal.c optional compat_svr4
|
|
compat/svr4/svr4_socket.c optional compat_svr4
|
|
compat/svr4/svr4_sockio.c optional compat_svr4
|
|
compat/svr4/svr4_stat.c optional compat_svr4
|
|
compat/svr4/svr4_stream.c optional compat_svr4
|
|
compat/svr4/svr4_syscallnames.c optional compat_svr4
|
|
compat/svr4/svr4_sysent.c optional compat_svr4
|
|
compat/svr4/svr4_sysvec.c optional compat_svr4
|
|
compat/svr4/svr4_termios.c optional compat_svr4
|
|
compat/svr4/svr4_ttold.c optional compat_svr4
|
|
bf_enc.o optional crypto | ipsec \
|
|
dependency "$S/crypto/blowfish/arch/i386/bf_enc.S $S/crypto/blowfish/arch/i386/bf_enc_586.S $S/crypto/blowfish/arch/i386/bf_enc_686.S" \
|
|
compile-with "${CC} -c -I$S/crypto/blowfish/arch/i386 ${ASM_CFLAGS} ${WERROR} ${.IMPSRC}" \
|
|
no-implicit-rule
|
|
crypto/des/arch/i386/des_enc.S optional crypto | ipsec | netsmb
|
|
crypto/via/padlock.c optional padlock
|
|
crypto/via/padlock_cipher.c optional padlock
|
|
crypto/via/padlock_hash.c optional padlock
|
|
dev/advansys/adv_isa.c optional adv isa
|
|
dev/agp/agp_ali.c optional agp
|
|
dev/agp/agp_amd.c optional agp
|
|
dev/agp/agp_amd64.c optional agp
|
|
dev/agp/agp_ati.c optional agp
|
|
dev/agp/agp_i810.c optional agp
|
|
dev/agp/agp_intel.c optional agp
|
|
dev/agp/agp_nvidia.c optional agp
|
|
dev/agp/agp_sis.c optional agp
|
|
dev/agp/agp_via.c optional agp
|
|
dev/aic/aic_isa.c optional aic isa
|
|
dev/arcmsr/arcmsr.c optional arcmsr pci
|
|
dev/ar/if_ar.c optional ar
|
|
dev/ar/if_ar_isa.c optional ar isa
|
|
dev/ar/if_ar_pci.c optional ar pci
|
|
dev/asmc/asmc.c optional asmc isa
|
|
dev/atkbdc/atkbd.c optional atkbd atkbdc
|
|
dev/atkbdc/atkbd_atkbdc.c optional atkbd atkbdc
|
|
dev/atkbdc/atkbdc.c optional atkbdc
|
|
dev/atkbdc/atkbdc_isa.c optional atkbdc isa
|
|
dev/atkbdc/atkbdc_subr.c optional atkbdc
|
|
dev/atkbdc/psm.c optional psm atkbdc
|
|
dev/ce/ceddk.c optional ce
|
|
dev/ce/if_ce.c optional ce
|
|
dev/ce/tau32-ddk.c optional ce
|
|
dev/cm/if_cm_isa.c optional cm isa
|
|
dev/coretemp/coretemp.c optional coretemp
|
|
dev/cp/cpddk.c optional cp
|
|
dev/cp/if_cp.c optional cp
|
|
dev/cpuctl/cpuctl.c optional cpuctl
|
|
dev/ctau/ctau.c optional ctau
|
|
dev/ctau/ctddk.c optional ctau
|
|
dev/ctau/if_ct.c optional ctau
|
|
dev/cx/csigma.c optional cx
|
|
dev/cx/cxddk.c optional cx
|
|
dev/cx/if_cx.c optional cx
|
|
dev/ed/if_ed_3c503.c optional ed isa ed_3c503
|
|
dev/ed/if_ed_isa.c optional ed isa
|
|
dev/ed/if_ed_wd80x3.c optional ed isa
|
|
dev/ed/if_ed_hpp.c optional ed isa ed_hpp
|
|
dev/ed/if_ed_sic.c optional ed isa ed_sic
|
|
dev/fb/fb.c optional fb | vga
|
|
dev/fb/vga.c optional vga
|
|
dev/fdc/fdc.c optional fdc
|
|
dev/fdc/fdc_acpi.c optional fdc
|
|
dev/fdc/fdc_isa.c optional fdc isa
|
|
dev/fdc/fdc_pccard.c optional fdc pccard
|
|
dev/fe/if_fe_isa.c optional fe isa
|
|
dev/hptmv/entry.c optional hptmv
|
|
dev/hptmv/mv.c optional hptmv
|
|
dev/hptmv/gui_lib.c optional hptmv
|
|
dev/hptmv/hptproc.c optional hptmv
|
|
dev/hptmv/ioctl.c optional hptmv
|
|
dev/hptrr/hptrr_os_bsd.c optional hptrr
|
|
dev/hptrr/hptrr_osm_bsd.c optional hptrr
|
|
dev/hptrr/hptrr_config.c optional hptrr
|
|
dev/hwpmc/hwpmc_amd.c optional hwpmc
|
|
dev/hwpmc/hwpmc_pentium.c optional hwpmc
|
|
dev/hwpmc/hwpmc_piv.c optional hwpmc
|
|
dev/hwpmc/hwpmc_ppro.c optional hwpmc
|
|
dev/hwpmc/hwpmc_x86.c optional hwpmc
|
|
dev/ichwd/ichwd.c optional ichwd
|
|
dev/if_ndis/if_ndis.c optional ndis
|
|
dev/if_ndis/if_ndis_pccard.c optional ndis pccard
|
|
dev/if_ndis/if_ndis_pci.c optional ndis cardbus | ndis pci
|
|
dev/if_ndis/if_ndis_usb.c optional ndis usb
|
|
dev/io/iodev.c optional io
|
|
dev/ipmi/ipmi.c optional ipmi
|
|
dev/ipmi/ipmi_acpi.c optional ipmi acpi
|
|
dev/ipmi/ipmi_isa.c optional ipmi isa
|
|
dev/ipmi/ipmi_kcs.c optional ipmi
|
|
dev/ipmi/ipmi_smic.c optional ipmi
|
|
dev/ipmi/ipmi_smbus.c optional ipmi smbus
|
|
dev/ipmi/ipmi_smbios.c optional ipmi
|
|
dev/ipmi/ipmi_ssif.c optional ipmi smbus
|
|
dev/ipmi/ipmi_pci.c optional ipmi pci
|
|
dev/kbd/kbd.c optional atkbd | sc | ukbd
|
|
dev/le/if_le_isa.c optional le isa
|
|
dev/mem/memutil.c optional mem
|
|
dev/mse/mse.c optional mse
|
|
dev/mse/mse_isa.c optional mse isa
|
|
dev/nfe/if_nfe.c optional nfe pci
|
|
dev/nve/if_nve.c optional nve pci
|
|
dev/nvram/nvram.c optional nvram isa
|
|
dev/pcf/pcf_isa.c optional pcf
|
|
dev/random/nehemiah.c optional random
|
|
dev/sio/sio.c optional sio
|
|
dev/sio/sio_isa.c optional sio isa
|
|
dev/sio/sio_pccard.c optional sio pccard
|
|
dev/sio/sio_pci.c optional sio pci
|
|
dev/sio/sio_puc.c optional sio puc
|
|
dev/speaker/spkr.c optional speaker
|
|
dev/sr/if_sr_isa.c optional sr isa
|
|
dev/syscons/apm/apm_saver.c optional apm_saver apm
|
|
dev/syscons/scterm-sc.c optional sc
|
|
dev/syscons/scvesactl.c optional sc vga vesa
|
|
dev/syscons/scvgarndr.c optional sc vga
|
|
dev/syscons/scvtb.c optional sc
|
|
dev/uart/uart_cpu_i386.c optional uart
|
|
dev/acpica/acpi_if.m standard
|
|
dev/wpi/if_wpi.c optional wpi
|
|
i386/acpica/OsdEnvironment.c optional acpi
|
|
i386/acpica/acpi_machdep.c optional acpi
|
|
i386/acpica/acpi_wakeup.c optional acpi
|
|
acpi_wakecode.h optional acpi \
|
|
dependency "$S/i386/acpica/acpi_wakecode.S assym.s" \
|
|
compile-with "${MAKE} -f $S/i386/acpica/Makefile MAKESRCPATH=$S/i386/acpica" \
|
|
no-obj no-implicit-rule before-depend \
|
|
clean "acpi_wakecode.h acpi_wakecode.o acpi_wakecode.bin"
|
|
#
|
|
i386/acpica/madt.c optional acpi apic
|
|
i386/bios/apm.c optional apm
|
|
i386/bios/mca_machdep.c optional mca
|
|
i386/bios/smapi.c optional smapi
|
|
i386/bios/smapi_bios.S optional smapi
|
|
i386/bios/smbios.c optional smbios
|
|
i386/bios/vpd.c optional vpd
|
|
i386/cpufreq/est.c optional cpufreq
|
|
i386/cpufreq/p4tcc.c optional cpufreq
|
|
i386/cpufreq/powernow.c optional cpufreq
|
|
i386/cpufreq/smist.c optional cpufreq
|
|
#i386/i386/apic_vector.s optional apic
|
|
i386/i386/atomic.c standard \
|
|
compile-with "${CC} -c ${CFLAGS} ${DEFINED_PROF:S/^$/-fomit-frame-pointer/} ${.IMPSRC}"
|
|
i386/i386/autoconf.c standard
|
|
i386/i386/bios.c standard
|
|
i386/i386/bioscall.s standard
|
|
i386/i386/bpf_jit_machdep.c optional bpf_jitter
|
|
i386/i386/busdma_machdep.c standard
|
|
i386/i386/db_disasm.c optional ddb
|
|
i386/i386/db_interface.c optional ddb
|
|
i386/i386/db_trace.c optional ddb
|
|
i386/i386/dump_machdep.c standard
|
|
i386/i386/elan-mmcr.c optional cpu_elan | cpu_soekris
|
|
i386/i386/elf_machdep.c standard
|
|
i386/i386/exception.s standard
|
|
i386/i386/gdb_machdep.c optional gdb
|
|
i386/i386/geode.c optional cpu_geode
|
|
i386/i386/i686_mem.c optional mem
|
|
i386/i386/identcpu.c standard
|
|
i386/i386/in_cksum.c optional inet
|
|
i386/i386/initcpu.c standard
|
|
i386/i386/intr_machdep.c standard
|
|
i386/i386/io.c optional io
|
|
i386/i386/io_apic.c optional apic
|
|
i386/i386/k6_mem.c optional mem
|
|
i386/i386/legacy.c standard
|
|
i386/i386/local_apic.c optional apic
|
|
i386/i386/locore.s standard no-obj
|
|
i386/i386/longrun.c optional cpu_enable_longrun
|
|
i386/i386/machdep.c standard
|
|
i386/i386/mem.c optional mem
|
|
i386/i386/minidump_machdep.c standard
|
|
i386/i386/mp_clock.c optional smp
|
|
i386/i386/mp_machdep.c optional smp
|
|
i386/i386/mp_watchdog.c optional mp_watchdog smp
|
|
i386/i386/mpboot.s optional smp
|
|
i386/i386/mptable.c optional apic
|
|
i386/i386/mptable_pci.c optional apic pci
|
|
i386/i386/msi.c optional apic pci
|
|
i386/i386/nexus.c standard
|
|
i386/i386/perfmon.c optional perfmon
|
|
i386/i386/pmap.c standard
|
|
i386/i386/ptrace_machdep.c standard
|
|
i386/i386/stack_machdep.c optional ddb | stack
|
|
i386/i386/support.s standard
|
|
i386/i386/swtch.s standard
|
|
i386/i386/sys_machdep.c standard
|
|
i386/i386/trap.c standard
|
|
i386/i386/tsc.c standard
|
|
i386/i386/uio_machdep.c standard
|
|
i386/i386/vm86.c standard
|
|
i386/i386/vm_machdep.c standard
|
|
i386/ibcs2/ibcs2_errno.c optional ibcs2
|
|
i386/ibcs2/ibcs2_fcntl.c optional ibcs2
|
|
i386/ibcs2/ibcs2_ioctl.c optional ibcs2
|
|
i386/ibcs2/ibcs2_ipc.c optional ibcs2
|
|
i386/ibcs2/ibcs2_isc.c optional ibcs2
|
|
i386/ibcs2/ibcs2_isc_sysent.c optional ibcs2
|
|
i386/ibcs2/ibcs2_misc.c optional ibcs2
|
|
i386/ibcs2/ibcs2_msg.c optional ibcs2
|
|
i386/ibcs2/ibcs2_other.c optional ibcs2
|
|
i386/ibcs2/ibcs2_signal.c optional ibcs2
|
|
i386/ibcs2/ibcs2_socksys.c optional ibcs2
|
|
i386/ibcs2/ibcs2_stat.c optional ibcs2
|
|
i386/ibcs2/ibcs2_sysent.c optional ibcs2
|
|
i386/ibcs2/ibcs2_sysi86.c optional ibcs2
|
|
i386/ibcs2/ibcs2_sysvec.c optional ibcs2
|
|
i386/ibcs2/ibcs2_util.c optional ibcs2
|
|
i386/ibcs2/ibcs2_xenix.c optional ibcs2
|
|
i386/ibcs2/ibcs2_xenix_sysent.c optional ibcs2
|
|
i386/ibcs2/imgact_coff.c optional ibcs2
|
|
i386/isa/atpic.c standard
|
|
#i386/isa/atpic_vector.s standard
|
|
i386/isa/clock.c standard
|
|
i386/isa/elcr.c standard
|
|
i386/isa/elink.c optional ep | ie
|
|
i386/isa/isa.c optional isa
|
|
i386/isa/isa_dma.c optional isa
|
|
i386/isa/nmi.c standard
|
|
i386/isa/npx.c optional npx
|
|
i386/isa/pmtimer.c optional pmtimer
|
|
i386/isa/prof_machdep.c optional profiling-routine
|
|
i386/isa/spic.c optional spic
|
|
i386/isa/vesa.c optional vga vesa
|
|
i386/linux/imgact_linux.c optional compat_linux
|
|
i386/linux/linux_dummy.c optional compat_linux
|
|
i386/linux/linux_locore.s optional compat_linux \
|
|
dependency "linux_assym.h"
|
|
i386/linux/linux_machdep.c optional compat_linux
|
|
i386/linux/linux_ptrace.c optional compat_linux
|
|
i386/linux/linux_support.s optional compat_linux \
|
|
dependency "linux_assym.h"
|
|
i386/linux/linux_sysent.c optional compat_linux
|
|
i386/linux/linux_sysvec.c optional compat_linux
|
|
i386/pci/pci_bus.c optional pci
|
|
i386/pci/pci_cfgreg.c optional pci
|
|
i386/pci/pci_pir.c optional pci
|
|
i386/svr4/svr4_locore.s optional compat_svr4 \
|
|
dependency "svr4_assym.h" \
|
|
warning "COMPAT_SVR4 is broken and should be avoided"
|
|
i386/svr4/svr4_machdep.c optional compat_svr4
|
|
#
|
|
isa/atrtc.c standard
|
|
isa/syscons_isa.c optional sc
|
|
isa/vga_isa.c optional vga
|
|
kern/imgact_aout.c optional compat_aout
|
|
kern/imgact_gzip.c optional gzip
|
|
libkern/divdi3.c standard
|
|
libkern/ffsl.c standard
|
|
libkern/flsl.c standard
|
|
libkern/memset.c standard
|
|
libkern/moddi3.c standard
|
|
libkern/qdivrem.c standard
|
|
libkern/ucmpdi2.c standard
|
|
libkern/udivdi3.c standard
|
|
libkern/umoddi3.c standard
|
|
i386/xbox/xbox.c optional xbox
|
|
i386/xbox/xboxfb.c optional xboxfb
|
|
dev/fb/boot_font.c optional xboxfb
|
|
i386/xbox/pic16l.s optional xbox
|