123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109 |
- From 9cd31ddc0614247bfe2ee5d51f304667b84306c7 Mon Sep 17 00:00:00 2001
- From: Leah Rowe <leah@libreboot.org>
- Date: Thu, 6 May 2021 17:07:06 +0100
- Subject: [PATCH 10/10] Do not use microcode updates on AMD platforms
- Coreboot is hardcoding the use of microcode updates on some platforms.
- Just nuke it from orbit. This is the libre branch of osboot, so microcode must
- not be used.
- ---
- src/cpu/Makefile.inc | 52 +------------------
- src/cpu/amd/family_10h-family_15h/Kconfig | 1 -
- .../amd/family_10h-family_15h/Makefile.inc | 10 +---
- 3 files changed, 2 insertions(+), 61 deletions(-)
- diff --git a/src/cpu/Makefile.inc b/src/cpu/Makefile.inc
- index 66ee2f9169..dcf02d5f67 100644
- --- a/src/cpu/Makefile.inc
- +++ b/src/cpu/Makefile.inc
- @@ -16,54 +16,4 @@ $(eval $(call create_class_compiler,cpu_microcode,x86_32))
- ## Rules for building the microcode blob in CBFS
- ################################################################################
-
- -ifneq ($(CONFIG_CPU_MICROCODE_MULTIPLE_FILES), y)
- -cbfs-files-$(CONFIG_USE_CPU_MICROCODE_CBFS_BINS) += cpu_microcode_blob.bin
- -endif
- -
- -ifeq ($(CONFIG_CPU_MICROCODE_CBFS_EXTERNAL_HEADER),y)
- -cbfs-files-y += cpu_microcode_blob.bin
- -cpu_microcode_blob.bin-file = $(objgenerated)/microcode.bin
- -
- -$(objgenerated)/microcode.bin: $(call strip_quotes,$(CONFIG_CPU_MICROCODE_HEADER_FILES))
- - echo " util/scripts/ucode_h_to_bin.sh $(objgenerated)/microcode.bin \"$(CONFIG_CPU_MICROCODE_HEADER_FILES)\""
- - util/scripts/ucode_h_to_bin.sh $(objgenerated)/microcode.bin $(CONFIG_CPU_MICROCODE_HEADER_FILES)
- -endif
- -
- -ifeq ($(CONFIG_CPU_MICROCODE_CBFS_EXTERNAL_BINS),y)
- -cpu_microcode_bins := $(call strip_quotes,$(CONFIG_CPU_UCODE_BINARIES))
- -endif
- -# otherwise `cpu_microcode_bins` should be filled by platform makefiles
- -
- -# 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
- -# their headers specify the correct size. This works fairly well on isolatied
- -# updates, such as Intel and some AMD microcode, but won't work very well if the
- -# updates are wrapped in a container, like AMD's microcode update container. If
- -# there is only one microcode binary (i.e. one container), then we don't have
- -# this issue, and this rule will continue to work.
- -$(obj)/cpu_microcode_blob.bin: $$(wildcard $$(cpu_microcode_bins))
- - for bin in $(cpu_microcode_bins); do \
- - if [ ! -f "$$bin" ]; then \
- - echo "Microcode error: $$bin does not exist"; \
- - NO_MICROCODE_FILE=1; \
- - fi; \
- - done; \
- - if [ -n "$$NO_MICROCODE_FILE" ]; then \
- - if [ -z "$(CONFIG_USE_BLOBS)" ] && [ -n "$(CONFIG_CPU_MICROCODE_CBFS_DEFAULT_BINS)" ]; then \
- - echo "Try enabling binary-only repository in Kconfig 'General setup' menu."; \
- - fi; \
- - false; \
- - fi
- - $(if $^,,false) # fail if no file is given at all
- - @printf " MICROCODE $(subst $(obj)/,,$(@))\n"
- - @echo $(cpu_microcode_bins)
- - cat $^ > $@
- -
- -cpu_microcode_blob.bin-file ?= $(obj)/cpu_microcode_blob.bin
- -cpu_microcode_blob.bin-type := microcode
- -
- -ifneq ($(CONFIG_CPU_MICROCODE_CBFS_LOC),)
- -cpu_microcode_blob.bin-COREBOOT-position := $(CONFIG_CPU_MICROCODE_CBFS_LOC)
- -else
- -cpu_microcode_blob.bin-align := 16
- -endif
- +# No microcode permitted in this version of coreboot.
- diff --git a/src/cpu/amd/family_10h-family_15h/Kconfig b/src/cpu/amd/family_10h-family_15h/Kconfig
- index ad4f5f4ba6..21150ab1a7 100644
- --- a/src/cpu/amd/family_10h-family_15h/Kconfig
- +++ b/src/cpu/amd/family_10h-family_15h/Kconfig
- @@ -8,7 +8,6 @@ config CPU_AMD_MODEL_10XXX
- select TSC_SYNC_LFENCE
- select UDELAY_LAPIC
- select SUPPORT_CPU_UCODE_IN_CBFS
- - select CPU_MICROCODE_MULTIPLE_FILES
- select CAR_GLOBAL_MIGRATION
-
- if CPU_AMD_MODEL_10XXX
- diff --git a/src/cpu/amd/family_10h-family_15h/Makefile.inc b/src/cpu/amd/family_10h-family_15h/Makefile.inc
- index 7035323026..e0029f562d 100644
- --- a/src/cpu/amd/family_10h-family_15h/Makefile.inc
- +++ b/src/cpu/amd/family_10h-family_15h/Makefile.inc
- @@ -14,12 +14,4 @@ ramstage-y += ram_calc.c
- ramstage-y += monotonic_timer.c
- ramstage-$(CONFIG_HAVE_ACPI_TABLES) += powernow_acpi.c
-
- -# Microcode for Family 10h, 11h, 12h, and 14h
- -cbfs-files-$(CONFIG_CPU_MICROCODE_CBFS_DEFAULT_BINS) += microcode_amd.bin
- -microcode_amd.bin-file := 3rdparty/blobs/cpu/amd/family_10h-family_14h/microcode_amd.bin
- -microcode_amd.bin-type := microcode
- -
- -# Microcode for Family 15h
- -cbfs-files-$(CONFIG_CPU_MICROCODE_CBFS_DEFAULT_BINS) += microcode_amd_fam15h.bin
- -microcode_amd_fam15h.bin-file := 3rdparty/blobs/cpu/amd/family_15h/microcode_amd_fam15h.bin
- -microcode_amd_fam15h.bin-type := microcode
- +# Microcode deleted in this version of coreboot.
- --
- 2.39.2
|