On Oct 7, 2010, at 7:30 AM, Eran Liberty wrote:

> Dear Penguins,
> 
> SHORT:
> There is a BUG in the current code design / Freescale P2020/85xx PCIe design 
> that prevent it from registering to the PCIe AER... or that I have missed 
> something :) ..
> 
> LESS SHORT:
> I am in the process of a Freescale P2020 based board bring up. P2020 is 
> basically two 85xx processors and their peripherals share most features.
> 
> PCIe has a very extensive error reporting section and the Kernel already has 
> a very nice looking Advanced Error Reporting driver.
> 
> I encounter difficulties trying to connect the P2020/85xx PCIe device to this 
> AER service driver.
> 
> My technical findings follows:
> 
> - pcie_portdrv_probe() will be called for every BRIDGE class PCI device. 
> P2020 PCIe is a PCI-PCI BRIDGE class so no problem here. - The code will 
> continue to check that we have PCI_CAP_ID_EXP capability, which we have and 
> continue to pcie_port_device_register().
> - Now ,the function pcie_port_device_register() will FAIL. It will fail 
> because it will call assign_interrupt_mode(), return with PCIE_PORT_NO_IRQ, 
> and giveup with a reasonable remark in the code
> "/*
> * Don't use service devices that require interrupts if there is
> * no way to generate them.
> */"
> 
> So now the question is why calling assign_interrupt_mode() with the P2020 
> PCIe ROOT device return empty? Well...
> - First assign_interrupt_mode() will test for PCIE_PORT_MSIX_MODE. Freescale 
> PCIe does not support this...
> - Second attampt is made to discover PCIE_PORT_MSI_MODE, which Freescale 
> should support but the PCIe PCI_CAP_ID_MSI capability is published on the 
> device side of the bridge and NOT on the PCIe ROOT device, which is the one 
> probed and thus fails.
> - Last it attempts to look at "dev->pin" in order to set PCIE_PORT_INTx_MODE. 
> On top of being the less recommended way (the old way), The Freescale PCIE 
> ROOT device pin is not set anywhere.
> 
> Failing all those the probe fails and the AER service is not activated for 
> the PCIE device.
> 
> QUESTION:
> 1. What am I missing?
> 2. Has anyone enabled the AER PCIe service for P2020/MPC85xx?
> 3. Should the PCIe ROOT end report MSI capabilities or should the device end 
> report itself as bridge ???
> 
> -- Liberty

Do you have some code that enables AER on P2020.  If so it might be easier to 
see what's going on.

- k

_______________________________________________
Linuxppc-dev mailing list
Linuxppc-dev@lists.ozlabs.org
https://lists.ozlabs.org/listinfo/linuxppc-dev

Reply via email to