40 lines
1.3 KiB
Diff
40 lines
1.3 KiB
Diff
|
From a47f7cb2f0dbe097b7c848aea05c3224bde07e3c Mon Sep 17 00:00:00 2001
|
||
|
From: Ian Campbell <ijc@hellion.org.uk>
|
||
|
Date: Mon, 26 Nov 2012 09:41:02 +0000
|
||
|
Subject: [PATCH] microcode_xen: Add support for AMD family >= 15h
|
||
|
|
||
|
Signed-off-by: Ian Campbell <ijc@hellion.org.uk>
|
||
|
---
|
||
|
arch/x86/kernel/microcode_xen.c | 8 ++++++--
|
||
|
1 file changed, 6 insertions(+), 2 deletions(-)
|
||
|
|
||
|
diff --git a/arch/x86/kernel/microcode_xen.c b/arch/x86/kernel/microcode_xen.c
|
||
|
index 9d2a06b..5fe87a6 100644
|
||
|
--- a/arch/x86/kernel/microcode_xen.c
|
||
|
+++ b/arch/x86/kernel/microcode_xen.c
|
||
|
@@ -58,7 +58,7 @@ static int xen_microcode_update(int cpu)
|
||
|
|
||
|
static enum ucode_state xen_request_microcode_fw(int cpu, struct device *device)
|
||
|
{
|
||
|
- char name[30];
|
||
|
+ char name[36];
|
||
|
struct cpuinfo_x86 *c = &cpu_data(cpu);
|
||
|
const struct firmware *firmware;
|
||
|
struct ucode_cpu_info *uci = ucode_cpu_info + cpu;
|
||
|
@@ -74,7 +74,11 @@ static enum ucode_state xen_request_microcode_fw(int cpu, struct device *device)
|
||
|
break;
|
||
|
|
||
|
case X86_VENDOR_AMD:
|
||
|
- snprintf(name, sizeof(name), "amd-ucode/microcode_amd.bin");
|
||
|
+ /* Beginning with family 15h AMD uses family-specific firmware files. */
|
||
|
+ if (c->x86 >= 0x15)
|
||
|
+ snprintf(name, sizeof(name), "amd-ucode/microcode_amd_fam%.2xh.bin", c->x86);
|
||
|
+ else
|
||
|
+ snprintf(name, sizeof(name), "amd-ucode/microcode_amd.bin");
|
||
|
break;
|
||
|
|
||
|
default:
|
||
|
--
|
||
|
1.7.10.4
|
||
|
|