From 6b248a2da381928a5670aa1e50e7c9e790749c51 Mon Sep 17 00:00:00 2001 From: Felix Held Date: Wed, 26 Jul 2023 16:42:46 +0200 Subject: soc/amd/common/fsp: factor out read_fsp_resources from root_complex.c Factor out the common FSP-specific code to report the usable and reserved memory resources read from the HOBs that FSP has put into memory. This both reduces code duplication and also moves FSP-specific code out of the SoC code into the FSP-specific common AMD SoC code folder. Signed-off-by: Felix Held Change-Id: Ib373c52030209235559c9cd383f48ee1b3f8f79b Reviewed-on: https://review.coreboot.org/c/coreboot/+/76759 Reviewed-by: Fred Reitberger Reviewed-by: Eric Lai Tested-by: build bot (Jenkins) Reviewed-by: Martin L Roth --- src/soc/amd/phoenix/root_complex.c | 24 +----------------------- 1 file changed, 1 insertion(+), 23 deletions(-) (limited to 'src/soc/amd/phoenix') diff --git a/src/soc/amd/phoenix/root_complex.c b/src/soc/amd/phoenix/root_complex.c index a1f256f73d..b1a3129bfa 100644 --- a/src/soc/amd/phoenix/root_complex.c +++ b/src/soc/amd/phoenix/root_complex.c @@ -16,7 +16,6 @@ #include #include #include -#include #include #include #include "chip.h" @@ -121,8 +120,6 @@ static void read_resources(struct device *dev) { uint32_t mem_usable = (uintptr_t)cbmem_top(); unsigned int idx = 0; - const struct hob_header *hob_iterator; - const struct hob_resource *res; uintptr_t early_reserved_dram_start, early_reserved_dram_end; const struct memmap_early_dram *e = memmap_get_early_dram_usage(); @@ -161,26 +158,7 @@ static void read_resources(struct device *dev) /* Reserve fixed IOMMU MMIO region */ mmio_range(dev, idx++, IOMMU_RESERVED_MMIO_BASE, IOMMU_RESERVED_MMIO_SIZE); - if (fsp_hob_iterator_init(&hob_iterator) != CB_SUCCESS) { - printk(BIOS_ERR, "%s incomplete because no HOB list was found\n", - __func__); - return; - } - - while (fsp_hob_iterator_get_next_resource(&hob_iterator, &res) == CB_SUCCESS) { - if (res->type == EFI_RESOURCE_SYSTEM_MEMORY && res->addr < mem_usable) - continue; /* 0 through low usable was set above */ - if (res->type == EFI_RESOURCE_MEMORY_MAPPED_IO) - continue; /* Done separately */ - - if (res->type == EFI_RESOURCE_SYSTEM_MEMORY) - ram_range(dev, idx++, res->addr, res->length); - else if (res->type == EFI_RESOURCE_MEMORY_RESERVED) - reserved_ram_range(dev, idx++, res->addr, res->length); - else - printk(BIOS_ERR, "Failed to set resources for type %d\n", - res->type); - } + read_fsp_resources(dev, &idx); } static void root_complex_init(struct device *dev) -- cgit v1.2.3