--- a/arch/arm/mach-cns3xxx/pcie.c
+++ b/arch/arm/mach-cns3xxx/pcie.c
@@ -93,6 +93,8 @@ static void __iomem *cns3xxx_pci_cfg_bas
 
 	base = (void __iomem *)cnspci->cfg_bases[type].virtual;
 	offset = (devfn << 12) | (where & 0xffc);
+	if (busno > 1)
+		offset += busno << 20;
 
 	return base + offset;
 }
