AMCC PPC460EX Canyonlands does not see PCIe end point with only non-prefetchable memory (both 2.6.27.7 and -next)

Leon Woestenberg leon.woestenberg at gmail.com
Thu Nov 27 05:26:47 EST 2008


On Wed, Nov 26, 2008 at 4:25 PM, Leon Woestenberg
<leon.woestenberg at gmail.com> wrote:
> The non-detected end point boot:
>
> pci 0001:80:00.0: scanning behind bridge, config bf8180, pass 0
> PCI: Scanning bus 0001:81
> PCI: Fixups for bus 0001:81
>
Further debugging.

drivers/pci/probe.c:
static struct pci_dev *pci_scan_device(struct pci_bus *bus, int devfn)
{
...
	if (pci_bus_read_config_dword(bus, devfn, PCI_VENDOR_ID, &l))
		return NULL;
...
	/* some broken boards return 0 or ~0 if a slot is empty: */
	if (l == 0xffffffff || l == 0x00000000 ||
	    l == 0x0000ffff || l == 0xffff0000) {
  	printk(KERN_WARNING "--- slot empty?! l == 0x%lx\n", (u32)l);
		return NULL;
	}

It ends up here with l == 0xffffffff.

Note that u-boot finds the end point vendor ID, and Linux on x86 and
Linux on  mpc8316e powerpc also.

Regards,
-- 
Leon



More information about the Linuxppc-dev mailing list