Module Name: src Committed By: drochner Date: Wed Aug 29 17:13:23 UTC 2012
Modified Files: src/distrib/sets/lists/comp: md.amd64 md.i386 src/sys/arch/x86/conf: files.x86 src/sys/arch/x86/include: Makefile cpu_ucode.h src/sys/arch/x86/x86: cpu_ucode.c cpu_ucode_amd.c src/sys/arch/xen/conf: files.xen src/sys/arch/xen/xen: xen_ucode.c src/sys/kern: kern_cpu.c src/sys/sys: cpu.h cpuio.h src/usr.sbin/cpuctl: cpuctl.c cpuctl.h src/usr.sbin/cpuctl/arch: i386.c noarch.c Added Files: src/sys/arch/x86/x86: cpu_ucode_intel.c src/sys/compat/sys: cpuio.h Log Message: Extend the CPU microcode update framework to support Intel x86 CPUs. Contrary to the AMD implementation, it doesn't use xcalls to distribute the update to all CPUs but relies on cpuctl(8) to bind itself to the right CPU -- to keep it simple and avoid possible problems with hyperthreading. Also, it doesn't parse the vendor supplied file to pick the right part for the present CPU model but relies on userland to prepare files with specific filenames. I'll commit a pkg for this in a minute (pkgsrc/sysutils/intel-microcode). The ioctl interface changed; compatibility is provided (should be limited to COMPAT_NETBSD6 as soon as this is available). To generate a diff of this commit: cvs rdiff -u -r1.175 -r1.176 src/distrib/sets/lists/comp/md.amd64 cvs rdiff -u -r1.126 -r1.127 src/distrib/sets/lists/comp/md.i386 cvs rdiff -u -r1.78 -r1.79 src/sys/arch/x86/conf/files.x86 cvs rdiff -u -r1.16 -r1.17 src/sys/arch/x86/include/Makefile cvs rdiff -u -r1.1 -r1.2 src/sys/arch/x86/include/cpu_ucode.h cvs rdiff -u -r1.1 -r1.2 src/sys/arch/x86/x86/cpu_ucode.c cvs rdiff -u -r1.3 -r1.4 src/sys/arch/x86/x86/cpu_ucode_amd.c cvs rdiff -u -r0 -r1.1 src/sys/arch/x86/x86/cpu_ucode_intel.c cvs rdiff -u -r1.127 -r1.128 src/sys/arch/xen/conf/files.xen cvs rdiff -u -r1.1 -r1.2 src/sys/arch/xen/xen/xen_ucode.c cvs rdiff -u -r0 -r1.4 src/sys/compat/sys/cpuio.h cvs rdiff -u -r1.56 -r1.57 src/sys/kern/kern_cpu.c cvs rdiff -u -r1.35 -r1.36 src/sys/sys/cpu.h cvs rdiff -u -r1.7 -r1.8 src/sys/sys/cpuio.h cvs rdiff -u -r1.20 -r1.21 src/usr.sbin/cpuctl/cpuctl.c cvs rdiff -u -r1.3 -r1.4 src/usr.sbin/cpuctl/cpuctl.h cvs rdiff -u -r1.31 -r1.32 src/usr.sbin/cpuctl/arch/i386.c cvs rdiff -u -r1.2 -r1.3 src/usr.sbin/cpuctl/arch/noarch.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.