On Fri, May 21, 2010 at 4:17 AM, Kumar Gala <ga...@kernel.crashing.org> wrote:
> #ifdef CONFIG_PCIE2 > - pcie_configured = is_fsl_pci_cfg(LAW_TRGT_IF_PCIE_2, io_sel); > + pcie_configured = is_serdes_configured(PCIE2); > > if (pcie_configured && !(devdisr & MPC85xx_DEVDISR_PCIE2)) { > + set_next_law(CONFIG_SYS_PCIE2_MEM_PHYS, LAW_SIZE_512M, > + LAW_TRGT_IF_PCIE_2); > + set_next_law(CONFIG_SYS_PCIE2_IO_PHYS, LAW_SIZE_64K, > + LAW_TRGT_IF_PCIE_2); > SET_STD_PCIE_INFO(pci_info[num], 2); Are you sure that pci_info needs to be an array? It looks as if pci_info[num] is only used inside the #ifdef block. That is, I think we can do this: struct fsl_pci_info pci_info; ... #ifdef CONFIG_PCIE3 pcie_configured = is_serdes_configured(PCIE3); if (pcie_configured && !(devdisr & MPC85xx_DEVDISR_PCIE3)) { set_next_law(CONFIG_SYS_PCIE3_MEM_PHYS, LAW_SIZE_512M, LAW_TRGT_IF_PCIE_3); set_next_law(CONFIG_SYS_PCIE3_IO_PHYS, LAW_SIZE_64K, LAW_TRGT_IF_PCIE_3); SET_STD_PCIE_INFO(&pci_info, 3); pcie_ep = fsl_setup_hose(&pcie3_hose, pci_info.regs); printf(" PCIE3 connected to Slot 1 as %s (base addr %lx)\n", pcie_ep ? "Endpoint" : "Root Complex", pci_info.regs); first_free_busno = fsl_pci_init_port(&pci_info, &pcie3_hose, first_free_busno); } else { printf(" PCIE3: disabled\n"); } puts("\n"); #else Each #ifdef CONFIG_PCIEx block is self-contained, with respect to pci_info. It appears that there's no need to remember pci_info[0] and use pci_info[1] for the next PCIE device. -- Timur Tabi Linux kernel developer at Freescale _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot