From 0a2929bb73fc5da4a97c517137601a2cf8d22b1e Mon Sep 17 00:00:00 2001 From: Ian Campbell Date: Mon, 26 Nov 2012 09:41:02 +0000 Subject: [PATCH] microcode_xen: Add support for AMD family >= 15h Signed-off-by: Ian Campbell Signed-off-by: Konrad Rzeszutek Wilk (cherry picked from commit 8b080aa43b95719d8981ba06f357abb6f0ba9d52) Signed-off-by: Konrad Rzeszutek Wilk --- 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 6a73957dd1875..9e50566c735fa 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: -- 2.50.1