[U-Boot] [PATCH] 85xx/p2020ds: Use is_serdes_configured() to determine of PCIe enabled

Timur Tabi timur at freescale.com
Wed May 26 23:37:29 CEST 2010


On Fri, May 21, 2010 at 4:17 AM, Kumar Gala <galak at 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


More information about the U-Boot mailing list