diff options
Diffstat (limited to 'drivers/pci/pci-uclass.c')
| -rw-r--r-- | drivers/pci/pci-uclass.c | 8 | 
1 files changed, 6 insertions, 2 deletions
| diff --git a/drivers/pci/pci-uclass.c b/drivers/pci/pci-uclass.c index ad43e8a27cc..a2e829608a3 100644 --- a/drivers/pci/pci-uclass.c +++ b/drivers/pci/pci-uclass.c @@ -876,6 +876,9 @@ static int decode_regions(struct pci_controller *hose, ofnode parent_node,  #ifdef CONFIG_NR_DRAM_BANKS  	bd_t *bd = gd->bd; +	if (!bd) +		return 0; +  	for (i = 0; i < CONFIG_NR_DRAM_BANKS; ++i) {  		if (bd->bi_dram[i].size) {  			pci_set_region(hose->regions + hose->region_count++, @@ -894,8 +897,9 @@ static int decode_regions(struct pci_controller *hose, ofnode parent_node,  #endif  	if (gd->pci_ram_top && gd->pci_ram_top < base + size)  		size = gd->pci_ram_top - base; -	pci_set_region(hose->regions + hose->region_count++, base, base, -		       size, PCI_REGION_MEM | PCI_REGION_SYS_MEMORY); +	if (size) +		pci_set_region(hose->regions + hose->region_count++, base, +			base, size, PCI_REGION_MEM | PCI_REGION_SYS_MEMORY);  #endif  	return 0; | 
