From 24e6d0445c7ca209436a6c15c0b955df18052bdf Mon Sep 17 00:00:00 2001 From: Timothy Pearson Date: Thu, 8 Oct 2015 16:58:58 -0500 Subject: [PATCH] cpu/amd/model_10xxx: Install AMD-provided microcode files in CBFS Change-Id: I208b012c6b612a94b3bbc8235d5a005028be8bcc Signed-off-by: Timothy Pearson Reviewed-on: http://review.coreboot.org/11832 Tested-by: build bot (Jenkins) Reviewed-by: Aaron Durbin --- 3rdparty/blobs | 2 +- src/cpu/Kconfig | 8 ++++++++ src/cpu/Makefile.inc | 2 ++ src/cpu/amd/model_10xxx/Kconfig | 1 + src/cpu/amd/model_10xxx/Makefile.inc | 5 ++++- 5 files changed, 16 insertions(+), 2 deletions(-) diff --git a/3rdparty/blobs b/3rdparty/blobs index 832bc6f1f8..aab093f082 160000 --- a/3rdparty/blobs +++ b/3rdparty/blobs @@ -1 +1 @@ -Subproject commit 832bc6f1f8ffafc5ff397fd95616fdae988f224f +Subproject commit aab093f0824b6d26b57a1ce220ba0d577e37ad49 diff --git a/src/cpu/Kconfig b/src/cpu/Kconfig index bfe00fe4e8..578bab2296 100644 --- a/src/cpu/Kconfig +++ b/src/cpu/Kconfig @@ -153,6 +153,14 @@ config CPU_MICROCODE_CBFS_NONE endchoice +config CPU_MICROCODE_MULTIPLE_FILES + bool + default n + depends on CPU_MICROCODE_CBFS_GENERATE + help + Select this option to install separate microcode container files into + CBFS instead of using the traditional monolithic microcode file format. + config CPU_MICROCODE_FILE string "Path and filename of CPU microcode" depends on CPU_MICROCODE_CBFS_EXTERNAL diff --git a/src/cpu/Makefile.inc b/src/cpu/Makefile.inc index 9220a8aa44..d9390610c6 100644 --- a/src/cpu/Makefile.inc +++ b/src/cpu/Makefile.inc @@ -24,9 +24,11 @@ cbfs_include_ucode = y endif ifeq ($(CONFIG_CPU_MICROCODE_CBFS_GENERATE), y) +ifneq ($(CONFIG_CPU_MICROCODE_MULTIPLE_FILES), y) cpu_ucode_cbfs_file = $(obj)/cpu_microcode_blob.bin cbfs_include_ucode = y endif +endif # We just mash all microcode binaries together into one binary to rule them all. # This approach assumes that the microcode binaries are properly padded, and diff --git a/src/cpu/amd/model_10xxx/Kconfig b/src/cpu/amd/model_10xxx/Kconfig index ebd282a5ca..7c47e27ca2 100644 --- a/src/cpu/amd/model_10xxx/Kconfig +++ b/src/cpu/amd/model_10xxx/Kconfig @@ -11,6 +11,7 @@ config CPU_AMD_MODEL_10XXX select UDELAY_LAPIC select HAVE_MONOTONIC_TIMER select SUPPORT_CPU_UCODE_IN_CBFS + select CPU_MICROCODE_MULTIPLE_FILES if CPU_AMD_MODEL_10XXX diff --git a/src/cpu/amd/model_10xxx/Makefile.inc b/src/cpu/amd/model_10xxx/Makefile.inc index 122e47430b..5a81ab8b11 100644 --- a/src/cpu/amd/model_10xxx/Makefile.inc +++ b/src/cpu/amd/model_10xxx/Makefile.inc @@ -8,4 +8,7 @@ ramstage-y += ram_calc.c ramstage-y += monotonic_timer.c ramstage-$(CONFIG_HAVE_ACPI_TABLES) += powernow_acpi.c -cpu_microcode_bins += 3rdparty/blobs/cpu/amd/model_10xxx/microcode.bin +# Microcode for Family 10h, 11h, 12h, and 14h +cbfs-files-$(CONFIG_CPU_MICROCODE_MULTIPLE_FILES) += microcode_amd.bin +microcode_amd.bin-file := 3rdparty/blobs/cpu/amd/family_10h-family_14h/microcode_amd.bin +microcode_amd.bin-type := microcode