Subject: Re: Kernel cannot see PCI device

From: Benjamin Herrenschmidt <[email-masked]>
Date: Wed, 25 May 2011 07:43:08 +1000

On Tue, 2011-05-24 at 10:25 +0530, Prashant Bhole wrote:

> Fixed the problem by soft resetting the PCIe port in the function
> ppc460ex_pciex_port_init_hw().
> Is it a right thing to do?
> Following is the patch for kernel 2.6.38.4:
> --------------------------------------------------------------------------------------
> --- linux-2.6.38.4/arch/powerpc/sysdev/ppc4xx_pci.c.orig	2011-05-24
> 10:02:38.000000000 +0530
> +++ linux-2.6.38.4/arch/powerpc/sysdev/ppc4xx_pci.c	2011-05-24
> 10:07:17.000000000 +0530
> @@ -876,6 +876,20 @@
>  	u32 val;
>  	u32 utlset1;
> 
> +	switch (port->index)
> +	{
> +		case 0:
> +			mtdcri(SDR0, PESDR0_460EX_PHY_CTL_RST, 0x0);
> +			mdelay(10);
> +			break;
> +		case 1:
> +			mtdcri(SDR0, PESDR1_460EX_PHY_CTL_RST, 0x0);
> +			mdelay(10);
> +			break;
> +		default:
> +			break;
> +	}
> +
>  	if (port->endpoint)
>  		val = PTYPE_LEGACY_ENDPOINT << 20;
>  	else
> --------------------------------------------------------------------------------------

Well, it's odd that you'd have to do that, maybe something the
bootloader is doing ?

I personally don't mind but I'd like Stefan and/or Tirumala opinion on
this.

Cheers,
Ben.