soc/amd/common: Update PSP dependency generation

After adding the ability to add paths into the amdfw.cfg file for the
amdfwtool, the dependency generation needs to be updated to not add
the firmware location in front of those values.

This also allows us to filter out the MP2 binaries as dependencies
based on whether or not the Kconfig value is set.

Signed-off-by: Martin Roth <gaumless@gmail.com>
Change-Id: I3a9b9c8246808dc60020a32a7d9d926bc5e57ccd
Reviewed-on: https://review.coreboot.org/c/coreboot/+/73657
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Fred Reitberger <reitbergerfred@gmail.com>
This commit is contained in:
Martin Roth 2023-03-08 15:33:13 -07:00 committed by Martin L Roth
parent 6bb6ed9467
commit d729df03ed
1 changed files with 24 additions and 2 deletions

View File

@ -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)