TODO: - determine proper workaround for disabling found_multi - determine proper workaround for decode_regions
Signed-off-by: Tim Harvey <thar...@gateworks.com> --- drivers/pci/pci-uclass.c | 12 ++++++++++++ include/pci.h | 2 +- 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/drivers/pci/pci-uclass.c b/drivers/pci/pci-uclass.c index 0720ffe5b4..845e280a60 100644 --- a/drivers/pci/pci-uclass.c +++ b/drivers/pci/pci-uclass.c @@ -783,8 +783,11 @@ int pci_bind_bus_devices(struct udevice *bus) struct udevice *dev; ulong class; +/* causes devices beyond the internal bridge on the Octeon TX to not enum */ +#if !defined(CONFIG_ARCH_THUNDERX) if (!PCI_FUNC(bdf)) found_multi = false; +#endif if (PCI_FUNC(bdf) && !found_multi) continue; /* Check only the first access, we don't expect problems */ @@ -910,6 +913,9 @@ static void decode_regions(struct pci_controller *hose, ofnode parent_node, continue; } +#if defined(CONFIG_ARCH_THUNDERX) + pos = hose->region_count++; +#else pos = -1; for (i = 0; i < hose->region_count; i++) { if (hose->regions[i].flags == type) @@ -917,10 +923,16 @@ static void decode_regions(struct pci_controller *hose, ofnode parent_node, } if (pos == -1) pos = hose->region_count++; +#endif debug(" - type=%d, pos=%d\n", type, pos); pci_set_region(hose->regions + pos, pci_addr, addr, size, type); } + if (hose->region_count == MAX_PCI_REGIONS) { + printf("PCI region count reached limit, cannot add local memory region"); + return; + } + /* Add a region for our local memory */ #ifdef CONFIG_NR_DRAM_BANKS bd_t *bd = gd->bd; diff --git a/include/pci.h b/include/pci.h index 033d5adf2a..38d44d5b67 100644 --- a/include/pci.h +++ b/include/pci.h @@ -567,7 +567,7 @@ extern void pci_cfgfunc_do_nothing(struct pci_controller* hose, pci_dev_t dev, extern void pci_cfgfunc_config_device(struct pci_controller* hose, pci_dev_t dev, struct pci_config_table *); -#define MAX_PCI_REGIONS 7 +#define MAX_PCI_REGIONS 10 #define INDIRECT_TYPE_NO_PCIE_LINK 1 -- 2.17.1 _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de https://lists.denx.de/listinfo/u-boot