diff options
author | sherrym <none@none> | 2007-07-02 14:05:35 -0700 |
---|---|---|
committer | sherrym <none@none> | 2007-07-02 14:05:35 -0700 |
commit | 2449e17f82f6097fd2c665b64723e31ceecbeca6 (patch) | |
tree | 4adce4537b78e91f1ac4f87433c9dddb715fffd2 /usr/src/uts/intel/sys | |
parent | 76bc40308a78598795fbedd14f726061bcd17cad (diff) | |
download | illumos-joyent-2449e17f82f6097fd2c665b64723e31ceecbeca6.tar.gz |
PSARC/2007/349 Intel Microcode Update Support
6558456 Need to support microcode update on Intel platforms
Diffstat (limited to 'usr/src/uts/intel/sys')
-rw-r--r-- | usr/src/uts/intel/sys/controlregs.h | 10 | ||||
-rw-r--r-- | usr/src/uts/intel/sys/x86_archext.h | 8 |
2 files changed, 18 insertions, 0 deletions
diff --git a/usr/src/uts/intel/sys/controlregs.h b/usr/src/uts/intel/sys/controlregs.h index 385a89fe07..8acded36d8 100644 --- a/usr/src/uts/intel/sys/controlregs.h +++ b/usr/src/uts/intel/sys/controlregs.h @@ -135,6 +135,16 @@ extern "C" { #define MSR_INTC_SEP_ESP 0x175 /* kernel esp MSR */ #define MSR_INTC_SEP_EIP 0x176 /* kernel eip MSR */ +/* Intel's microcode registers */ +#define MSR_INTC_UCODE_WRITE 0x79 /* microcode write */ +#define MSR_INTC_UCODE_REV 0x8b /* microcode revision */ +#define INTC_UCODE_REV_SHIFT 32 /* Bits 63:32 */ + +/* Intel's platform identification */ +#define MSR_INTC_PLATFORM_ID 0x17 +#define INTC_PLATFORM_ID_SHIFT 50 /* Bit 52:50 */ +#define INTC_PLATFORM_ID_MASK 0x7 + /* AMD's EFER register */ #define MSR_AMD_EFER 0xc0000080 /* extended feature enable MSR */ diff --git a/usr/src/uts/intel/sys/x86_archext.h b/usr/src/uts/intel/sys/x86_archext.h index 9e0bde9041..347e7c5472 100644 --- a/usr/src/uts/intel/sys/x86_archext.h +++ b/usr/src/uts/intel/sys/x86_archext.h @@ -554,6 +554,7 @@ extern uint_t cpuid_getvendor(struct cpu *); extern uint_t cpuid_getfamily(struct cpu *); extern uint_t cpuid_getmodel(struct cpu *); extern uint_t cpuid_getstep(struct cpu *); +extern uint_t cpuid_getsig(struct cpu *); extern uint_t cpuid_get_ncpu_per_chip(struct cpu *); extern uint_t cpuid_get_ncore_per_chip(struct cpu *); extern int cpuid_get_chipid(struct cpu *); @@ -584,6 +585,13 @@ extern void cpuid_get_addrsize(struct cpu *, uint_t *, uint_t *); extern uint_t cpuid_get_dtlb_nent(struct cpu *, size_t); extern size_t cpuid_get_mwait_size(struct cpu *cpu); +struct cpu_ucode_info; + +extern void ucode_alloc_space(struct cpu *); +extern void ucode_free_space(struct cpu *); +extern void ucode_check(struct cpu *); +extern void ucode_free(); + extern uint_t workaround_errata(struct cpu *); #if defined(OPTERON_ERRATUM_93) |