summaryrefslogtreecommitdiff
path: root/xen/arch/x86/include/asm/microcode.h
blob: 62ce3418f7be2e54857f3f624ab586be90b401d0 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
#ifndef ASM_X86__MICROCODE_H
#define ASM_X86__MICROCODE_H

#include <xen/types.h>
#include <xen/percpu.h>

#include <public/xen.h>

struct multiboot_info;

struct cpu_signature {
    /* CPU signature (CPUID.1.EAX). */
    unsigned int sig;

    /* Platform Flags.  Only applicable to Intel. */
    unsigned int pf;

    /* Microcode Revision. */
    unsigned int rev;
};

DECLARE_PER_CPU(struct cpu_signature, cpu_sig);

void microcode_set_module(unsigned int idx);
int microcode_update(XEN_GUEST_HANDLE(const_void), unsigned long len);
int early_microcode_init(unsigned long *module_map,
                         const struct multiboot_info *mbi);
int microcode_init_cache(unsigned long *module_map,
                         const struct multiboot_info *mbi);
int microcode_update_one(void);

#endif /* ASM_X86__MICROCODE_H */