summaryrefslogtreecommitdiff
path: root/src/soc/amd
diff options
context:
space:
mode:
Diffstat (limited to 'src/soc/amd')
-rw-r--r--src/soc/amd/common/Makefile.inc26
1 files changed, 24 insertions, 2 deletions
diff --git a/src/soc/amd/common/Makefile.inc b/src/soc/amd/common/Makefile.inc
index db9101815d..86fe0514c5 100644
--- a/src/soc/amd/common/Makefile.inc
+++ b/src/soc/amd/common/Makefile.inc
@@ -8,9 +8,31 @@ subdirs-y += vboot
ifneq ($(CONFIG_AMDFW_CONFIG_FILE), )
FIRMWARE_LOCATION=$(shell grep -e FIRMWARE_LOCATION $(CONFIG_AMDFW_CONFIG_FILE) | awk '{print $$2}')
-# Add all the files listed in the config file
+# Add all the files listed in the config file to the dependency list
POUND_SIGN=$(call strip_quotes, "\#")
-DEP_FILES= $(patsubst %,$(FIRMWARE_LOCATION)/%, $(shell sed -e /^$(POUND_SIGN)/d -e /*/d -e /^FIRMWARE_LOCATION/d -e /^SOC_NAME/d $(CONFIG_AMDFW_CONFIG_FILE) | awk '{print $$2}' ))
+REMOVE_MP2 =
+# If the MP2 file is not being loaded, remove it as a dependency
+ifneq ($(CONFIG_PSP_LOAD_MP2_FW),y)
+REMOVE_MP2 = /MP2/d
+endif
+
+# Steps below to generate the dependency list
+# 1a: Delete any line that starts with #, FIRMWARE_LOCATION, or SOC_NAME
+# 1b: Delete any line containing a *
+# 1c: Filter out lines containing MP2 or not, decided above.
+# 1d: Use awk to return only field 2, the filename
+# 2: Gather filenames with no path to add the firmware location later
+# 3: Gather filenames with a path
+# 4a: Add the firmware location to any files without a path to the dependencies
+# 4b: add the lines containing a path to the dependencies
+AMDFW_CFG_FILES = $(shell sed "/^$(POUND_SIGN)\|^FIRMWARE_LOCATION\|^SOC_NAME/d; \
+ /*/d; \
+ $(REMOVE_MP2)" $(CONFIG_AMDFW_CONFIG_FILE) | \
+ awk '{print $$2}')
+AMDFW_CFG_IN_FW_LOC = $(shell echo "$(AMDFW_CFG_FILES)" | tr ' ' '\n' | grep -v "/")
+AMDFW_CFG_WITH_PATH = $(shell echo "$(AMDFW_CFG_FILES)" | tr ' ' '\n' | grep "/")
+DEP_FILES = $(patsubst %,$(FIRMWARE_LOCATION)/%, $(AMDFW_CFG_IN_FW_LOC)) \
+ $(AMDFW_CFG_WITH_PATH)
amd_microcode_bins += $(wildcard ${FIRMWARE_LOCATION}/*UcodePatch_*.bin)