diff options
-rw-r--r-- | src/soc/amd/cezanne/root_complex.c | 12 | ||||
-rw-r--r-- | src/soc/amd/glinda/root_complex.c | 12 | ||||
-rw-r--r-- | src/soc/amd/mendocino/root_complex.c | 12 | ||||
-rw-r--r-- | src/soc/amd/morgana/root_complex.c | 12 | ||||
-rw-r--r-- | src/soc/amd/picasso/root_complex.c | 15 |
5 files changed, 16 insertions, 47 deletions
diff --git a/src/soc/amd/cezanne/root_complex.c b/src/soc/amd/cezanne/root_complex.c index 5f2024cd8a..31c2e1a3d6 100644 --- a/src/soc/amd/cezanne/root_complex.c +++ b/src/soc/amd/cezanne/root_complex.c @@ -103,7 +103,7 @@ static void read_resources(struct device *dev) { uint32_t mem_usable = (uintptr_t)cbmem_top(); unsigned int idx = 0; - const struct hob_header *hob = fsp_get_hob_list(); + const struct hob_header *hob_iterator; const struct hob_resource *res; struct resource *gnb_apic; @@ -148,19 +148,13 @@ static void read_resources(struct device *dev) gnb_apic->size = 0x00001000; gnb_apic->flags = IORESOURCE_MEM | IORESOURCE_ASSIGNED | IORESOURCE_FIXED; - if (!hob) { + if (fsp_hob_iterator_init(&hob_iterator) != CB_SUCCESS) { printk(BIOS_ERR, "%s incomplete because no HOB list was found\n", __func__); return; } - for (; hob->type != HOB_TYPE_END_OF_HOB_LIST; hob = fsp_next_hob(hob)) { - - if (hob->type != HOB_TYPE_RESOURCE_DESCRIPTOR) - continue; - - res = fsp_hob_header_to_resource(hob); - + 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) diff --git a/src/soc/amd/glinda/root_complex.c b/src/soc/amd/glinda/root_complex.c index 16f1bddb7e..04d05994b6 100644 --- a/src/soc/amd/glinda/root_complex.c +++ b/src/soc/amd/glinda/root_complex.c @@ -118,7 +118,7 @@ static void read_resources(struct device *dev) { uint32_t mem_usable = (uintptr_t)cbmem_top(); unsigned int idx = 0; - const struct hob_header *hob = fsp_get_hob_list(); + const struct hob_header *hob_iterator; const struct hob_resource *res; struct resource *gnb_apic; @@ -163,19 +163,13 @@ static void read_resources(struct device *dev) gnb_apic->size = 0x00001000; gnb_apic->flags = IORESOURCE_MEM | IORESOURCE_ASSIGNED | IORESOURCE_FIXED; - if (!hob) { + if (fsp_hob_iterator_init(&hob_iterator) != CB_SUCCESS) { printk(BIOS_ERR, "%s incomplete because no HOB list was found\n", __func__); return; } - for (; hob->type != HOB_TYPE_END_OF_HOB_LIST; hob = fsp_next_hob(hob)) { - - if (hob->type != HOB_TYPE_RESOURCE_DESCRIPTOR) - continue; - - res = fsp_hob_header_to_resource(hob); - + 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) diff --git a/src/soc/amd/mendocino/root_complex.c b/src/soc/amd/mendocino/root_complex.c index d72851682a..abc49cfe05 100644 --- a/src/soc/amd/mendocino/root_complex.c +++ b/src/soc/amd/mendocino/root_complex.c @@ -118,7 +118,7 @@ static void read_resources(struct device *dev) { uint32_t mem_usable = (uintptr_t)cbmem_top(); unsigned int idx = 0; - const struct hob_header *hob = fsp_get_hob_list(); + const struct hob_header *hob_iterator; const struct hob_resource *res; struct resource *gnb_apic; @@ -163,19 +163,13 @@ static void read_resources(struct device *dev) gnb_apic->size = 0x00001000; gnb_apic->flags = IORESOURCE_MEM | IORESOURCE_ASSIGNED | IORESOURCE_FIXED; - if (!hob) { + if (fsp_hob_iterator_init(&hob_iterator) != CB_SUCCESS) { printk(BIOS_ERR, "%s incomplete because no HOB list was found\n", __func__); return; } - for (; hob->type != HOB_TYPE_END_OF_HOB_LIST; hob = fsp_next_hob(hob)) { - - if (hob->type != HOB_TYPE_RESOURCE_DESCRIPTOR) - continue; - - res = fsp_hob_header_to_resource(hob); - + 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) diff --git a/src/soc/amd/morgana/root_complex.c b/src/soc/amd/morgana/root_complex.c index 0e6e730008..10e541521d 100644 --- a/src/soc/amd/morgana/root_complex.c +++ b/src/soc/amd/morgana/root_complex.c @@ -118,7 +118,7 @@ static void read_resources(struct device *dev) { uint32_t mem_usable = (uintptr_t)cbmem_top(); unsigned int idx = 0; - const struct hob_header *hob = fsp_get_hob_list(); + const struct hob_header *hob_iterator; const struct hob_resource *res; struct resource *gnb_apic; @@ -163,19 +163,13 @@ static void read_resources(struct device *dev) gnb_apic->size = 0x00001000; gnb_apic->flags = IORESOURCE_MEM | IORESOURCE_ASSIGNED | IORESOURCE_FIXED; - if (!hob) { + if (fsp_hob_iterator_init(&hob_iterator) != CB_SUCCESS) { printk(BIOS_ERR, "%s incomplete because no HOB list was found\n", __func__); return; } - for (; hob->type != HOB_TYPE_END_OF_HOB_LIST; hob = fsp_next_hob(hob)) { - - if (hob->type != HOB_TYPE_RESOURCE_DESCRIPTOR) - continue; - - res = fsp_hob_header_to_resource(hob); - + 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) diff --git a/src/soc/amd/picasso/root_complex.c b/src/soc/amd/picasso/root_complex.c index 489202366b..c6623209af 100644 --- a/src/soc/amd/picasso/root_complex.c +++ b/src/soc/amd/picasso/root_complex.c @@ -103,7 +103,7 @@ static void read_resources(struct device *dev) { uint32_t mem_usable = (uintptr_t)cbmem_top(); unsigned int idx = 0; - const struct hob_header *hob = fsp_get_hob_list(); + const struct hob_header *hob_iterator; const struct hob_resource *res; struct resource *gnb_apic; @@ -146,19 +146,12 @@ static void read_resources(struct device *dev) gnb_apic->size = 0x00001000; gnb_apic->flags = IORESOURCE_MEM | IORESOURCE_ASSIGNED | IORESOURCE_FIXED; - if (!hob) { - printk(BIOS_ERR, "%s incomplete because no HOB list was found\n", - __func__); + if (fsp_hob_iterator_init(&hob_iterator) != CB_SUCCESS) { + printk(BIOS_ERR, "%s incomplete because no HOB list was found\n", __func__); return; } - for (; hob->type != HOB_TYPE_END_OF_HOB_LIST; hob = fsp_next_hob(hob)) { - - if (hob->type != HOB_TYPE_RESOURCE_DESCRIPTOR) - continue; - - res = fsp_hob_header_to_resource(hob); - + 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) |