Subject: Re: [PATCH 11/25] powerpc: 4xx PLB to PCI Express support

From: Benjamin Herrenschmidt <[email-masked]>
Date: Fri, 07 Dec 2007 09:21:26 +1100

> > +/* Check that the core has been initied and if not, do it */
> > +static int __init ppc4xx_pciex_check_core_init(struct device_node *np)
> > +{
> > +	static int core_init;
> > +	int count = -ENODEV;
> > +
> > +	if (core_init++)
> > +		return 0;
> > +
> > +#ifdef CONFIG_44x
> > +	if (of_device_is_compatible(np, "ibm,plb-pciex-440speA"))
> > +		ppc4xx_pciex_hwops = &ppc440speA_pcie_hwops;
> > +	else if (of_device_is_compatible(np, "ibm,plb-pciex-440speB"))
> > +		ppc4xx_pciex_hwops = &ppc440speB_pcie_hwops;
> 
> We need some runtime detection of the 440SPe revision here. There are boards 
> out there (e.g. AMCC Yucca) which can be equipped with both PPC 
> revisions. :-(

Ah... crap ! Do you think we should put that in the boot wrapper and
fixup the device-tree or should we put it in the PCIe code proper ?

> > +#endif /* CONFIG_44x    */
> > +#ifdef CONFIG_40x
> > +	if (of_device_is_compatible(np, "ibm,plb-pciex-405ex"))
> > +		ppc4xx_pciex_hwops = &ppc405ex_pcie_hwops;
> > +#endif
> 
> Why those #ifdef's? Just code-size reasons, since 40x and 44x will most likely 
> never be built into one image? 

Code size... I know how keen embedded people are to keep their kernel
small and as of today, you can't build 40x and 44x support in the same
image, so I didn't want to be blamed for adding bloat in that case :-)

Ben.