From c9737c5ce9d5a3c52ae86ea5fe538bec0b305b99 Mon Sep 17 00:00:00 2001 From: Felix Held Date: Thu, 23 Sep 2021 17:16:32 +0200 Subject: soc/amd/common: move block/pi out of the block folder Since the binaryPI glue code is specific to a binary interface, but not for a hardware block, move it out of the common blocks directory. This also brings the binaryPI support in line with the FSP support which is used on the newer generations. This also drops the SOC_AMD_COMMON_BLOCK_PI Kconfig option and makes use of the already existing SOC_AMD_PI Kconfig option instead. Signed-off-by: Felix Held Change-Id: I014e538f2772938031950475e456cc40dd05d74c Reviewed-on: https://review.coreboot.org/c/coreboot/+/57884 Tested-by: build bot (Jenkins) Reviewed-by: Raul Rangel --- src/soc/amd/common/block/pi/image.c | 48 ------------------------------------- 1 file changed, 48 deletions(-) delete mode 100644 src/soc/amd/common/block/pi/image.c (limited to 'src/soc/amd/common/block/pi/image.c') diff --git a/src/soc/amd/common/block/pi/image.c b/src/soc/amd/common/block/pi/image.c deleted file mode 100644 index 03a2a473a0bd..000000000000 --- a/src/soc/amd/common/block/pi/image.c +++ /dev/null @@ -1,48 +0,0 @@ -/* SPDX-License-Identifier: GPL-2.0-only */ - -#include -#include -#include - -/* Check if the image has the desired module. */ -static bool validate_image(void *module_chain, const char module_signature[8]) -{ - AMD_MODULE_HEADER *mod_ptr = (AMD_MODULE_HEADER *)module_chain; - uint64_t signature = *(uint64_t *)module_signature; - char *checking_str; - - while ((mod_ptr != NULL) && - (MODULE_SIGNATURE == *(uint32_t *)&mod_ptr->ModuleHeaderSignature)) { - checking_str = (char *)&mod_ptr->ModuleIdentifier; - if (signature == *(uint64_t *)checking_str) - return true; - mod_ptr = (AMD_MODULE_HEADER *)mod_ptr->NextBlock; - } - return false; -} - -/* - * Find an image that has the desired module. The image is aligned within - * a given range. - */ -void *amd_find_image(const void *start_address, const void *end_address, - uint32_t alignment, const char name[8]) -{ - uint8_t *current_ptr = (uint8_t *)start_address; - uint8_t *start = (uint8_t *)start_address; - uint8_t *end = (uint8_t *)end_address; - AMD_IMAGE_HEADER *image_ptr; - - while ((current_ptr >= start) && (current_ptr < end)) { - if (IMAGE_SIGNATURE == *((uint32_t *)current_ptr)) { - image_ptr = (AMD_IMAGE_HEADER *) current_ptr; - - /* Check if the image has the desired module */ - if (validate_image((void *)image_ptr->ModuleInfoOffset, - name)) - return current_ptr; - } - current_ptr += alignment; - } - return NULL; -} -- cgit v1.2.3