aboutsummaryrefslogtreecommitdiffstats
path: root/xen/include/asm-x86/microcode.h
Commit message (Collapse)AuthorAgeFilesLines
* x86/AMD: Add support for AMD's OSVW feature in guests.Boris Ostrovsky2012-02-071-0/+1
| | | | | | | | | | | | | | | | | | In some cases guests should not provide workarounds for errata even when the physical processor is affected. For example, because of erratum 400 on family 10h processors a Linux guest will read an MSR (resulting in VMEXIT) before going to idle in order to avoid getting stuck in a non-C0 state. This is not necessary: HLT and IO instructions are intercepted and therefore there is no reason for erratum 400 workaround in the guest. This patch allows us to present a guest with certain errata as fixed, regardless of the state of actual hardware. Signed-off-by: Boris Ostrovsky <boris.ostrovsky@amd.com> Acked-by: Christoph Egger <Christoph.Egger@amd.com> Signed-off-by: Jan Beulich <jbeulich@suse.com> Acked-by: Keir Fraser <keir@xen.org> Committed-by: Jan Beulich <jbeulich@suse.com>
* x86: consolidate microcode loading codeJan Beulich2011-12-011-63/+1
| | | | | | | | | | | | | | | | | | | | | | - memory was leaked on a CPU offline/online cycle (including S3) - memory was leaked on AMD systems when microcode_update() ran a 2nd time with the same data that was used on the first run - microcode never got restored on APs during S3 resume (or post-boot onlining of a CPU that was also online when microcode_update() first ran [in the event the prior microcode update got lost intermediately, which supposedly shouldn't happen]); this will still be the case when no other online CPU has an identical signature (which however is now consistent with bringing up such a CPU the very first time) - resume was unimplemented in the AMD case - there was a race between microcode_update_cpu() and microcode_resume_cpu() This also moves vendor specific type declarations to the vendor source file and sets the stage for boot time microcode loading (i.e. without Dom0 involvement). Signed-off-by: Jan Beulich <jbeulich@suse.com> Acked-by: Keir Fraser <keir@xen.org>
* x86: move ucode_cpu_info into per-CPU spaceKeir Fraser2009-07-131-1/+3
| | | | Signed-off-by: Jan Beulich <jbeulich@novell.com>
* x86 ucode: add S3 microcode updateKeir Fraser2009-01-221-0/+1
| | | | | | | When wakeup from S3, use per cpu microcode image to update cpu microcode. Signed-off-by: Liu, Jinsong <jinsong.liu@intel.com>
* x86 ucode: cancel redundant input parameter of microcode functionsKeir Fraser2009-01-221-3/+2
| | | | | | | Cancel redundant input parameter 'uci', since it can get from another input parameter 'cpu' as index. Signed-off-by: Liu, Jinsong <jinsong.liu@intel.com>
* x86: update microcode supportKeir Fraser2009-01-201-26/+27
| | | | | | | | | | | | | | | | | - Container header file holding the patches changed. Update to new format. - in cpu_request_microcode() move heap re-allocation & copy out of the loop. Side-effect: Remove limitation in only supporting fixed sized microcode patches. Also simplifies code a lot. - cleanup: use rdmsr and wrmsrl instead of inlined assembler - pass ucode_cpu_info as arguments. Improves reentrancy. - cleanup: simplify struct ucode_cpu_info and remove get_matching_microcode hook. Side-effect: reduces kernel size. - bugfix: fix xen kernel memory leak in error path. equiv_cpu_table was not freed. Signed-off-by: Christoph Egger <Christoph.Egger@amd.com>
* x86, microcode: More code cleanups.Keir Fraser2008-09-161-57/+53
| | | | Signed-off-by: Keir Fraser <keir.fraser@citrix.com>
* x86, microcode: Clean up for Xen coding style, and disable for nowKeir Fraser2008-09-161-4/+1
| | | | | | (until allocations in irq context are fixed). Signed-off-by: Keir Fraser <keir.fraser@citrix.com>
* x86: microcode update support for AMD CPUsKeir Fraser2008-09-121-0/+100
Microcode update support for AMD CPUs Family10h and Family11h. It is based on a patch for Linux which is on its way for 2.6.28. Signed-off-by: Christoph Egger <Christoph.Egger@amd.com>