summaryrefslogtreecommitdiff
path: root/usr/src/uts/intel/sys
diff options
context:
space:
mode:
authorsherrym <none@none>2007-07-02 14:05:35 -0700
committersherrym <none@none>2007-07-02 14:05:35 -0700
commit2449e17f82f6097fd2c665b64723e31ceecbeca6 (patch)
tree4adce4537b78e91f1ac4f87433c9dddb715fffd2 /usr/src/uts/intel/sys
parent76bc40308a78598795fbedd14f726061bcd17cad (diff)
downloadillumos-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.h10
-rw-r--r--usr/src/uts/intel/sys/x86_archext.h8
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)